WPT
wpt / css / css-cascade / at-scope-parsing.html
Spec: CSS Cascading ↗
Runs: Chrome 155.0.8043.0 (wpt@b89af32bc, 2026-09-05) | Firefox 157.0a1 (wpt@b89af32bc, 2026-09-05) | Safari 251 preview (wpt@b89af32bc, 2026-09-05) | Ladybird 1.0-f437c (wpt@b89af32bc, 2026-09-06) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 43/43 | 43/43 | 43/43 | 43/43 | 28/43 | 0/43 |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| @scope (.a) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a + .b) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a:hover) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a:hover, #b, div) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (:is(div, span)) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a) to (.b) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a)to (.b) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a) to (.b:hover, #c, div) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope to (.a) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a) to (&) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a) to (& > &) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a) to (> .b) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a) to (+ .b) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope (.a) to (~ .b) is valid | PASS | PASS | PASS | PASS | FAIL | FAIL |
| @scope () is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope to () is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope () to () is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.c <> .d) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a, .c <> .d) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a <> .b, .c) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (div::before) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (div::after) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (slotted(div)) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a) to (div::before) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (> &) to (>>) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope div is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a) unknown (.c) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a) to unknown (.c) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a) 1px (.c) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a) to unknown(c) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope unknown(.a) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope 1px is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope creep is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope ))) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope ( is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope ( {} is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope to is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope } is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a to (.b) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope ( to (.b) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |
| @scope (.a) from (.c) is not valid | PASS | PASS | PASS | PASS | PASS | FAIL |