Hi blink-dev reviewers,

I am working to update the underlineStyle and underlineThickness attributes of 
TextFormat<https://developer.mozilla.org/en-US/docs/Web/API/TextFormat> object 
in EditContext as per the 
spec<https://w3c.github.io/edit-context/#dom-underlinestyle>. Sharing the I2S, 
please let me know if there are any concerns.

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

Specification
https://w3c.github.io/edit-context/#textformatupdateevent

Summary
Chromium shipped 
EditContext<https://developer.mozilla.org/en-US/docs/Web/API/EditContext> with 
a bug where the 
TextFormat<https://developer.mozilla.org/en-US/docs/Web/API/TextFormat> object 
supplied by the 
textformatupdate_event<https://developer.mozilla.org/en-US/docs/Web/API/EditContext/textformatupdate_event>
 provides incorrect values for the underlineStyle and underlineThickness 
properties. In Chromium the possible values are {“None”, “Solid”, “Dotted”, 
“Dashed”, “Squiggle”} and {“None”, “Thin”, “Thick”}, when per spec: EditContext 
API<https://w3c.github.io/edit-context/#dom-underlinestyle> they should be 
{“none”, “solid”, “dotted”, “dashed”, “wavy”} and {“none”, “thin”, “thick”}. 
This Intent covers switching TextFormat.underlineStyle and 
TextFormat.underlineThickness to use the spec values.
This change is valuable because it aligns these attributes with existing CSS 
text-decoration-style<https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-style>
 and the platform convention that enumeration values are 
lower-cased<https://www.w3.org/TR/design-principles/#casing-rules>. Since the 
purpose of the TextFormat properties is to be used in applying these text 
styles to text being composed on behalf of an IME, it will be more convenient 
for developers if the underlineStyle value can be applied directly from the 
event to CSS without need for a remapping. For both underlineStyle and 
underlineThickness, matching the platform lower-case convention will reduce the 
likelihood of developer confusion.

Blink component
Blink>Editing>EditContext<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EEditing%3EEditContext%22>

Web Feature ID
edit-context<https://webstatus.dev/features/edit-context>

Search tags
editcontext<https://chromestatus.com/features#tags:editcontext>, 
editing<https://chromestatus.com/features#tags:editing>, 
textformat<https://chromestatus.com/features#tags:textformat>, 
textformatupdate<https://chromestatus.com/features#tags:textformatupdate>

TAG review
None – this change fixes a bug where Chromium is out of alignment with the 
EditContext spec, for which the TAG is already 
reviewed<https://github.com/w3ctag/design-reviews/issues/416>.

TAG review status
Not applicable

Risks


Interoperability and Compatibility
This change presents compatibility risk for web applications that currently 
rely on Chrome's non-standardized implementation of underlineStyle and 
underlineThickness values in TextFormatUpdateEvent.
TextFormatUpdateEvent usage telemetry data from May 2025 onward are:
1. 0.0171% of page loads register a TextFormatUpdateEvent listener.
2. 0.0002% of page loads fire the event for registered listeners.
3. 0.0002% of page loads include underlineStyle or underlineThickness values 
other than "None" in the fired events.
Some sites using EditContext such as Google Docs do not use these properties, 
instead electing to apply a consistent underline style to the entire active 
composition. These sites will not be affected.
EditContext sites that do use these properties (reflected in the above use 
counters) will need to migrate to the new values, feature-detecting the change. 
Sites using the old non-standard values will experience broken underlineStyle 
or underlineThickness in composition until they update to the spec-compliant 
values. We will reach out to known affected customers prior to shipping this 
change to provide migration guidance.

Gecko: Positive with concerns for EditContext overall. 
(https://github.com/mozilla/standards-positions/issues/199)

WebKit: Neutral for EditContext overall. 
(https://github.com/WebKit/standards-positions/issues/243)

Web developers: No signals

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?
WebView-based applications are expected to have consistent behavior with 
standard web applications. Therefore, the risks for WebView applications are 
similar to web applications.


Debuggability
DevTools already supports TextFormats, so no additional debugging support is 
required for this feature.

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>?
Yes
https://wpt.fyi/results/editing/edit-context/edit-context-textformat.tentative.html

Flag name on about://flags
None

Finch feature name
UseSpecValuesInTextFormatUpdateEventStyles

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

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

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


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/6229300214890496?gate=5198931453673472

This intent message was generated by Chrome Platform 
Status<https://chromestatus.com/>.


________________________________
Thanks,
Ashish

-- 
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/KUYP153MB1141ABC804E609666E474BE4BAE8A%40KUYP153MB1141.APCP153.PROD.OUTLOOK.COM.

Reply via email to