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 / invalidation

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
Total98.2%3003/305696.9%2963/305699.1%3031/305699.4%3040/305649.5%1515/305646.4%1419/3056
crashtests100.0%2/2100.0%2/2100.0%2/2100.0%2/2100.0%2/2100.0%2/2
TestChromeFirefoxSafariLadybirdServoBlitz
Total98.2%3001/305496.9%2961/305499.1%3029/305499.4%3038/305449.5%1513/305446.3%1417/3054
any-link-attribute-removal.htmlPASSPASSPASSPASSPASSPASS
any-link-pseudo.htmlPASSPASSPASSPASSPASSPASS
attribute-or-elemental-selectors-in-has.html31/3131/3131/3131/3118/319/31
attribute.html6/66/66/66/66/66/6
child-indexed-pseudo-classes-in-has.html66/6666/6666/6666/6639/6639/66
class-id-attr.htmlPASSPASSPASSPASSPASSPASS
defined-in-has.htmlPASSPASSPASSPASSFAILFAIL
defined.htmlPASSPASSPASSPASSPASSFAIL
dir-pseudo-class-in-has.htmlPASSPASSPASSPASSFAILFAIL
empty-pseudo-in-has-display-none.html14/1414/1414/1414/147/147/14
empty-pseudo-in-has.html6/66/66/66/61/61/6
enabled-disabled.html2/22/22/22/22/22/2
first-child-last-child.html2/22/22/22/22/20/2
fullscreen-pseudo-class-in-has.html2/22/22/22/20/20/2
has-append-first-node.htmlPASSPASSPASSPASSFAILFAIL
has-complexity.html7/77/77/77/71/71/7
has-css-nesting-shared.html12/1212/1212/1212/126/126/12
has-in-adjacent-position.html295/295295/295295/295295/295193/295193/295
has-in-ancestor-position.html337/337337/337337/337337/337210/337210/337
has-in-is-non-subject-compound.html3/33/33/33/32/32/3
has-in-parent-position.html211/211211/211211/211211/211152/211152/211
has-in-sibling-position.html295/295295/295295/295295/295181/295181/295
has-invalidation-after-removing-non-first-element.html2/22/22/22/21/21/2
has-invalidation-first-in-sibling-chain.html12/1212/128/1212/128/128/12
has-invalidation-for-wiping-an-element.html5/55/55/55/53/52/5
has-nested-pseudo-001-crash.htmlPASSPASSPASSPASSPASSPASS
has-nested-pseudo-002-crash.htmlPASSPASSPASSPASSPASSPASS
has-nested-pseudo-003-crash.htmlPASSPASSPASSPASSPASSPASS
has-pseudo-element-subject-child-mutation.html4/44/44/44/41/40/4
has-pseudo-element.htmlPASSPASSPASSPASSFAILFAIL
has-pseudoclass-only.html36/3636/3636/3636/3624/3624/36
has-sibling-insertion-removal.html28/2828/2828/2828/2814/2814/28
has-sibling-propagation.htmlPASSPASSPASSPASSPASSPASS
has-sibling.html71/7171/7171/7171/7136/7136/71
has-side-effect.html3/33/33/33/32/32/3
has-unstyled.html9/99/99/99/95/95/9
has-with-is-child-combinator.html10/1010/1010/1010/107/107/10
has-with-nesting-parent-containing-complex.html37/3737/3737/3737/3719/3719/37
has-with-nesting-parent-containing-hover.htmlPASSPASSPASSPASSFAILSKIP
has-with-not.html21/2121/2121/2121/2111/2111/21
has-with-nth-child-sibling-remove.htmlPASSPASSPASSPASSFAILFAIL
has-with-nth-child.html5/55/51/55/54/54/5
has-with-pseudo-class.html41/4141/4141/4141/410/410/41
heading-pseudo-class-in-has-with-headingoffset.html33/5633/5656/5656/5633/5633/56
heading-pseudo-class-in-has-with-slot-reassignment.html26/3926/3939/3939/3926/390/39
heading-pseudo-class-in-has.html55/7255/7272/7272/7255/7229/72
host-context-pseudo-class-in-has.html6/64/64/64/64/60/6
host-has-shadow-tree-element-at-nonsubject-position.html26/2610/2625/2625/2610/260/26
host-has-shadow-tree-element-at-subject-position.html26/2610/2625/2625/2610/261/26
host-pseudo-class-in-has.html4/44/44/44/42/40/4
input-in-range-in-has-with-readonly.html4/44/44/40/40/40/4
input-pseudo-classes-in-has.html10/1010/1010/109/100/100/10
insert-sibling-001.htmlPASSPASSPASSPASSPASSFAIL
insert-sibling-002.htmlPASSPASSPASSPASSFAILFAIL
insert-sibling-003.htmlPASSPASSPASSPASSFAILFAIL
insert-sibling-004.htmlPASSPASSPASSPASSFAILFAIL
is-pseudo-containing-complex-in-has.html476/476476/476476/476476/476140/476140/476
is-pseudo-containing-sibling-relationship-in-has.html21/2121/2112/2121/2120/2120/21
is-where-pseudo-containing-hard-pseudo-and-never-matching.html12/1212/1212/1212/128/128/12
is-where-pseudo-containing-hard-pseudo.html20/2020/2020/2020/2020/2020/20
is.html7/77/77/77/77/77/7
lang-pseudo-class-in-has-document-element.htmlPASSPASSPASSPASSFAILFAIL
lang-pseudo-class-in-has-multiple-document-elements.htmlPASSPASSPASSPASSTIMEOUTFAIL
lang-pseudo-class-in-has-xhtml.xhtmlPASSPASSPASSPASSFAILFAIL
lang-pseudo-class-in-has.htmlPASSPASSPASSPASSFAILFAIL
link-pseudo-class-in-has.html2/22/22/22/20/20/2
link-pseudo-in-has.htmlPASSPASSPASSPASSFAILFAIL
location-pseudo-classes-in-has.htmlPASSPASSPASSPASSFAILFAIL
media-loading-pseudo-classes-in-has.sub.html2/22/22/20/20/20/2
media-pseudo-classes-in-has.html3/33/33/33/30/30/3
modal-pseudo-class-in-has.html5/55/55/53/51/50/5
negated-always-matches-negated-first-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-always-matches-negated-last-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-first-of-type-in-nonsubject-position.htmlPASSPASSPASSPASSPASSPASS
negated-has-in-nonsubject-position.htmlPASSPASSPASSPASSPASSPASS
negated-is-always-matches-negated-first-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-is-always-matches-negated-last-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-is-never-matches-negated-first-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-is-never-matches-negated-last-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-last-of-type-invalidation.htmlPASSPASSPASSPASSPASSPASS
negated-negated-first-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-negated-last-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-never-matches-negated-first-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-never-matches-negated-last-of-type-when-ancestor-changes.htmlPASSPASSPASSPASSPASSPASS
negated-nth-child-when-ancestor-changes.htmlPASSPASSPASSPASSFAILFAIL
negated-nth-last-child-when-ancestor-changes.htmlPASSPASSPASSPASSFAILFAIL
not-001.html2/22/22/22/22/22/2
not-002.html6/66/66/66/66/66/6
not-pseudo-containing-complex-in-has.html460/460460/460460/460460/460115/460115/460
not-pseudo-containing-sibling-relationship-in-has.html3/33/31/33/32/32/3
nth-child-containing-ancestor.htmlPASSPASSPASSPASSFAILFAIL
nth-child-in-shadow-root.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-attr-largedom.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-attr.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-class-prefix.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-class.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-has.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-id-prefix.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-ids.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-in-ancestor.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-in-is.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-in-shadow-root.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-is.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-pseudo-class.htmlPASSPASSPASSPASSFAILFAIL
nth-child-of-sibling.htmlPASSPASSPASSPASSFAILFAIL
nth-child-when-ancestor-changes.htmlPASSPASSPASSPASSFAILFAIL
nth-child-when-sibling-changes.htmlPASSPASSPASSPASSFAILFAIL
nth-child-whole-subtree.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-containing-ancestor.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-in-shadow-root.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-attr.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-class-prefix.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-class.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-has.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-id-prefix.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-ids.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-in-ancestor.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-in-is.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-in-shadow-root.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-is.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-pseudo-class.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-of-sibling.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-when-ancestor-changes.htmlPASSPASSPASSPASSFAILFAIL
nth-last-child-when-sibling-changes.htmlPASSPASSPASSPASSFAILFAIL
nth-of-namespace-class-invalidation-crash.htmlPASSPASSPASSPASSPASSPASS
open-pseudo-class-in-has.html9/99/98/99/90/90/9
option-disabled-when-ancestor-changes.html4/40/44/42/40/40/4
part-dir.html2/22/22/22/20/20/2
part-lang.html2/20/22/22/20/20/2
part-pseudo.htmlPASSPASSPASSPASSPASSFAIL
placeholder-shown.html4/44/44/44/43/42/4
quirks-mode-stylesheet-dynamic-add-001.htmlPASSPASSPASSPASSPASSFAIL
selectorText-dynamic-001.htmlPASSPASSPASSPASSPASSPASS
sheet-going-away-001.htmlPASSPASSPASSPASSPASSPASS
sheet-going-away-002.htmlPASSPASSPASSPASSPASSPASS
sibling.html7/77/77/77/77/77/7
state-in-has.htmlPASSPASSPASSPASSFAILFAIL
subject-has-invalidation-with-display-none-anchor-element.htmlPASSPASSPASSPASSFAILFAIL
target-pseudo-in-has.htmlPASSPASSPASSPASSFAILFAIL
typed-child-indexed-pseudo-classes-in-has.html102/102102/102102/102102/10254/10254/102
user-action-pseudo-classes-in-has.htmlPASSPASSFAILFAILFAILSKIP
user-valid-user-invalid.htmlPASSPASSPASSPASSFAILSKIP
where.html5/55/55/55/55/55/5