Note that I have moved the shipping milestone to M121, and have created a TAG review issue.
On Thu, Nov 2, 2023 at 10:07 AM Stephen Chenney <schen...@chromium.org> wrote: > > > On Wed, Nov 1, 2023 at 11:11 AM Stephen Chenney <schen...@chromium.org> > wrote: > >> Answers inline. Regarding Ander's comment on the current base_feature >> setting: I'll fix that. >> >> Cheers, >> Stephen. >> >> On Wed, Nov 1, 2023 at 4:17 AM Yoav Weiss <yoavwe...@chromium.org> wrote: >> >>> >>> >>> On Tue, Oct 31, 2023 at 1:45 PM Stephen Chenney <schen...@chromium.org> >>> wrote: >>> >>>> Contact emailsschen...@chromium.org >>>> >>>> Specificationhttps://drafts.csswg.org/css-pseudo-4/#highlight-cascade >>>> >>>> Summary >>>> >>>> With CSS Highlight Inheritance, the CSS Highlight pseudo classes, such >>>> as ::selection and ::highlight, inherit their properties through the pseudo >>>> highlight chain, rather than the element chain. The result is a more >>>> intuitive model for inheritance of properties in highlights. Specifically, >>>> "When any supported property is not given a value by the cascade ... its >>>> specified value is determined by inheritance from the corresponding >>>> highlight pseudo-element of its originating element’s parent element." ( >>>> https://drafts.csswg.org/css-pseudo-4/#highlight-cascade) >>>> >>>> >>>> Blink componentBlink>CSS >>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS> >>>> >>>> TAG reviewNone >>>> >>> >>> Features are exempt from a TAG review only when another vendor has >>> already shipped them. That doesn't seem to be the case here. >>> >> >> The feature is in the CSS pseudos spec and has been for quite a >> while. The CSS Working Group has been discussing issues too and Safari, at >> least, is implementing according to the spec. I think the ship has sailed >> for any major revision to the behavior. (For context, there was no feature >> defined for this change until recently because it was originally viewed as >> a "make the code implement the spec" change.) >> > TAG Review Issue: https://github.com/w3ctag/design-reviews/issues/914 > >> >>> >>>> >>>> TAG review statusNot applicable >>>> >>>> Risks >>>> >>>> >>>> Interoperability and Compatibility >>>> >>>> The feature is still under implementation in other browser engines, but >>>> the standards are well developed and there is general agreement on the >>>> spec. I think compat risk is very limited at this time. >>>> >>> >>> Does this feature change the behavior of existing uses of ::highlight >>> and ::selection? Is there risk from breakage there? >>> >> >> The change aligns the behavior of ::selection with Firefox. ::highlight >> is already implemented with this behavior. There was breakage of >> ::selection due to custom property handling, which was resolved at the spec >> level and fixed in chromium before sending this intent. No other bugs have >> come in over the extended period that this has been on for experimental web >> platform features (since M111). >> > > My above comment is wrong: The spec defining this feature does change the > behavior of ::selection (not ::highlight) for all browsers. But evidence > suggests that the mitigations that sites used to work around the old > behavior still work with the new behavior, so breakage is very limited. > There was a single source of significant breakage when the feature was > first turned on and the spec and code have been changed to maintain the > former behavior (related to custom properties on root applying to > ::selection). We have had zero other reported bugs from enabling the > feature experimentally. > > Some history ... The spec was changed in response to an issue where > Firefox wanted to un-prefix -moz-selection but was not obeying the old > spec. As I understand it, the selection style was checking for ::selection > on the selected element, using it if found, otherwise using the root > selection styling. All browsers were doing this. > > Sites were designed to work around this through the judicious use of > ::selection on various elements. That is, put ::selection on anything you > wanted a specified selection on, and if the inheritance was wrong, add a > more specific ::selection selector. Hence the heavy use of custom > properties to keep all these ::selection declarations in sync. You can see > this, for example, on GitHub where they define ::selection for an element, > element > span, and element > span > span, and again for light and dark > mode. Sass even has an operator with a comment on it saying they would > remove it if the spec is fixed. > > This intent to ship does not break sites that have taken this approach. > Specific selectors for ::selection will resolve to the same properties as > they do now. The improvement is that "element > span::selection" and > "element > span > span::selection" can now be removed in favor of just > "element::selection". > > >> >> >>>> *Gecko*: Neutral ( >>>> https://github.com/mozilla/standards-positions/issues/548) emilio@ is >>>> active in standards discussions on the issues, but I am not aware of >>>> implementation. https://bugzilla.mozilla.org/show_bug.cgi?id=1703963 >>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1703961 >>>> >>>> *WebKit*: In development ( >>>> https://github.com/WebKit/standards-positions/issues/95) I have a >>>> private email from the Apple engineer tasked with implementing. I don't >>>> want to reveal PI. >>>> >>>> *Web developers*: Developer ergonomics is the primary concern >>>> motivating highlight inheritance. See >>>> https://github.com/w3c/csswg-drafts/issues/2474 for the initial spec >>>> discussion related to the behavior of ::selection. See >>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1490471 for an >>>> example of a user seeing unexpected behavior without this feature. >>>> >>>> *Other signals*: >>>> >>>> Ergonomics >>>> >>>> None. >>>> >>>> >>>> Activation >>>> >>>> No. This reflects the already active behavior for ::selection in >>>> Firefox and the already used behavior for ::highlight, ::spelling and >>>> ::grammar. >>>> >>>> >>>> Security >>>> >>>> There are no security risks. >>>> >>>> >>>> WebView application risks >>>> >>>> None >>>> >>>> >>>> Debuggability >>>> >>>> Devtools supports highlight pseudos and correctly shows the inheritance >>>> chain. >>>> >>>> >>>> Will this feature be supported on all six Blink platforms (Windows, >>>> Mac, Linux, Chrome OS, Android, and Android WebView)?Yes >>>> >>>> There are no cross-platform issues with implementation and no reason to >>>> discriminate on platform. >>>> >>>> >>>> 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 >>>> highlight-cascade-* covers this functionality. There are additional WPT >>>> that make use of the feature in >>>> https://wpt.fyi/results/css/css-highlight-api?label=experimental&label=master&aligned >>>> >>>> >>>> Flag name on chrome://flagsexperimental-web-platform-features >>>> >>>> Finch feature nameHighlightInheritance >>>> >>>> Non-finch justification >>>> >>>> The feature was enabled as experimental way back in M111 and stayed >>>> that way until M116 when it was switched back to test, and it is back on >>>> experimental for M118. Developers have significant experience with the >>>> feature enabled via experimental web platform features. There is no value >>>> to running a finch trial given the large amount of existing experience with >>>> the feature. >>>> >>>> >>>> Requires code in //chrome?False >>>> >>>> Estimated milestones >>>> Shipping on desktop 120 >>>> DevTrial on desktop 118 >>>> Shipping on Android 120 >>>> DevTrial on Android 118 >>>> Shipping on WebView 120 >>>> >>>> Anticipated spec changesNone >>>> >>>> Link to entry on the Chrome Platform Status >>>> https://chromestatus.com/feature/5090853643354112 >>>> >>>> Links to previous Intent discussionsReady for Trial: >>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/BbvI5VAguvk >>>> >>>> >>>> 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/CAGsbWzQfdRQU81Cdm2phXD9f4wktm4f%2BReeYJaYVZKLrt_T4rg%40mail.gmail.com >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGsbWzQfdRQU81Cdm2phXD9f4wktm4f%2BReeYJaYVZKLrt_T4rg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- 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/CAGsbWzQV-S4-w5nen9dWqeGRjSx_ietab3MzfF%2B-UdikH-8Hmw%40mail.gmail.com.