On 10/8/25 6:28 a.m., Anders Hartvoll Ruud wrote:
Contact emails
[email protected]
Specification
None
However, PR: https://github.com/w3c/csswg-drafts/pull/12914
<https://github.com/w3c/csswg-drafts/pull/12914>
Thanks for doing this work. It's a bit surprising to me that other
vendors are changing tests, implementations, and MDN articles before
spec language has even landed.
Summary
The '&' pseudo-class now behaves like :where(:scope) (i.e. refers to
the scoping root), rather than referring to the <scope-start> selector.
Miriam Suzanne wrote a blog post explaining about this change:
https://css.oddbird.net/scope/parent-selector/
<https://css.oddbird.net/scope/parent-selector/>
Blink component
Blink>CSS
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ECSS%22>
Web Feature ID
Missing feature
Risks
Interoperability and Compatibility
This is theoretically a breaking change, and while @scope isn't widely
used yet, I added a use-counter for this which recently hit stable:
https://chromestatus.com/metrics/feature/timeline/popularity/5629
<https://chromestatus.com/metrics/feature/timeline/popularity/5629>(~0.00016%)
Note: The use-counter triggers whenever '&' is seen in @scope at all.
It does not mean that this change will actually cause an observable
difference in the result for all of those 0.00016%.
The possibly breaking cases would be:
A) Here, the ‘&’ rule wins today, but will now lose against
:where(:scope) due the change in specificity.
@scope (.foo) {
& { color: green; } /* Used to win; now loses. */
:where(:scope) { color: red; }
}
B) Since ‘&’ now refers to a specific element rather than a selector,
selectors like the following can not match (since an element can not
be its own sibling), whereas they previously couldmatch:
@scope (.foo) {
& + & { color: green; } /* Cannot match anything anymore. */
}
Gecko: Positive (https://github.com/web-platform-tests/wpt/pull/53831
<https://github.com/web-platform-tests/wpt/pull/53831>) Mozilla
initiated the WPT change. (And the spec change.)
WebKit: Shipped/Shipping
(https://github.com/WebKit/WebKit/commit/4d5ebef83e17f6201e006f379de304fac6d196b4
<https://github.com/WebKit/WebKit/commit/4d5ebef83e17f6201e006f379de304fac6d196b4>)
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?
None
Debuggability
No change.
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
scope-invalidation.html
<https://wpt.fyi/results/css/css-cascade/scope-invalidation.html?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2025-scope%20file%3Ascope-invalidation.html>
scope-name-defining-rules.html
<https://wpt.fyi/results/css/css-cascade/scope-name-defining-rules.html?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2025-scope%20file%3Ascope-invalidation.html>
scope-specificity.html
<https://wpt.fyi/results/css/css-cascade/scope-specificity.html?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2025-scope%20file%3Ascope-invalidation.html>
Flag name on about://flags
Finch feature name
CSSScopeifiedParentPseudoClass
Rollout plan
Will ship enabled for all users
Tracking bug
https://issues.chromium.org/issues/445949406
<https://issues.chromium.org/issues/445949406>
Estimated milestones
M143
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5736934890668032?gate=6189707524440064
<https://chromestatus.com/feature/5736934890668032?gate=6189707524440064>
Note: This is a “Web-Facing Change” due to the API being changed in a
trivial way
<https://www.chromium.org/blink/launching-features/#behavior-changes:~:text=Use%20%22Web%20developer%20facing%20code%20change%22%20only%20for%20changes%20deemed%20very%20unlikely%20to%20break%20sites%2C%20and%20that%20change%20APIs%20in%20at%20most%20a%20trivial%20way.>with
very low risk of breakage.
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/CAKFBnUpv5y%2BOf3ET5Mz6r1YT4WRuGT4zf-WpS7Z9zsOh3tDxeQ%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKFBnUpv5y%2BOf3ET5Mz6r1YT4WRuGT4zf-WpS7Z9zsOh3tDxeQ%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 [email protected].
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/b35e86c5-53d6-4462-afaa-5e3dc3c24e04%40chromium.org.