The CSS Spelling and Grammar feature has been active behind experimental
web platform features since M89! There are no open bugs. I would like to
turn it on at last for M120.

Contact emailsschen...@chromium.org, dazab...@igalia.com

Explainerhttps://drafts.csswg.org/css-pseudo-4/#selectordef-spelling-error
https://drafts.csswg.org/css-pseudo-4/#selectordef-grammar-error
https://drafts.csswg.org/css-text-decor-4/#valdef-text-decoration-line-spelling-error
https://drafts.csswg.org/css-text-decor-4/#valdef-text-decoration-line-grammar-error

Specification
https://drafts.csswg.org/css-pseudo-4/#selectordef-spelling-error

Summary

CSS highlight pseudo-elements for styling text that the UA has flagged as
misspelled or grammatically incorrect, and line decorations exposing the
UA’s default decorations for spelling and grammar errors. These features
allow authors to choose more legible colors for the default spelling and
grammar errors, highlight misspelled words with background colors or other
decorations, and implement custom spell checking with almost-native
appearance.




Blink componentBlink>CSS
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS>

Search tagsspelling-error
<https://chromestatus.com/features#tags:spelling-error>, grammar-error
<https://chromestatus.com/features#tags:grammar-error>, highlight pseudos
<https://chromestatus.com/features#tags:highlight%20pseudos>

TAG reviewNone

TAG review statusNot applicable

Risks


Interoperability and Compatibility

https://developer.mozilla.org/en-US/docs/Web/CSS/::spelling-error
https://developer.mozilla.org/en-US/docs/Web/CSS/::grammar-error


*Gecko*: No signal (
https://github.com/mozilla/standards-positions/issues/470)

*WebKit*: In development (
https://lists.webkit.org/pipermail/webkit-dev/2021-January/031660.html)
WebKit has an old WIP patch from 2018 at https://webkit.org/b/175784 CSS
Working group minutes imply Safari is planning an implementation:
https://github.com/w3c/csswg-drafts/issues/7522

*Web developers*: Positive (
https://dev.to/lampewebdev/css-pseudo-elements-classes-you-have-never-heard-of-30hl#the-grammarerror-and-spellingerror-pseudoelement
)

*Other signals*: The spec for the text-decoration-line:
spelling-error/grammar-error is
https://drafts.csswg.org/css-text-decor-4/#text-decoration-line-property

Ergonomics

The new pseudo-elements depend on the new ‘text-decoration-line’ values for
UA stylesheet support. They are highlight pseudos, which should pose
minimal performance risk due to the limited set of CSS properties they
allow: <https://drafts.csswg.org/css-pseudo-4/#highlight-styling>


Security

See, for example, https://github.com/w3c/csswg-drafts/issues/5731 The final
spec says that only a minimal set of properties is allowed, and those
cannot load resources or otherwise expose timing attacks that inform of a
user's dictionary. The reported styles (to JS, to DevTools) do not depend
on whether or not the style is currently applied, so do not reveal anything
about the state of the styled text.


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

Devtools support is the same as ::selection, ::target-text, and
::highlight(), which appear in the Styles panel. Properties inherited from
ancestor spelling and grammar styles are also shown in the Styles panel.


Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, Chrome OS, Android, and Android WebView)?Yes

There are no platform specific aspects to the feature and it is useful on
all platforms.


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/css/css-pseudo?label=experimental&label=master&aligned
Internal web tests have greater coverage because there is no way in WPT to
activate a spelling or grammar error.
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/paint/markers/
https://source.chromium.org/search?q=spelling-error&ss=chromium%2Fchromium%2Fsrc
https://source.chromium.org/search?q=grammar-error&ss=chromium%2Fchromium%2Fsrc


Flag name on chrome://flagsexperimental-web-platform-features

Finch feature nameCSSSpellingGrammarErrors

Non-finch justification

The feature is new and poses no performance or crash risk. It has been in
experimental for a long time already and is extensively tested.


Requires code in //chrome?False

Tracking bughttps://crbug.com/1163437

Sample links
https://bucket.daz.cat/work/igalia/0/1.html

Estimated milestones
DevTrial on desktop 89
DevTrial on Android 89

Anticipated spec changes

The spec has stabilized and there is only one outstanding issue seeking
clarification that is not expected to result in a change in behavior.

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/4811776539492352

Links to previous Intent discussionsIntent to prototype:
https://groups.google.com/a/chromium.org/g/blink-dev/c/8UEcRJViPEU

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 blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGsbWzSv%2B6V8aKpEw6hF95onWjtnU0x%2BwODnmXU-ScuvJKmMbA%40mail.gmail.com.

Reply via email to