[csswg-drafts] [css-2025][selectors-4] Add features from Selectors 4 to Safe to Release Exceptions (#12797)

SebastianZ has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-2025][selectors-4] Add features from Selectors 4 to Safe to Release Exceptions ==
In https://github.com/w3c/csswg-drafts/issues/12775#issuecomment-3286030735 I was requested to go through Selectors 4 and check for additional features that could be added to the Save to Release pre-CR Exceptions Section of the CSS Snapshot 2025.

Given the [outdated Changes section](https://drafts.csswg.org/selectors-4/#changes-level-3), I didn't realize how many selectors were actually added in level 4 (and widely implemented). It is a bunch! Here's a list of the ones that could potentially be added to the Safe to Release section:

# [:scope](https://drafts.csswg.org/selectors-4/#the-scope-pseudo)

* [implemented in all major browsers since 2014](https://developer.mozilla.org/en-US/docs/Web/CSS/:scope#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=scope): passing tests: Chrome: 17, Edge: 17, Firefox: 17, Safari: 17; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=scope+all(status%3Apass)): 17 / 17 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Ascope"+in%3Atitle): 3, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:defined](https://drafts.csswg.org/selectors-4/#the-defined-pseudo)

* [implemented in all major browsers since 2020](https://developer.mozilla.org/en-US/docs/Web/CSS/:defined#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=defined): passing tests: Chrome: 2, Edge: 2, Firefox: 2, Safari: 2; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=defined+all(status%3Apass)): 2 / 2 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%defined"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:focus-visible](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo)

* [implemented in all major browsers since 2020](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=focus-visible): passing tests: Chrome: 148, Edge: 148, Firefox: 191, Safari: 130; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=focus-visible+all(status%3Apass)): 125 / 193 (64.8%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Afocus-visible"+in%3Atitle): 6, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:focus-within](https://drafts.csswg.org/selectors-4/#the-focus-within-pseudo)

* [implemented in all major browsers since 2020](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=focus-within): passing tests: Chrome: 32, Edge: 32, Firefox: 32, Safari: 24; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=focus-within+all(status%3Apass)): 24 / 32 (75%), [interop between Chrome, Edge, and Firefox](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=focus-within+chrome%3Apass+edge%3Apass+firefox%3Apass): 32 / 32 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Afocus-within"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:dir()](https://drafts.csswg.org/selectors-4/#the-dir-pseudo)

* [implemented in all major browsers since 2023](https://developer.mozilla.org/en-US/docs/Web/CSS/:dir#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=dir): passing tests: Chrome: 73, Edge: 73, Firefox: 73, Safari: 73; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=dir+all(status%3Apass)): 73 / 73 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Adir"+in%3Atitle): 1, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:any-link](https://drafts.csswg.org/selectors-4/#the-any-link-pseudo)

* [implemented in all major browsers since 2020](https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=any-link): passing tests: Chrome: 2, Edge: 2, Firefox: 2, Safari: 2; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=any-link+all(status%3Apass)): 2 / 2 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Aany-link"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:open](https://drafts.csswg.org/selectors-4/#the-open-pseudo)

* [implemented in Chrome, Edge, and Firefox since 2025](https://developer.mozilla.org/en-US/docs/Web/CSS/:open#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=open): passing tests: Chrome: 7, Edge: 7, Firefox: 7, Safari: 2; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=open+all(status%3Apass)): 2 / 7 (28.6%), [interop between Chrome, Edge, and Firefox](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=open+chrome%3Apass+edge%3Apass+firefox%3Apass): 7 / 7 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Aopen"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:popover-open](https://drafts.csswg.org/selectors-4/#the-popover-open-pseudo)

* [implemented in all major browsers since 2023](https://developer.mozilla.org/en-US/docs/Web/CSS/:popover-open#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=popover-open): passing tests: Chrome: 1, Edge: 1, Firefox: 1, Safari: 1; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=popover-open+all(status%3Apass)): 1 / 1 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Apopover-open"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:modal](https://drafts.csswg.org/selectors-4/#the-modal-pseudo)

* [implemented in all major browsers since 2022](https://developer.mozilla.org/en-US/docs/Web/CSS/:modal#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=modal): passing tests: Chrome: 7, Edge: 7, Firefox: 7, Safari: 7; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=modal+all(status%3Apass)): 7 / 7 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Amodal"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:fullscreen](https://drafts.csswg.org/selectors-4/#the-fullscreen-pseudo)

* [implemented in all major browsers since 2022](https://developer.mozilla.org/en-US/docs/Web/CSS/:fullscreen#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=fullscreen): passing tests: Chrome: 2, Edge: 2, Firefox: 2, Safari: 2; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=fullscreen+all(status%3Apass)): 2 / 2 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Afullscreen"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:picture-in-picture](https://drafts.csswg.org/selectors-4/#the-picture-in-picture-pseudo)

* [implemented in Chrome, Edge, and Safari since 2023](https://developer.mozilla.org/en-US/docs/Web/CSS/:picture-in-picture#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=picture-in-picture): no tests
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Apicture-in-picture"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:read-only](https://drafts.csswg.org/selectors-4/#the-read-only-pseudo)

* [implemented in all major browsers since 2020](https://developer.mozilla.org/en-US/docs/Web/CSS/:read-only#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=read-only): no tests
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Aread-only"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:read-write](https://drafts.csswg.org/selectors-4/#the-read-write-pseudo)

* [implemented in all major browsers since 2020](https://developer.mozilla.org/en-US/docs/Web/CSS/:read-write#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=read-write): passing tests: Chrome: 2, Edge: 2, Firefox: 2, Safari: 2; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=read-write+all(status%3Apass)): 2 / 2 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Aread-write"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:placeholder-shown](https://drafts.csswg.org/selectors-4/#the-placeholder-shown-pseudo)

* [implemented in all major browsers since 2020](https://developer.mozilla.org/en-US/docs/Web/CSS/:placeholder-shown#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=placeholder-shown): passing tests: Chrome: 16, Edge: 16, Firefox: 16, Safari: 13; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=placeholder-shown+all(status%3Apass)): 13 / 16 (81.3%), [interop between Chrome, Edge, and Firefox](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=placeholder-shown+chrome%3Apass+edge%3Apass+firefox%3Apass): 16 / 16 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Aplaceholder-shown"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:autofill](https://drafts.csswg.org/selectors-4/#autofill)

* [implemented in all major browsers since 2023](https://developer.mozilla.org/en-US/docs/Web/CSS/:autofill#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=autofill): no tests
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Aautofill"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:default](https://drafts.csswg.org/selectors-4/#the-default-pseudo)

* [implemented in all major browsers since 2023](https://developer.mozilla.org/en-US/docs/Web/CSS/:default#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=default): passing tests: Chrome: 6, Edge: 6, Firefox: 4, Safari: 6; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=default+all(status%3Apass)): 4 / 6 (66.7%), [interop between Chrome, Edge, and Safari](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=default+chrome%3Apass+edge%3Apass+safari%3Apass): 6 / 6 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Adefault"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:indeterminate](https://drafts.csswg.org/selectors-4/#indeterminate-pseudo)

* [implemented in all major browsers since 2015](https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=indeterminate): no tests
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Aindeterminate"+in%3Atitle): 1, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:valid](https://drafts.csswg.org/selectors-4/#valid-pseudo)

* [implemented in all major browsers since 2015](https://developer.mozilla.org/en-US/docs/Web/CSS/:valid#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=valid-+not(user-valid)+not(user-invalid)): no tests
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Avalid"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:invalid](https://drafts.csswg.org/selectors-4/#invalid-pseudo)

* [implemented in all major browsers since 2015](https://developer.mozilla.org/en-US/docs/Web/CSS/:invalid#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=invalid-+not(user-invalid)): no tests
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Ainvalid"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:in-range](https://drafts.csswg.org/selectors-4/#range-pseudos)

* [implemented in all major browsers since 2015](https://developer.mozilla.org/en-US/docs/Web/CSS/:in-range#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=in-range): no tests
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Ain-range"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:out-of-range](https://drafts.csswg.org/selectors-4/#range-pseudos)

* [implemented in all major browsers since 2015](https://developer.mozilla.org/en-US/docs/Web/CSS/:out-of-range#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=out-of-range): no tests
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Aout-of-range"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:required](https://drafts.csswg.org/selectors-4/#opt-pseudos)

* [implemented in all major browsers since 2015](https://developer.mozilla.org/en-US/docs/Web/CSS/:required#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=required): passing tests: Chrome: 3, Edge: 3, Firefox: 3, Safari: 3; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=required+all(status%3Apass)): 3 / 3 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Arequired"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:optional](https://drafts.csswg.org/selectors-4/#opt-pseudos)
* [implemented in all major browsers since 2015](https://developer.mozilla.org/en-US/docs/Web/CSS/:optional#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=required): passing tests: Chrome: 3, Edge: 3, Firefox: 3, Safari: 3; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=optional+all(status%3Apass)): 3 / 3 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Aoptional"+in%3Atitle): 0, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:user-valid](https://drafts.csswg.org/selectors-4/#user-pseudos)
* [implemented in all major browsers since 2023](https://developer.mozilla.org/en-US/docs/Web/CSS/:user-valid#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=user-valid): passing tests: Chrome: 8, Edge: 4, Firefox: 4, Safari: 5; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=user-valid+all(status%3Apass)): 4 / 8 (50%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Auser-valid"+in%3Atitle): 2, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# [:user-invalid](https://drafts.csswg.org/selectors-4/#user-pseudos)
* [implemented in all major browsers since 2023](https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=user-invalid): passing tests: Chrome: 11, Edge: 7, Firefox: 8, Safari: 9; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=user-invalid+all(status%3Apass)): 7 / 11 (63.6%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Auser-invalid"+in%3Atitle): 2, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# Wildcards and language code matching in [:lang()](https://drafts.csswg.org/selectors-4/#the-lang-pseudo)

* [implemented in Firefox and Safari since 2023](https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=lang): passing tests: Chrome: 77, Edge: 76, Firefox: 74, Safari: 74; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=lang+all(status%3Apass)): 74 / 77 (95.9%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Alang"+in%3Atitle): 4, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

# Selector lists in [:nth-child()](https://drafts.csswg.org/selectors-4/#the-nth-child-pseudo) and [:nth-last-child()](https://drafts.csswg.org/selectors-4/#the-nth-last-child-pseudo)

* [implemented in all major browsers since 2023](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child#browser_compatibility)
* [WPT](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=nth-child-of): passing tests: Chrome: 29, Edge: 29, Firefox: 29, Safari: 29; [interop](https://wpt.fyi/results/css/selectors?label=master&label=experimental&aligned&q=nth-child+all(status%3Apass)): 29 / 29 (100%)
* Open issues: [on GitHub](https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+state%3Aopen+label%3Aselectors-4+"%3Anth-child"+of+in%3Atitle): 1, [in spec.](https://drafts.csswg.org/selectors-4/#issues-index): 0

Sebastian

PS: Given the huge list of features that are already shipping, I wonder if we should move the rest to level 5, so level 4 can move to CR. I'll create a separate issue for that.

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12797 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Monday, 15 September 2025 09:39:47 UTC