Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Intent to Ship: Ignore Letter Spacing in Cursive Scripts

277 views
Skip to first unread message

Sejal Anand

unread,
Apr 22, 2025, 10:40:01 AMApr 22
to blin...@chromium.org, Ragvesh Sharma's Organization (FTE)
Contact emails
Explainer
None

Specification
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
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?
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



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
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
This intent message was generated by Chrome Platform Status.

Mike Taylor

unread,
Apr 22, 2025, 2:18:44 PMApr 22
to Sejal Anand, blin...@chromium.org, Ragvesh Sharma's Organization (FTE)

On 4/21/25 11:20 PM, 'Sejal Anand' via blink-dev wrote:

Contact emails
Explainer
None

Specification
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
TAG review
None

TAG review status
Not applicable
Can you say why?


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.

Can you please say a little more here? Is this going to strictly improve readability, or will there be cases where a site appears "broken" to users or authors as a result of this change?

Can you file formal position requests? Open bugs aren't quite the same thing.


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
If I'm trying to figure out why my site is now different between Chromium-based browsers and Firefox, is there anything that DevTools can do to help me?
--
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+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/KUXP153MB1400FE8EC556E78C1D98DCB4D4BB2%40KUXP153MB1400.APCP153.PROD.OUTLOOK.COM.

Chris Harrelson

unread,
Apr 23, 2025, 11:21:30 AMApr 23
to Mike Taylor, Sejal Anand, blin...@chromium.org, Ragvesh Sharma's Organization (FTE)
Hi, could you clarify which of the renderings in the example 27 table will result? Is it the first "good" one or the second?

Vladimir Levin

unread,
Apr 23, 2025, 11:25:40 AMApr 23
to blink-dev, sejal...@microsoft.com, Ragvesh Sharma's Organization (FTE)
Have you investigated some sites that may be impacted by that? I think the rendering is certainly more correct for regular speech, but say one was labeling columns by letters with letter spacing. I feel like this would be negatively impacted by the change. I don't image that's common, but having some examples of how letter spacing is currently used with cursive scripts may be a good investigation

On WPTs, what would it take to add the test? I think it's important that these changes that affect certain scripts are tested in WPT. Is it possible to add the required fonts to the fonts directory?

Thanks,
Vlad

Sejal Anand

unread,
Apr 23, 2025, 12:17:38 PMApr 23
to Chris Harrelson, Mike Taylor, blin...@chromium.org, Ragvesh Sharma's Organization (FTE)
Hi Chris,

This change will result in second 'OK' example mentioned in Spec.


Thank you,
Sejal

From: Chris Harrelson <chri...@chromium.org>
Sent: Wednesday, April 23, 2025 8:51 PM
To: Mike Taylor <mike...@chromium.org>
Cc: Sejal Anand <sejal...@microsoft.com>; blin...@chromium.org <blin...@chromium.org>; Ragvesh Sharma's Organization (FTE) <ragvesh...@microsoft.com>
Subject: [EXTERNAL] Re: [blink-dev] Intent to Ship: Ignore Letter Spacing in Cursive Scripts
 

Yoav Weiss (@Shopify)

unread,
Apr 30, 2025, 8:34:12 AMApr 30
to blink-dev, sejal...@microsoft.com, blin...@chromium.org, Ragvesh Sharma's Organization (FTE), Chris Harrelson, Mike Taylor
Hey Sejal! Thanks for working on this, as that seems super important!
Would you be able to address Vlad's questions regarding the potential compat impact?

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.

--
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+unsubscribe@chromium.org.

Sejal Anand

