Contact emails sejalan...@microsoft.com<mailto:sejalan...@microsoft.com>
Explainer None Specification https://www.w3.org/TR/css-text-3/#cursive-tracking Summary This feature adds logic to ignore the letter-spacing setting for cursive scripts as specified by the web author, in line with the spec, to ensure that letter spacing does not disrupt word structure and aims to produce better user experience for users relying on cursive scripts. The spec suggests that the UA may apply letter spacing to cursive scripts by translating the total extra space into cursive elongation or compression. Otherwise, if the UA cannot expand text from a cursive script without breaking its cursive connections, it must not apply spacing between any pair of that script’s typographic letter units at all. Ignoring letter spacing altogether for cursive scripts is simpler and helps avoid performance issues as handling spacing for such scripts requires complex calculations to maintain cursive connections and account for script-specific factors like elongation glyphs, typefaces, and calligraphy preferences. With this feature, Chromium ensures that cursive scripts will be readable and properly spaced, even if the fonts don’t have advanced typographic features. The scripts that we are proposing to apply this to in Chromium are Arabic, Hanifi Rohingya, Mandaic, Mongolian, N’Ko, Phags Pa, and Syriac as these scripts are considered cursive as per spec. Blink component Blink>Fonts<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EFonts%22> TAG review None TAG review status Not applicable Risks Interoperability and Compatibility Other browsers currently do not support this feature, as there are open bugs for handling letter-spacing settings in cursive scripts. Our implementation introduces a behavior change that aligns with the spec by ignoring letter-spacing settings to preserve script integrity, prioritizing readability. Since this behavior diverges from other browsers, there are interoperability differences. With this change, letter spacing will no longer be applied to cursive scripts, even if specified by web authors. It’s important to note that this could affect sites relying on letter-spacing for cursive scripts. Gecko: No signal (https://bugzilla.mozilla.org/show_bug.cgi?id=1342835) WebKit: No signal (https://bugs.webkit.org/show_bug.cgi?id=195745) Web developers: Positive (https://github.com/harfbuzz/harfbuzz/issues/358) Three users have noted they are impacted by the CRBug. Other signals: WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? None Debuggability Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)? Yes Is this feature fully tested by web-platform-tests<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>? No No, WPT tests were not added because the third_party/blink/web_tests/external/wpt/fonts directory only contains auxiliary font files used by other tests. However, there is an internal web test for this feature: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/fonts/letter-spacing.html There are few impacted tests where letter spacing is applied on Arabic texts, these are being replaced with Hebrew - https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.selection-rects-baselines.tentative.html https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/svg/text/textpath-connected-glyphs-expected.png Flag name on about://flags None Finch feature name IgnoreLetterSpacingInCursiveScripts Rollout plan Will ship enabled for all users Requires code in //chrome? False Tracking bug https://issues.chromium.org/issues/40618336 Estimated milestones Shipping on desktop 137 Shipping on Android 137 Shipping on WebView 137 Shipping on iOS 137 Anticipated spec changes Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way). None Link to entry on the Chrome Platform Status https://chromestatus.com/feature/4885407109742592?gate=6206904659083264 This intent message was generated by Chrome Platform Status<https://chromestatus.com/>. -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/KUXP153MB1400FE8EC556E78C1D98DCB4D4BB2%40KUXP153MB1400.APCP153.PROD.OUTLOOK.COM.