Click here to download the Blitz Browser!

WPT

wpt / css / selectors / invalidation / is-pseudo-containing-complex-in-has.html

Spec: Selectors ↗

Runs: Chrome 155.0.8041.0 (wpt@2c385f65e, 2026-09-04) | Firefox 157.0a1 (wpt@2c385f65e, 2026-09-04) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a7825 (wpt@4fbf9ef4d, 2026-09-04) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)

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

ChromeFirefoxSafariLadybirdServoBlitz
Total476/476476/476476/476476/476140/476140/476
SubtestChromeFirefoxSafariLadybirdServoBlitz
[ .red:has(#descendant:is(.a_has_scope .b)) ] #has_scope.classList.add('red') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #has_scope.classList.add('red') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .red:has(#descendant:is(.a_has_scope .b)) ] #parent.classList.add('a_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #parent.classList.add('a_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #parent.classList.remove('a_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #parent.classList.remove('a_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .red:has(#descendant:is(.a_has_scope .b)) ] #has_scope.classList.add('a_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #has_scope.classList.add('a_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #has_scope.classList.remove('a_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #has_scope.classList.remove('a_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .red:has(#descendant:is(.a_has_scope .b)) ] #child.classList.add('a_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #child.classList.add('a_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #child.classList.remove('a_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #child.classList.remove('a_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .red:has(#descendant:is(.a_has_scope .b)) ] #has_scope.classList.remove('red') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .red:has(#descendant:is(.a_has_scope .b)) ] #has_scope.classList.remove('red') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #has_scope.classList.add('orangered') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #has_scope.classList.add('orangered') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #parent.classList.add('a_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #parent.classList.add('a_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #parent.classList.remove('a_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #parent.classList.remove('a_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #has_scope.classList.add('a_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #has_scope.classList.add('a_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #has_scope.classList.remove('a_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #has_scope.classList.remove('a_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #child.classList.add('a_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #child.classList.add('a_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #child.classList.remove('a_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #child.classList.remove('a_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #has_scope.classList.remove('orangered') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant ] #has_scope.classList.remove('orangered') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #has_scope.classList.add('darkred') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #has_scope.classList.add('darkred') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #parent.classList.add('a_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #parent.classList.add('a_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #parent.classList.remove('a_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #parent.classList.remove('a_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #has_scope.classList.add('a_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #has_scope.classList.add('a_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #has_scope.classList.remove('a_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #has_scope.classList.remove('a_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #child.classList.add('a_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #child.classList.add('a_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #child.classList.remove('a_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #child.classList.remove('a_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #has_scope.classList.remove('darkred') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next ] #has_scope.classList.remove('darkred') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('pink') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('pink') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #parent.classList.add('a_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #parent.classList.add('a_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #parent.classList.remove('a_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #parent.classList.remove('a_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('a_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('a_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('a_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('a_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #child.classList.add('a_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #child.classList.add('a_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #child.classList.remove('a_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #child.classList.remove('a_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('pink') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('pink') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #has_scope.classList.add('green') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #has_scope.classList.add('green') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #parent_previous.classList.add('c_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #parent_previous.classList.add('c_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #parent_previous) : (insertion) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #parent_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #parent_previous) : (removal) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #parent_previous.classList.remove('c_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #parent_previous.classList.remove('c_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #parent_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #parent_previous) : (insertion) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #parent_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #parent_previous) : (removal) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #previous.classList.add('c_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #previous.classList.add('c_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #previous) : (insertion) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #previous) : (removal) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #previous.classList.remove('c_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #previous.classList.remove('c_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #previous) : (insertion) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #previous) : (removal) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #child_previous.classList.add('c_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #child_previous.classList.add('c_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #child_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #child_previous) : (insertion) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #child_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .invalid before #child_previous) : (removal) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #child_previous.classList.remove('c_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #child_previous.classList.remove('c_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #child_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #child_previous) : (insertion) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #child_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] insert/remove .c_has_scope before #child_previous) : (removal) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #has_scope.classList.remove('green') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) ] #has_scope.classList.remove('green') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #has_scope.classList.add('lightgreen') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #has_scope.classList.add('lightgreen') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #parent_previous.classList.add('c_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #parent_previous.classList.add('c_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #parent_previous) : (insertion) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #parent_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #parent_previous) : (removal) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #parent_previous.classList.remove('c_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #parent_previous.classList.remove('c_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #parent_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #parent_previous) : (insertion) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #parent_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #parent_previous) : (removal) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #previous.classList.add('c_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #previous.classList.add('c_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #previous) : (insertion) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #previous) : (removal) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #previous.classList.remove('c_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #previous.classList.remove('c_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #previous) : (insertion) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #previous) : (removal) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #child_previous.classList.add('c_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #child_previous.classList.add('c_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #child_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #child_previous) : (insertion) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #child_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .invalid before #child_previous) : (removal) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #child_previous.classList.remove('c_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #child_previous.classList.remove('c_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #child_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #child_previous) : (insertion) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #child_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] insert/remove .c_descendant before #child_previous) : (removal) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #has_scope.classList.remove('lightgreen') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant ] #has_scope.classList.remove('lightgreen') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #has_scope.classList.add('darkgreen') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #has_scope.classList.add('darkgreen') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #parent_previous.classList.add('c_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #parent_previous.classList.add('c_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #parent_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #parent_previous.classList.remove('c_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #parent_previous.classList.remove('c_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #parent_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #parent_previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #parent_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #parent_previous) : (removal) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #previous.classList.add('c_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #previous.classList.add('c_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #previous) : (removal) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #previous.classList.remove('c_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #previous.classList.remove('c_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #previous) : (removal) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #child_previous.classList.add('c_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #child_previous.classList.add('c_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #child_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #child_previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #child_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .invalid before #child_previous) : (removal) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #child_previous.classList.remove('c_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #child_previous.classList.remove('c_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #child_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #child_previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #child_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] insert/remove .c_indirect_next before #child_previous) : (removal) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #has_scope.classList.remove('darkgreen') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next ] #has_scope.classList.remove('darkgreen') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('yellowgreen') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('yellowgreen') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #parent_previous.classList.add('c_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #parent_previous.classList.add('c_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #parent_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #parent_previous.classList.remove('c_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #parent_previous.classList.remove('c_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #parent_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #parent_previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #parent_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #parent_previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #previous.classList.add('c_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #previous.classList.add('c_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #previous.classList.remove('c_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #previous.classList.remove('c_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #child_previous.classList.add('c_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #child_previous.classList.add('c_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #child_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #child_previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #child_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #child_previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #child_previous.classList.remove('c_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #child_previous.classList.remove('c_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #child_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #child_previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #child_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] insert/remove .c_indirect_next_child before #child_previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('yellowgreen') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('yellowgreen') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #has_scope.classList.add('blue') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #has_scope.classList.add('blue') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #previous.classList.add('f_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #previous.classList.add('f_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .invalid before #previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .invalid before #previous) : (insertion) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .invalid before #previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .invalid before #previous) : (removal) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #previous.classList.remove('f_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #previous.classList.remove('f_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .f_has_scope before #previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .f_has_scope before #previous) : (insertion) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .f_has_scope before #previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .f_has_scope before #previous) : (removal) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #has_scope.classList.add('f_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #has_scope.classList.add('f_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #has_scope.classList.remove('f_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #has_scope.classList.remove('f_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #direct_next.classList.add('f_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #direct_next.classList.add('f_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .invalid before #direct_next) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .invalid before #direct_next) : (insertion) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .invalid before #direct_next) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .invalid before #direct_next) : (removal) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #direct_next.classList.remove('f_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #direct_next.classList.remove('f_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .f_has_scope before #direct_next) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .f_has_scope before #direct_next) : (insertion) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .f_has_scope before #direct_next) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] insert/remove .f_has_scope before #direct_next) : (removal) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #has_scope.classList.remove('blue') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) ] #has_scope.classList.remove('blue') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #has_scope.classList.add('skyblue') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #has_scope.classList.add('skyblue') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #previous.classList.add('f_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #previous.classList.add('f_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .invalid before #previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .invalid before #previous) : (insertion) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .invalid before #previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .invalid before #previous) : (removal) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #previous.classList.remove('f_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #previous.classList.remove('f_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .f_descendant before #previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .f_descendant before #previous) : (insertion) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .f_descendant before #previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .f_descendant before #previous) : (removal) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #has_scope.classList.add('f_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #has_scope.classList.add('f_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #has_scope.classList.remove('f_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #has_scope.classList.remove('f_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #direct_next.classList.add('f_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #direct_next.classList.add('f_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .invalid before #direct_next) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .invalid before #direct_next) : (insertion) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .invalid before #direct_next) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .invalid before #direct_next) : (removal) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #direct_next.classList.remove('f_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #direct_next.classList.remove('f_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .f_descendant before #direct_next) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .f_descendant before #direct_next) : (insertion) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .f_descendant before #direct_next) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] insert/remove .f_descendant before #direct_next) : (removal) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #has_scope.classList.remove('skyblue') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant ] #has_scope.classList.remove('skyblue') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #has_scope.classList.add('lightblue') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #has_scope.classList.add('lightblue') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #previous.classList.add('f_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #previous.classList.add('f_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .invalid before #previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .invalid before #previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .invalid before #previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .invalid before #previous) : (removal) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #previous.classList.remove('f_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #previous.classList.remove('f_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .f_indirect_next before #previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .f_indirect_next before #previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .f_indirect_next before #previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .f_indirect_next before #previous) : (removal) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #has_scope.classList.add('f_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #has_scope.classList.add('f_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #has_scope.classList.remove('f_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #has_scope.classList.remove('f_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #direct_next.classList.add('f_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #direct_next.classList.add('f_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .invalid before #direct_next) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .invalid before #direct_next) : (insertion) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .invalid before #direct_next) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .invalid before #direct_next) : (removal) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #direct_next.classList.remove('f_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #direct_next.classList.remove('f_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .f_indirect_next before #direct_next) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .f_indirect_next before #direct_next) : (insertion) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .f_indirect_next before #direct_next) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] insert/remove .f_indirect_next before #direct_next) : (removal) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #has_scope.classList.remove('lightblue') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next ] #has_scope.classList.remove('lightblue') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('darkblue') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('darkblue') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #previous.classList.add('f_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #previous.classList.add('f_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #previous.classList.remove('f_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #previous.classList.remove('f_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .f_indirect_next_child before #previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .f_indirect_next_child before #previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .f_indirect_next_child before #previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .f_indirect_next_child before #previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('f_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('f_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('f_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('f_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #direct_next.classList.add('f_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #direct_next.classList.add('f_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #direct_next) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #direct_next) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #direct_next) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #direct_next) : (removal) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #direct_next.classList.remove('f_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #direct_next.classList.remove('f_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .f_indirect_next_child before #direct_next) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .f_indirect_next_child before #direct_next) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .f_indirect_next_child before #direct_next) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] insert/remove .f_indirect_next_child before #direct_next) : (removal) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('darkblue') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('darkblue') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) ] #has_scope.classList.add('yellow') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) ] #has_scope.classList.add('yellow') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) ] #parent.classList.add('h_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) ] #parent.classList.add('h_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) ] #parent.classList.remove('h_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) ] #parent.classList.remove('h_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) ] #has_scope.classList.remove('yellow') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) ] #has_scope.classList.remove('yellow') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant ] #has_scope.classList.add('ivory') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant ] #has_scope.classList.add('ivory') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant ] #parent.classList.add('h_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant ] #parent.classList.add('h_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant ] #parent.classList.remove('h_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant ] #parent.classList.remove('h_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant ] #has_scope.classList.remove('ivory') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant ] #has_scope.classList.remove('ivory') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next ] #has_scope.classList.add('greenyellow') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next ] #has_scope.classList.add('greenyellow') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next ] #parent.classList.add('h_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next ] #parent.classList.add('h_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next ] #parent.classList.remove('h_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next ] #parent.classList.remove('h_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next ] #has_scope.classList.remove('greenyellow') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next ] #has_scope.classList.remove('greenyellow') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('khaki') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('khaki') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child ] #parent.classList.add('h_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child ] #parent.classList.add('h_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child ] #parent.classList.remove('h_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child ] #parent.classList.remove('h_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('khaki') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('khaki') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] #has_scope.classList.add('purple') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] #has_scope.classList.add('purple') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] #parent_previous.classList.add('j_has_scope') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] #parent_previous.classList.add('j_has_scope') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] insert/remove .invalid before #parent_previous) : (insertion) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] insert/remove .invalid before #parent_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] insert/remove .invalid before #parent_previous) : (removal) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] #parent_previous.classList.remove('j_has_scope') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] #parent_previous.classList.remove('j_has_scope') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] insert/remove .j_has_scope before #parent_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] insert/remove .j_has_scope before #parent_previous) : (insertion) check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] insert/remove .j_has_scope before #parent_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] insert/remove .j_has_scope before #parent_previous) : (removal) check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] #has_scope.classList.remove('purple') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) ] #has_scope.classList.remove('purple') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] #has_scope.classList.add('violet') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] #has_scope.classList.add('violet') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] #parent_previous.classList.add('j_descendant') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] #parent_previous.classList.add('j_descendant') : check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] insert/remove .invalid before #parent_previous) : (insertion) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] insert/remove .invalid before #parent_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] insert/remove .invalid before #parent_previous) : (removal) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] #parent_previous.classList.remove('j_descendant') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] #parent_previous.classList.remove('j_descendant') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] insert/remove .j_descendant before #parent_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] insert/remove .j_descendant before #parent_previous) : (insertion) check #descendant colorPASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] insert/remove .j_descendant before #parent_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] insert/remove .j_descendant before #parent_previous) : (removal) check #descendant colorPASSPASSPASSPASSPASSPASS
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] #has_scope.classList.remove('violet') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant ] #has_scope.classList.remove('violet') : check #descendant colorPASSPASSPASSPASSPASSPASS
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] #has_scope.classList.add('orchid') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] #has_scope.classList.add('orchid') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] #parent_previous.classList.add('j_indirect_next') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] #parent_previous.classList.add('j_indirect_next') : check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] insert/remove .invalid before #parent_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] #parent_previous.classList.remove('j_indirect_next') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] #parent_previous.classList.remove('j_indirect_next') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] insert/remove .j_indirect_next before #parent_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] insert/remove .j_indirect_next before #parent_previous) : (insertion) check #indirect_next colorPASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] insert/remove .j_indirect_next before #parent_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] insert/remove .j_indirect_next before #parent_previous) : (removal) check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] #has_scope.classList.remove('orchid') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next ] #has_scope.classList.remove('orchid') : check #indirect_next colorPASSPASSPASSPASSPASSPASS
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('plum') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.add('plum') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] #parent_previous.classList.add('j_indirect_next_child') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] #parent_previous.classList.add('j_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #parent_previous) : (removal) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] #parent_previous.classList.remove('j_indirect_next_child') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] #parent_previous.classList.remove('j_indirect_next_child') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] insert/remove .j_indirect_next_child before #parent_previous) : (insertion) check matches (true)PASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] insert/remove .j_indirect_next_child before #parent_previous) : (insertion) check #indirect_next_child colorPASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] insert/remove .j_indirect_next_child before #parent_previous) : (removal) check matches (false)PASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] insert/remove .j_indirect_next_child before #parent_previous) : (removal) check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('plum') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child ] #has_scope.classList.remove('plum') : check #indirect_next_child colorPASSPASSPASSPASSPASSPASS
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('orange') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('orange') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.add('m') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.add('m') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.remove('m') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.remove('m') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.add('n') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.add('n') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.remove('n') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #parent.classList.remove('n') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('m') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('m') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('m') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('m') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('n') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.add('n') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('n') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('n') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.add('m') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.add('m') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.remove('m') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.remove('m') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.add('n') : check matches (true)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.add('n') : check #has_scope colorPASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.remove('n') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #child.classList.remove('n') : check #has_scope colorPASSPASSPASSPASSPASSPASS
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('orange') : check matches (false)PASSPASSPASSPASSFAILFAIL
[ .orange:has(#descendant:is(:is(.m, .n) .o)) ] #has_scope.classList.remove('orange') : check #has_scope colorPASSPASSPASSPASSPASSPASS