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.
