firefox approach for comparison
Conversation
I believe this was mentioned first in this post: robert.ocallahan.org/2006/10/partia I'm not sure if it relies on the ligature caret positions: docs.microsoft.com/en-us/typograp or if it still behaves as mentioned in the above post.
1
1
1
This seems like the spot where the partial ligatures are drawn: searchfox.org/mozilla-centra. It is then called here: searchfox.org/mozilla-centra
My code comprehension is pretty bad (especially with C++), but it doesn't seem to be using the caret positions.
2
1
At any rate, while I think Firefox's approach is kind of cute, my boss has kind of convinced me that a better solution is to force a ligature break when there's is a change to the inline style. So both Chrome and Firefox are probably doing it wrong. 😅
2
1
safari!
1
1
This is how you do it! 🙌
1
Ah yeah, seems like the same thing. The style change breaks the glyph substitution for myanmar, which you can read more about here here:
1
1
Although in linking that doc, Safari is probably using Core Text – which *might* use an alternate standard for shaping Myanmar. Can't remember the specifics though. Regardless, the relevant bit is that scripts like this do glyph substitutions, and Safari is breaking those.
2
1
Myanmar rendering is hurting my brain next level 😂
1
1
Replying to
Yeah. My colleagues had to implement shaping for scripts like it in Allsorts (see github.com/yeslogic/allso) and their brains hurt as well afterwards. Not sure if we do Myanmar yet, however.
IIRC a key bit of information is that the codepoints come in the order in which they are spoken/heard. Which is why you seemingly end up with a weird jumble as you split them apart in order.
Replying to
hard to know what's also actually a bug or a feature in these cases, for me anyhow - chrome's behaviour re: my original example is broken in that intent failed (f[iretr]uck is funny, fi[retr]uck is annoying), firefox's is cute, safari seems optimal. but beyond english? no idea :D
1
1
Yeah it's challenging! Not sure how to handle your specific use case. :(
1
Show replies

