Click here to download the Blitz Browser!

WPT

wpt / css / selectors / has-basic.html

Spec: Selectors ↗

Runs: Chrome 155.0.8039.0 (wpt@508cc6a62, 2026-09-03) | Firefox 157.0a1 (wpt@508cc6a62, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-56c61 (wpt@8fdda8ce4, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)

View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi

ChromeFirefoxSafariLadybirdServoBlitz
Total18/1818/1818/1818/180/180/18
SubtestChromeFirefoxSafariLadybirdServoBlitz
:has(#a) matches expected elementsPASSPASSPASSPASSFAILFAIL
:has(.ancestor) matches expected elementsPASSPASSPASSPASSFAILFAIL
:has(.target) matches expected elementsPASSPASSPASSPASSFAILFAIL
:has(.descendant) matches expected elementsPASSPASSPASSPASSFAILFAIL
.parent:has(.target) matches expected elementsPASSPASSPASSPASSFAILFAIL
:has(.sibling ~ .target) matches expected elementsPASSPASSPASSPASSFAILFAIL
.parent:has(.sibling ~ .target) matches expected elementsPASSPASSPASSPASSFAILFAIL
:has(:is(.target ~ .sibling .descendant)) matches expected elementsPASSPASSPASSPASSFAILFAIL
.parent:has(:is(.target ~ .sibling .descendant)) matches expected elementsPASSPASSPASSPASSFAILFAIL
.sibling:has(.descendant) ~ .target matches expected elementsPASSPASSPASSPASSFAILFAIL
:has(> .parent) matches expected elementsPASSPASSPASSPASSFAILFAIL
:has(> .target) matches expected elementsPASSPASSPASSPASSFAILFAIL
:has(> .parent, > .target) matches expected elementsPASSPASSPASSPASSFAILFAIL
:has(+ #h) matches expected elementsPASSPASSPASSPASSFAILFAIL
.parent:has(~ #h) matches expected elementsPASSPASSPASSPASSFAILFAIL
.sibling:has(.descendant) matches expected elementPASSPASSPASSPASSFAILFAIL
closest(.ancestor:has(.descendant)) returns expected elementPASSPASSPASSPASSFAILFAIL
:has(.target ~ .sibling .descendant) matches expectedlyPASSPASSPASSPASSFAILFAIL