Issue metadata
Sign in to add a comment
|
Emojis Render as Multiple Glyphs in RTL with Font Fallthrough |
||||||||||||||||||||
Issue descriptionChrome Version : 61.0.3163.100 OS: tested on Linux, as well as OS X with a larger repro case URLs (if applicable) : Test case attached What steps will reproduce the problem? 1. Open the attached test file What is the expected result? Emojis composed of multiple unicode codepoints should correctly combine (e.g. the https://emojipedia.org/female-technologist/ should show as a single visual glyph) What happens instead of that? The emoji renders with the (visible) individual glyphs (e.g. woman + computer, with computer rendering to the left, zero width joiner invisible). This seems to apply to all emoji requiring multiple codepoints, including the family and profession ones. Please provide any additional information below. Attach a screenshot if possible. Screenshot and test case attached. When removing the <link /> to the Roboto font, the glyphs appear to combine correctly, suggesting this may have something to do with the fallback to the NotoColorEmoji font in RTL. UserAgentString: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
,
Oct 13 2017
allpublic confirmed with the opener.
,
Oct 13 2017
drott@, could you mind to have a look? The mentioned CL fixed the directionality of the Emoji (or any surrogate pairs), does that affect Emoji sequence code?
,
Oct 13 2017
,
Oct 13 2017
At least, $ hb-shape NotoColorEmoji.ttf --direction=rtl "👩💻" with the font downloaded from the URL in the test file seems to work. I will take a look, but it may take some time as I'd like to finish one or two things before I get to this one. If you're up for writing a HarfBuzzShaperTest for this, Koji, that might already get us additional insights.
,
Oct 13 2017
Of note, using the NotoColorEmoji.ttf font directly appears to work as expected. It's only when 'Roboto' is specified as a primary font first that the issue manifests.
e.g. font-family: NotoColorEmoji; /* Single glyph */
font-family: Roboto, NotoColorEmoji; /* Splits */
,
Nov 30 2017
drott/kojii: Did either of you get a chance to look into this?
,
Dec 1 2017
I haven't had a chance to look further than #5 so far.
,
Dec 6 2017
A couple of notes: * Does not reproduce on Windows (can't render NotoColorEmoji at all, I believe this is by design for now.) * Does not reproduce on Mac, both render correctly. * Reproduces on Linux, only when 'font-family' has some fonts before 'NotoColorEmoji' (in this case, Roboto, but Arial can do too.) Making 'NotoColorEmoji' fixes the problem. Looks like font cascading problem?
,
Dec 6 2017
Note, on Mac, it fails to decode the downloaded font (error in console) and renders with Apple Color Emoji. On Linux, LTR uses 1 glyph from Noto Color Emoji while RTL uses 3 glyphs from Noto Color Emoji. On Windows, it can't render, but it uses 1 glyph form Noto Color Emoji for both LTR and RTL. |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by ranjitkan@chromium.org
, Oct 13 2017Components: UI>Internationalization>RTL
Labels: -Type-Bug -Pri-3 hasbisect-per-revision Needs-Triage-M61 M-63 OS-Mac OS-Windows Pri-1 Type-Bug-Regression
Owner: kojii@chromium.org
Status: Assigned (was: Unconfirmed)