Click here to download the Blitz Browser!

WPT

This page compares scores on the Web Platform Tests across web engines, using the latest master runs from wpt.fyi and Blitz's own test runner.


wpt / css / selectors

Spec: Selectors ↗

Runs: Chrome 158.0.8110.0 (wpt@850b36a56, 2026-10-18) | Firefox 160.0a1 (wpt@b58866519, 2026-10-18) | Safari 254 preview (wpt@850b36a56, 2026-10-18) | Ladybird 1.0-e7b21 (wpt@850b36a56, 2026-10-18) | Servo Servo 0.7 (wpt@df642c414, 2026-10-17) | Blitz fb8d6c15e (wpt@cd1d8aa5b, 2026-10-17)

Score history

Percentage of subtests passing over time, one master run per day. Every engine's percentage is relative to the same denominator: the total number of subtests known to any engine in the latest runs (so lines are not distorted by tests being added to WPT, and an engine that skips tests is not flattered for it).

1 month3 months6 months1 year2 years4 yearsAll time
0%20%40%60%80%100%Nov 2025Dec 2025Jan 2026Feb 2026Mar 2026Apr 2026May 2026Jun 2026Jul 2026Aug 2026Sep 2026Oct 2026ChromeFirefoxSafariLadybirdServoBlitz

Sort: alphabetical | by subtest count

