The Noto Sans Mono font bundled with ChromeOS incorrectly uses optional Latin-script ligatures for "ffi", "ffl", "fi" & "fl" by default |
|||||
Issue descriptionChrome Version: Google Chrome 65.0.3315.0 (Official Build) canary (64-bit) OS: ChromeOS Platform 10290.0.0 (Official Build) canary-channel samus What steps will reproduce the problem? (1) Ensure you are using ChromeOS (which includes the bundled "Noto Sans Mono" font) (2) Navigate to data:text/html;charset=UTF-8,%3Cfont%20face%3D%22Noto%20Sans%20Mono%2CNoto%20Mono%22%3Eaffix%20firefly%20waffle%20%5BASCII%5D%3Cbr%3Eaff%26zwnj%3Bix%20f%26zwnj%3Biref%26zwnj%3Bly%20waff%26zwnj%3Ble%20%5BZWNJ%5D%3Cbr%3Eaff%26zwj%3Bix%20f%26zwj%3Biref%26zwj%3Bly%20waff%26zwj%3Ble%20%5BZWJ%5D%3Cbr%3Ea%26ffilig%3Bx%20%26filig%3Bre%26fllig%3By%20wa%26ffllig%3Be%20%5BPrecomposed%5D a.k.a. data:text/html;charset=UTF-8,<font%20face="Noto%20Sans%20Mono,Noto%20Mono">affix%20firefly%20waffle%20[ASCII]<br>aff‌ix%20f‌iref‌ly%20waff‌le%20[ZWNJ]<br>aff‍ix%20f‍iref‍ly%20waff‍le%20[ZWJ]<br>affix%20firefly%20waffle%20[Precomposed] a.k.a. data:text/html;charset=UTF-8,<html><head></head><body><font face="Noto Sans Mono,Noto Mono">affix firefly waffle [ASCII]<br>aff%E2%80%8Cix f%E2%80%8Ciref%E2%80%8Cly waff%E2%80%8Cle [ZWNJ]<br>aff%E2%80%8Dix f%E2%80%8Diref%E2%80%8Dly waff%E2%80%8Dle [ZWJ]<br>a%EF%AC%83x %EF%AC%81re%EF%AC%82y wa%EF%AC%84e [Precomposed]</font></body></html> What is the expected result? Ligated forms should only be used in the "Precomposed" row. This matches behavior on other OSes when the related "Noto Mono" font is installed. https://www.google.com/get/noto/#mono-mono Noto Sans Mono is a monospaced font (at least in the case of Unicode input in the range U+0020...U+007E) and its rendering should match typewriter character cell behavior for ASCII-compatible typography. Use of ligatures perturbs the cell count and breaks layout for plain text (e.g. <pre>) using this font. What happens instead? Ligated forms are also erroneously used in the ASCII case. They are also used in the ZWJ case, which could be considered correct or incorrect but in any case is uncommon enough that I don't really care. Please use labels and text to provide additional information. For graphics-related bugs, please copy/paste the contents of the about:gpu page at the end of this report.
,
Jan 9 2018
,
Jan 9 2018
On closer inspection, I suspect the downloadable "Noto Mono" is missing these ligatures, so it's possible the bundled "Noto Sans Mono" is just a broken font.
,
Jan 9 2018
Jungshik, it looks like you added this font in https://crrev.com/c/786080 - any idea whether this is a font bug or a Chrome/test rendering bug, or how to find out?
,
Jan 9 2018
*text rendering, please excuse my typo
,
Jan 10 2018
This appears to be a bug with the font, it shouldn't have ligatures that do not conform to the fixed-width grid. Over to ChromeOS team for further triage.
,
Jan 11 2018
,
Jan 11 2018
I think it's not a bug for a monospaced font to contain ligatures (each occupying at least one monospaced character cell) encoded at the appropriate Unicode codepoints for the precomposed compatibility ligatures: - U+FB01 LATIN SMALL LIGATURE FI a.k.a. fi a.k.a. fi - U+FB02 LATIN SMALL LIGATURE FL a.k.a. fl a.k.a. fl - U+FB03 LATIN SMALL LIGATURE FFI a.k.a. ffi a.k.a. ffi - U+FB04 LATIN SMALL LIGATURE FFL a.k.a. ffl a.k.a. ffl However it is a bug to substitute these for the logically equivalent character sequences "fi", "fl", "ffi" and "ffl". Are those substitutions encoded in the font?
,
Jan 11 2018
Here's the test data in copy-and-paste-ready form: affix firefly waffle [ASCII] affix firefly waffle [ZWNJ] affix firefly waffle [ZWJ] affix firefly waffle [Precomposed]
,
Jan 12 2018
Agreed w/ #c6 - it's a font bug. The related Noto Sans Mono CJK {JP,KR,SC,TC} fonts (also all bundled with ChromeOS) handle this correctly:
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by bsittler@chromium.org
, Jan 9 201876.2 KB
76.2 KB View Download