Contact emails
Specification
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
Web Feature ID
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
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.
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
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