AreaChromeFirefoxSafariLadybirdServoBlitz
Total85.2%5616/659193.7%6177/659197.3%6418/659195.7%6309/659165.1%4292/659137.5%2476/6591
attribute-selectors60.6%969/1597100.0%1597/159799.8%1594/1597100.0%1597/1597100.0%1597/159724.4%391/1597
crashtests100.0%2/2100.0%2/250.0%1/250.0%1/250.0%1/2100.0%2/2
i18n100.0%45/4597.7%44/45100.0%45/45100.0%45/45100.0%45/4562.2%28/45
invalidation98.2%3003/305696.9%2963/305699.1%3031/305699.4%3040/305649.5%1515/305646.4%1419/3056
media100.0%20/20100.0%20/20100.0%20/2069.9%14/200.0%0/200.0%0/20
old-tests100.0%292/29299.6%291/29299.6%291/29282.1%240/29296.5%282/29285.6%250/292
parsing87.1%379/43588.0%383/43586.4%376/43580.4%350/43580.0%348/43525.7%112/435
query100.0%12/12100.0%12/12100.0%12/12100.0%12/12100.0%12/12100.0%12/12
selectors-4100.0%39/3989.7%35/3997.4%38/3997.4%38/3992.3%36/3917.9%7/39
TestChromeFirefoxSafariLadybirdServoBlitz
Total78.2%855/109375.9%830/109392.4%1010/109388.9%972/109341.7%456/109323.3%255/1093
active-after-relayouts.htmlPASSPASSTIMEOUTPASSPASSSKIP
active-display-none-001.htmlPASSPASSPASSPASSPASSSKIP
active-inside-link.htmlPASSPASSPASSPASSPASSFAIL
active-observable.html17/1717/1717/1715/1715/170/17
active-toplayer-001.html3/30/33/30/30/30/3
attribute-selector-escape.htmlPASSPASSPASSPASSPASSFAIL
backdrop-input-crash.htmlPASSPASSPASSPASSPASSPASS
caret-color-visited-inheritance.htmlPASSPASSPASSPASSPASSPASS
child-indexed-during-parse.html6/66/66/66/66/66/6
child-indexed-no-parent.htmlPASSPASSPASSPASSPASSPASS
child-indexed-pseudo-class.html57/5757/5757/5757/5757/5757/57
chrome-40257746-crash.htmlPASSPASSPASSPASSPASSPASS
class-prefix-selector-has-invalidation.tentative.html0/80/80/80/80/80/8
class-prefix-selector-has-matching.tentative.html0/80/80/80/80/80/8
class-prefix-selector-invalidation.tentative.html0/30/30/30/30/30/3
class-prefix-selector-matching-quirks.tentative.html2/52/52/53/52/50/5
class-prefix-selector-matching.tentative.html0/180/180/184/180/180/18
class-prefix-selector-queryselector.tentative.html0/60/60/61/60/60/6
class-selector-change.htmlPASSPASSPASSPASSPASSPASS
class-selector-escape-exclamation.htmlPASSPASSPASSPASSPASSPASS
dir-pseudo-in-has.htmlPASSPASSPASSPASSFAILFAIL
dir-pseudo-on-bdi-element.html5/55/55/55/50/50/5
dir-pseudo-on-input-element.html20/2020/2020/2020/200/200/20
dir-pseudo-update-document-element.htmlPASSPASSPASSPASSFAILFAIL
dir-selector-auto-direction-change-001.htmlPASSPASSPASSPASSFAILFAIL
dir-selector-auto.html22/2222/2222/2222/220/220/22
dir-selector-change-001.htmlPASSPASSPASSPASSFAILFAIL
dir-selector-change-002.htmlPASSPASSPASSPASSFAILFAIL
dir-selector-change-003.htmlPASSPASSPASSPASSFAILFAIL
dir-selector-change-004.htmlPASSPASSPASSPASSFAILFAIL
dir-selector-ltr-001.htmlPASSPASSPASSPASSFAILFAIL
dir-selector-ltr-002.htmlPASSPASSPASSPASSPASSPASS
dir-selector-ltr-003.htmlPASSPASSPASSPASSPASSPASS
dir-selector-querySelector.html4/44/44/44/41/41/4
dir-selector-rtl-001.htmlPASSPASSPASSPASSFAILFAIL
dir-selector-white-space-001.htmlPASSPASSPASSPASSFAILFAIL
dir-style-01a.htmlPASSPASSPASSPASSFAILFAIL
dir-style-01b.htmlPASSPASSPASSPASSFAILFAIL
dir-style-02a.htmlPASSPASSPASSPASSFAILFAIL
dir-style-02b.htmlPASSPASSPASSPASSFAILFAIL
dir-style-03a.htmlPASSPASSPASSPASSFAILFAIL
dir-style-03b.htmlPASSPASSPASSPASSFAILFAIL
dir-style-04.htmlPASSPASSPASSPASSFAILFAIL
eof-right-after-selector-crash.htmlPASSPASSPASSPASSPASSPASS
eof-some-after-selector-crash.htmlPASSPASSPASSPASSPASSPASS
featureless-001.htmlPASSPASSPASSPASSPASSFAIL
featureless-002.htmlPASSPASSPASSPASSPASSFAIL
featureless-003.htmlPASSPASSPASSPASSPASSFAIL
featureless-004.htmlPASSPASSPASSFAILPASSFAIL
featureless-005.htmlPASSFAILPASSPASSFAILFAIL
featureless-006.html45/4643/4646/4646/4643/460/46
featureless-007.html24/2424/2424/2423/2424/240/24
first-child.html5/55/55/55/55/55/5
first-letter-flag-001.htmlPASSPASSPASSPASSFAILFAIL
first-line-bidi-001.htmlPASSPASSPASSFAILFAILFAIL
first-line-bidi-002.htmlPASSPASSPASSFAILFAILFAIL
first-of-type.html9/99/99/99/99/99/9
floating-first-letter-05d0.htmlPASSPASSPASSPASSPASSPASS
floating-first-letter-feff.htmlPASSPASSPASSPASSPASSPASS
focus-display-none-001.html2/22/22/20/22/20/2
focus-in-focus-event-001.html3/33/33/33/31/30/3
focus-in-focusin-event-001.html3/33/30/33/31/30/3
focus-visible-001.htmlPASSPASSPASSFAILFAILSKIP
focus-visible-002.html14/1414/1411/1414/140/140/14
focus-visible-003.html12/1212/123/124/125/120/12
focus-visible-004.html10/1010/103/104/105/100/10
focus-visible-005.htmlPASSPASSPASSFAILPASSSKIP
focus-visible-006.htmlPASSPASSPASSPASSFAILSKIP
focus-visible-007.htmlPASSFAILPASSFAILFAILSKIP
focus-visible-008.htmlPASSPASSPASSFAILFAILSKIP
focus-visible-009.htmlPASSPASSPASSFAILFAILFAIL
focus-visible-010.htmlPASSPASSPASSPASSFAILSKIP
focus-visible-011.htmlPASSFAILPASSFAILFAILSKIP
focus-visible-012.htmlPASSPASSPASSPASSPASSSKIP
focus-visible-013.htmlPASSPASSPASSPASSTIMEOUTSKIP
focus-visible-014.htmlPASSPASSPASSPASSFAILSKIP
focus-visible-015.htmlPASSPASSPASSFAILPASSSKIP
focus-visible-016.htmlPASSPASSPASSPASSFAILSKIP
focus-visible-017-2.html38/3838/3838/3838/381/380/38
focus-visible-017.html2/22/22/22/21/20/2
focus-visible-018-2.html38/3838/3838/3838/3833/380/38
focus-visible-018.html2/22/22/22/22/20/2
focus-visible-019.html2/22/22/22/21/20/2
focus-visible-020.html2/22/22/22/21/20/2
focus-visible-021.html2/22/21/22/21/20/2
focus-visible-022.tentative.htmlPASSPASSPASSPASSFAILSKIP
focus-visible-023.html2/22/22/22/21/20/2
focus-visible-024.html3/33/33/31/31/30/3
focus-visible-025.html3/33/33/31/31/30/3
focus-visible-026.html2/22/22/21/22/20/2
focus-visible-027.htmlPASSPASSPASSPASSFAILSKIP
focus-visible-028.htmlPASSPASSPASSPASSFAILSKIP
focus-visible-script-focus-001.html2/22/22/22/21/20/2
focus-visible-script-focus-002.tentative.html2/22/22/22/21/20/2
focus-visible-script-focus-003.tentative.html2/22/22/22/21/20/2
focus-visible-script-focus-004.html2/22/22/22/21/20/2
focus-visible-script-focus-005.html2/22/22/22/21/20/2
focus-visible-script-focus-006.tentative.html2/22/22/22/21/20/2
focus-visible-script-focus-007.tentative.html2/22/22/22/21/20/2
focus-visible-script-focus-008-b.html2/22/22/21/22/20/2
focus-visible-script-focus-008.html2/22/22/21/22/20/2
focus-visible-script-focus-009.html2/22/22/21/22/20/2
focus-visible-script-focus-010.html2/22/22/21/22/20/2
focus-visible-script-focus-011.html2/22/22/21/22/20/2
focus-visible-script-focus-012.html2/22/22/22/21/20/2
focus-visible-script-focus-013.html2/22/22/22/21/20/2
focus-visible-script-focus-014.html2/22/22/22/21/20/2
focus-visible-script-focus-015.html2/22/21/22/21/20/2
focus-visible-script-focus-016.tentative.html2/22/22/22/21/20/2
focus-visible-script-focus-017.tentative.html2/22/22/22/21/20/2
focus-visible-script-focus-018.html2/22/22/21/22/20/2
focus-visible-script-focus-019.html2/22/22/21/22/20/2
focus-visible-script-focus-020.html2/22/22/21/22/20/2
focus-within-001.htmlPASSPASSPASSPASSFAILFAIL
focus-within-002.htmlPASSPASSPASSPASSFAILFAIL
focus-within-003.htmlPASSPASSPASSPASSFAILFAIL
focus-within-004.htmlPASSPASSPASSFAILFAILFAIL
focus-within-005.htmlPASSPASSPASSPASSFAILFAIL
focus-within-006.htmlPASSPASSPASSPASSFAILFAIL
focus-within-007.htmlPASSPASSPASSPASSFAILFAIL
focus-within-008.htmlPASSPASSPASSPASSFAILFAIL
focus-within-009.html12/1212/1212/129/124/123/12
focus-within-010.htmlPASSPASSPASSPASSFAILFAIL
focus-within-011.htmlPASSPASSPASSPASSFAILFAIL
focus-within-012.htmlPASSPASSPASSPASSPASSPASS
focus-within-013.htmlPASSPASSPASSPASSPASSPASS
focus-within-display-none-001.html2/22/22/20/20/20/2
focus-within-focus-move.htmlPASSPASSPASSPASSFAILFAIL
focus-within-removal.htmlPASSPASSPASSPASSFAILFAIL
focus-within-shadow-001.htmlPASSPASSPASSPASSFAILFAIL
focus-within-shadow-002.htmlPASSPASSPASSPASSFAILFAIL
focus-within-shadow-003.htmlPASSPASSPASSPASSFAILFAIL
focus-within-shadow-004.htmlPASSPASSPASSPASSFAILFAIL
focus-within-shadow-005.htmlPASSPASSPASSPASSFAILFAIL
focus-within-shadow-006.htmlPASSPASSPASSPASSFAILFAIL
focus-within-toplayer-001.html3/30/33/30/30/30/3
focus-within.html2/22/22/22/20/20/2
has-argument-with-explicit-scope.html13/1313/1313/1313/130/130/13
has-basic.html18/1818/1818/1818/180/180/18
has-display-none-checked.htmlPASSPASSPASSPASSFAILFAIL
has-focus-display-change.htmlFAILPASSFAILPASSFAILFAIL
has-matches-to-uninserted-elements.html12/1212/1212/1212/120/120/12
has-nth-of-crash.htmlPASSPASSPASSPASSPASSPASS
has-relative-argument.html35/3535/3535/3535/350/350/35
has-sibling-chrome-crash.htmlPASSPASSPASSPASSPASSPASS
has-specificity.html8/88/88/88/81/81/8
has-style-sharing-001.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-002.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-003.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-004.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-005.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-006.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-007.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-pseudo-001.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-pseudo-002.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-pseudo-003.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-pseudo-004.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-pseudo-005.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-pseudo-006.htmlPASSPASSPASSPASSFAILFAIL
has-style-sharing-pseudo-007.htmlPASSPASSPASSPASSFAILPASS
has-style-sharing-pseudo-008.htmlPASSPASSPASSPASSFAILPASS
has-visited.htmlPASSPASSPASSPASSFAILFAIL
has-where-computed.htmlPASSPASSPASSPASSFAILFAIL
hash-collision-cssom.htmlPASSPASSPASSPASSPASSFAIL
hash-collision.htmlPASSPASSPASSPASSPASSPASS
heading-prefixed.html0/60/66/66/60/60/6
heading.html0/1820/182182/182182/1820/1820/182
historical-xmlid.xhtPASSPASSPASSPASSPASSFAIL
hover-002.html2/22/22/22/22/20/2
hover-boundary-events.htmlPASSPASSPASSPASSFAILSKIP
hover-toplayer-001.html3/30/33/30/30/30/3
is-default-ns-001.htmlPASSPASSPASSPASSPASSPASS
is-default-ns-002.htmlPASSPASSPASSPASSPASSPASS
is-default-ns-003.htmlPASSFAILPASSPASSPASSPASS
is-nested.html2/22/22/22/22/22/2
is-specificity-shadow.htmlPASSPASSPASSPASSPASSPASS
is-specificity.htmlPASSPASSPASSPASSPASSPASS
is-where-basic.html15/1515/1515/1514/1515/1515/15
is-where-error-crash.htmlPASSPASSPASSPASSPASSPASS
is-where-error-recovery.htmlPASSPASSPASSPASSPASSPASS
is-where-not.html18/1818/1818/1818/1818/1818/18
is-where-pseudo-classes.htmlPASSPASSPASSPASSPASSPASS
is-where-pseudo-elements.htmlPASSPASSPASSPASSPASSPASS
is-where-shadow.html3/32/32/32/32/30/3
is-where-visited.htmlPASSFAILFAILFAILFAILFAIL
last-child.html5/55/55/55/55/55/5
last-of-type.html9/99/99/99/99/99/9
link-sharing-crash.htmlPASSPASSPASSPASSPASSPASS
missing-right-token.htmlPASSPASSPASSPASSPASSPASS
modal-pseudo-class.html2/22/22/21/20/20/2
not-complex.html20/2020/2020/2020/2020/2020/20
not-default-ns-001.htmlPASSPASSPASSPASSPASSPASS
not-default-ns-002.htmlPASSPASSPASSPASSPASSPASS
not-default-ns-003.htmlPASSFAILPASSPASSPASSPASS
not-links.htmlPASSPASSPASSFAILPASSFAIL
not-specificity.html8/88/88/88/88/88/8
nth-child-and-nth-last-child.htmlPASSPASSPASSPASSFAILFAIL
nth-child-large-anplusb-clamp.html3/33/33/33/33/33/3
nth-child-of-attribute.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-classname-002.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-classname.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-complex-selector-many-children-2.htmlPASSPASSPASSPASSPASSPASS
nth-child-of-complex-selector-many-children.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-complex-selector.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-compound-selector.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-has.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-nesting.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-no-space-after-of.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-not.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-nth-child.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-pseudo.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-tagname.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-universal-selector.htmlPASSPASSPASSPASSFAILFAIL
nth-child-specificity-1.htmlPASSPASSPASSFAILFAILFAIL
nth-child-specificity-2.htmlPASSPASSPASSFAILFAILFAIL
nth-child-specificity-3.htmlPASSPASSPASSPASSFAILFAIL
nth-child-specificity-4.htmlPASSPASSPASSPASSFAILFAIL
nth-child-spurious-brace-crash.htmlPASSPASSPASSPASSPASSPASS
nth-last-child-invalid.htmlPASSPASSPASSPASSPASSPASS
nth-last-child-of-classname.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-complex-selector.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-compound-selector.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-nesting.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-no-space-after-of.htmlPASSPASSFAILPASSFAILFAIL
nth-last-child-of-style-sharing-1.htmlPASSPASSFAILPASSFAILFAIL
nth-last-child-of-style-sharing-2.htmlPASSPASSFAILPASSFAILFAIL
nth-last-child-of-tagname.htmlPASSPASSFAILPASSFAILFAIL
nth-last-child-specificity-1.htmlPASSPASSPASSFAILFAILFAIL
nth-last-child-specificity-2.htmlPASSPASSPASSFAILFAILFAIL
nth-last-child-specificity-3.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-specificity-4.htmlPASSPASSPASSPASSFAILFAIL
nth-of-invalid.htmlPASSPASSPASSPASSPASSPASS
nth-of-selector-before.htmlPASSPASSPASSPASSFAILFAIL
nth-of-type-namespace.html3/33/33/33/33/33/3
of-type-selectors.xhtmlPASSPASSPASSPASSPASSPASS
only-child.html5/55/55/55/55/55/5
only-of-type.html5/55/55/55/55/55/5
open-pseudo.html3/33/33/33/30/30/3
placeholder-shown.html7/77/77/77/75/74/7
popover-open-with-has-sibling-selector.htmlPASSPASSPASSPASSTIMEOUTFAIL
pseudo-enabled-disabled.html4/44/44/44/44/44/4
pseudo-where-crash.htmlPASSPASSPASSPASSPASSPASS
quirks-mode-import.htmlPASSPASSPASSPASSPASSFAIL
remove-hovered-element.htmlPASSPASSFAILPASSFAILFAIL
root-siblings.htmlPASSPASSPASSPASSPASSPASS
scope-selector.html3/33/33/33/33/30/3
scope-without-scoping.htmlPASSPASSPASSPASSPASSPASS
selection-image-001.htmlPASSPASSPASSPASSPASSFAIL
selection-image-002.htmlPASSPASSPASSPASSPASSFAIL
selector-after-font-family.htmlPASSPASSPASSPASSPASSPASS
selector-placeholder-shown-emptify-placeholder.html2/22/22/22/22/22/2
selector-placeholder-shown-type-change-001.htmlPASSPASSPASSPASSPASSFAIL
selector-placeholder-shown-type-change-002.htmlPASSPASSPASSPASSFAILPASS
selector-placeholder-shown-type-change-003.htmlPASSPASSPASSPASSFAILPASS
selector-read-write-type-change-001.htmlPASSPASSPASSPASSPASSPASS
selector-read-write-type-change-002.htmlPASSPASSPASSPASSPASSFAIL
selector-required-type-change-001.htmlPASSPASSPASSPASSPASSPASS
selector-required-type-change-002.htmlPASSPASSPASSPASSFAILFAIL
selector-required.htmlPASSPASSPASSPASSFAILFAIL
selector-specificity.html4/44/44/44/44/44/4
selector-structural-pseudo-root.htmlPASSPASSPASSPASSPASSPASS
selectors-attr-many-2.htmlPASSPASSPASSPASSPASSPASS
selectors-attr-many.htmlPASSPASSPASSPASSPASSPASS
selectors-attr-white-space-001.htmlPASSPASSPASSPASSPASSPASS
selectors-case-sensitive-001.html3/33/33/33/33/33/3
selectors-empty-001.xmlPASSPASSPASSPASSPASSFAIL
selectors-namespace-001.xmlPASSPASSPASSPASSPASSPASS
sharing-in-svg-use.htmlPASSPASSPASSPASSFAILFAIL
spurious-brace-crash.htmlPASSPASSPASSPASSPASSPASS
text-emphasis-visited-inheritance.htmlPASSPASSPASSPASSPASSPASS
text-fill-color-visited-inheritance.htmlPASSPASSPASSPASSPASSPASS
text-stroke-color-visited-inheritance.htmlPASSPASSPASSPASSPASSPASS
toplayer-transition-001.html2/20/22/20/20/20/2
user-action-pseudo-top-layer.html4/41/43/41/40/40/4
user-invalid-form-submission-invalidation.htmlFAILPASSPASSPASSFAILFAIL
user-invalid.html8/87/88/84/81/81/8
user-valid-user-invalid-multifield-inputs.tentative.html3/30/30/30/30/30/3
user-valid.html5/54/55/52/50/50/5
valid-invalid-form-fieldset.htmlPASSPASSPASSPASSFAILFAIL
valid-invalid-pseudo.html4/44/44/44/44/40/4
visited-in-visited-compound.htmlPASSPASSPASSPASSPASSPASS
visited-inheritance.htmlPASSPASSPASSPASSPASSPASS
visited-nested.htmlPASSPASSPASSPASSPASSPASS
visited-part-crash.htmlPASSPASSPASSPASSPASSPASS
webkit-pseudo-element.html6/66/66/66/61/61/6
x-pseudo-element.htmlPASSPASSPASSPASSPASSPASS
xml-class-selector.xmlFAILPASSPASSPASSPASSPASS