Contact emails
[email protected]<mailto:[email protected]>

Specification
https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property

Summary
Add support for the `all` value for the CSS text-decoration-skip-ink property, 
as specified in 
https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property. 
The `text-decoration-skip-ink` property already supports `auto` and `none`. The 
`all` value extends this by unconditionally applying ink-skipping to all glyphs 
- including CJK characters - whereas `auto` leaves CJK characters un-skipped 
because ink-skipping tends to produce undesirable visual results for 
ideographic scripts at typical underline positions. With 
`text-decoration-skip-ink: all`, authors who have adjusted 
`text-underline-position` or `text-underline-offset` to avoid clashing with CJK 
glyphs can explicitly opt in to ink-skipping for those characters as well.

Blink component
Blink>Fonts<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EFonts%22>

Web Feature ID
text-decoration-skip-ink<https://webstatus.dev/features/text-decoration-skip-ink>

Motivation
The `text-decoration-skip-ink` property controls whether underlines and other 
text decorations skip over glyph ascenders and descenders to improve 
readability. The current `auto` value intentionally does not apply ink-skipping 
to CJK (Chinese, Japanese, Korean) scripts, as these characters typically sit 
above the baseline and rarely intersect with underlines. However, web 
developers working with mixed-script content or specific CJK layouts sometimes 
need underlines to skip around all glyphs uniformly, including CJK characters. 
Without the all value, developers have no way to request this behavior - they 
must either accept inconsistent decoration rendering across scripts or avoid 
using `text-decoration-skip-ink` entirely. The `all` value gives authors 
explicit control to request ink-skipping for all scripts, enabling consistent 
visual treatment of underlined text regardless of language. This is 
particularly useful for design systems that require uniform text decoration 
behavior across multilingual content. Firefox and Safari already support this 
value, making it an interoperability gap for Chrome.

Initial public proposal
No information provided

TAG review
No information provided

TAG review status
Not applicable

Risks


Interoperability and Compatibility
Very Low Risk. This feature adds a new keyword value (`all`) and does not 
change the behavior of existing values (`auto`, `none`). Pages that do not use 
`text-decoration-skip-ink: all` are completely unaffected. This feature is 
already shipping in Firefox and Safari. Chrome is the last major browser to 
implement this value. Shipping this feature improves interoperability and 
closes a compatibility gap. The 
https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property 
defines the `all` value, and there is consensus among browser vendors on its 
behavior.

Gecko: Shipped/Shipping 
(https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-decoration-skip-ink#browser_compatibility)
 Fully Supported since v75. Link: 
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-decoration-skip-ink#browser_compatibility

WebKit: Shipped/Shipping 
(https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-decoration-skip-ink#browser_compatibility)
 Fully Supported since v15.4. Link: 
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-decoration-skip-ink#browser_compatibility

Web developers: In the Chromium bug 9 people have upvoted for this feature.

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. This is a new CSS property value (all) that existing content does not 
use. The behavior of existing values (auto and none) is unchanged. Sites must 
explicitly opt-in to the new behavior by specifying text-decoration-skip-ink: 
all. There are no backwards compatibility concerns.


Debuggability
Standard CSS DevTools support. The all value is already parseable behind the 
experimental flag and visible in the Styles pane. No additional DevTools work 
is needed.

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, 
ChromeOS, Android, and Android WebView)?
Yes
This feature is supported on all platforms where Chromium runs (Windows, macOS, 
Linux, ChromeOS, Android). The implementation uses platform-agnostic font APIs 
(GetTextIntercepts) to compute glyph outlines for ink-skipping, which are 
already used for the existing auto value. No platform-specific code paths are 
required.

Is this feature fully tested by 
web-platform-tests<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?
Yes

Existing WPT tests already cover parsing of all:
- external/wpt/css/css-text-decor/parsing/text-decoration-skip-ink-valid.html — 
validates all as a valid value
- 
external/wpt/css/css-text-decor/parsing/text-decoration-skip-ink-computed.html 
— validates computed value
- external/wpt/css/css-text-decor/parsing/text-decoration-skip-ink-invalid.html 
— validates rejection of invalid values

Visual rendering is covered by:
- fast/css3-text/css3-text-decoration/text-decoration-skip-ink-all.html (Blink 
pixel test)

Flag name on about://flags
No information provided

Finch feature name
CSSTextDecorationSkipInkAll

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/40675832

Estimated milestones
Shipping on desktop
148
Shipping on Android
148
Shipping on WebView
148
Shipping on iOS
148


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).
No information provided

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5077600085082112?gate=6690394362478592

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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SEYP153MB116960579D53783B0BBC8C83B173A%40SEYP153MB1169.APCP153.PROD.OUTLOOK.COM.

Reply via email to