unread,
May 2, 2025, 4:01:07 AMMay 2
to Yoav Weiss (@Shopify), blink-dev, vmp...@chromium.org, Ragvesh Sharma's Organization (FTE), Chris Harrelson, Mike Taylor
Hi Yoav , Vladimir,
The Web Platform Tests pull request is currently under review. I will update the chrome entry with the relevant WPT links and share it with the group once finalized. Please find my inline response below.
Have you investigated some sites that may be impacted by that? I think the rendering is certainly more correct for regular speech, but say one was labeling columns by letters with letter spacing. I feel like this would be negatively impacted by the change. I don't image that's common, but having some examples of how letter spacing is currently used with cursive scripts may be a good investigation
Although I could not find above mentioned specific example, the spec advises authors to avoid applying letter-spacing to cursive scripts unless they are prepared to accept non-interoperable results. This recommendation highlights that modifying letter-spacing in cursive scripts can lead to inconsistent rendering, potentially disrupting the natural connections between letters.  WPTs and web tests have been added to cover few scenarios involving both cursive and non-cursive scripts.
On WPTs, what would it take to add the test? I think it's important that these changes that affect certain scripts are tested in WPT. Is it possible to add the required fonts to the fonts directory?
I have submitted the WPT pull request for the css/css-text/letter-spacing directory, and it is currently under review.
Thank you,
Sejal


From: Yoav Weiss (@Shopify) <yoav...@chromium.org>
Sent: Wednesday, April 30, 2025 6:04 PM
To: blink-dev <blin...@chromium.org>
Cc: Sejal Anand <sejal...@microsoft.com>; blin...@chromium.org <blin...@chromium.org>; Ragvesh Sharma's Organization (FTE) <ragvesh...@microsoft.com>; Chris Harrelson <chri...@chromium.org>; Mike Taylor <mike...@chromium.org>
Subject: Re: [EXTERNAL] Re: [blink-dev] Intent to Ship: Ignore Letter Spacing in Cursive Scripts
 

Chris Harrelson

unread,
May 3, 2025, 12:02:41 PMMay 3
to Sejal Anand, Yoav Weiss (@Shopify), blink-dev, Vladimir Levin, Ragvesh Sharma's Organization (FTE), Mike Taylor
LGTM1

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

--
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+...@chromium.org.

--
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+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/KUXP153MB1400EF4CF7EE768FA9553C7AD48D2%40KUXP153MB1400.APCP153.PROD.OUTLOOK.COM.

Daniel Bratell

unread,
May 5, 2025, 5:08:06 AMMay 5
to Chris Harrelson, Sejal Anand, Yoav Weiss (@Shopify), blink-dev, Vladimir Levin, Ragvesh Sharma's Organization (FTE), Mike Taylor

Yoav Weiss (@Shopify)

unread,
May 5, 2025, 7:18:23 AM (14 days ago) May 5
to Daniel Bratell, Chris Harrelson, Sejal Anand, blink-dev, Vladimir Levin, Ragvesh Sharma's Organization (FTE), Mike Taylor
LGTM3

Sejal Anand

unread,
May 5, 2025, 8:20:27 AM (14 days ago) May 5
to Mike Taylor, blink-dev, Ragvesh Sharma's Organization (FTE)
Hi Mike,

Please find my response below - 

  1. Tag Review - This is quite small of a feature with a straightforward implementation that is why we did not go with Tag Review.
  2. Can you please say a little more here? Is this going to strictly improve readability, or will there be cases where a site appears "broken" to users or authors as a result of this change?  - This feature may not break the site as for cursive scripts the spec advises authors to avoid applying letter-spacing to cursive scripts unless they are prepared to accept non-interoperable results. This recommendation highlights that modifying letter-spacing in cursive scripts can lead to inconsistent rendering, potentially disrupting the natural connections between letters.  WPTs and web tests have been added to cover few scenarios involving both cursive and non-cursive scripts.

  3. Can you file formal position requests? Open bugs aren't quite the same thing. Created here
     Ignore Letter Spacing in Cursive Scripts · Issue #487 · WebKit/standards-positions

  4. If I'm trying to figure out why my site is now different between Chromium-based browsers and Firefox, is there anything that DevTools can do to help me?  This change primarily affects the visual rendering of the code, so using devtools may not be effective in this case.

Thank you,
Sejal


From: Yoav Weiss (@Shopify) <yoav...@chromium.org>
Sent: Monday, May 5, 2025 4:47 PM
To: Daniel Bratell <brat...@gmail.com>
Cc: Chris Harrelson <chri...@chromium.org>; Sejal Anand <sejal...@microsoft.com>; blink-dev <blin...@chromium.org>; Vladimir Levin <vmp...@chromium.org>; Ragvesh Sharma's Organization (FTE) <ragvesh...@microsoft.com>; Mike Taylor <mike...@chromium.org>
Reply all
Reply to author
Forward
0 new messages