Selectors API Level 1 Implementation Report

Baseline Tests: HTML with CSS Level 2.1 Selectors

Last Updated: 2012-10-24

These results apply to the Baseline Tests: HTML with CSS Level 2.1 Selectors

Test Name Chrome 22.0 Firefox 16.0.1 Internet Explorer 9.0 Opera 12.02 Safari 6.0.1
Pass Rate: 1152/1186 (97.1%) 1174/1186 (99.0%) 1164/1186 (98.1%) 1178/1186 (99.3%) 1168/1186 (98.5%)
Document supports querySelectorPassPassPassPassPass
Document supports querySelectorAllPassPassPassPassPass
Document.querySelectorAll returns NodeList instancePassPassPassPassPass
Detached Element supports querySelectorPassPassPassPassPass
Detached Element supports querySelectorAllPassPassPassPassPass
Detached Element.querySelectorAll returns NodeList instancePassPassPassPassPass
Fragment supports querySelectorPassPassPassPassPass
Fragment supports querySelectorAllPassPassPassPassPass
Fragment.querySelectorAll returns NodeList instancePassPassPassPassPass
In-document Element supports querySelectorPassPassPassPassPass
In-document Element supports querySelectorAllPassPassPassPassPass
In-document Element.querySelectorAll returns NodeList instancePassPassPassPassPass
Document.querySelectorAll nullPassPassPassPassPass
Document.querySelectorAll undefinedPassPassPassPassPass
Document.querySelectorAll no parameterPassFailPassFailPass
Document.querySelector nullPassPassPassPassPass
Document.querySelector undefinedPassPassPassPassPass
Document.querySelector no parameterPassFailPassFailPass
Document.querySelectorAll tree orderPassPassPassPassPass
Detached Element.querySelectorAll nullPassPassPassPassPass
Detached Element.querySelectorAll undefinedPassPassPassPassPass
Detached Element.querySelectorAll no parameterPassFailPassFailPass
Detached Element.querySelector nullPassPassPassPassPass
Detached Element.querySelector undefinedPassPassPassPassPass
Detached Element.querySelector no parameterPassFailPassFailPass
Detached Element.querySelectorAll tree orderPassPassPassPassPass
Fragment.querySelectorAll nullPassPassPassPassPass
Fragment.querySelectorAll undefinedPassPassPassPassPass
Fragment.querySelectorAll no parameterPassFailPassFailPass
Fragment.querySelector nullPassPassPassPassPass
Fragment.querySelector undefinedPassPassPassPassPass
Fragment.querySelector no parameterPassFailPassFailPass
Fragment.querySelectorAll tree orderPassPassPassPassPass
In-document Element.querySelectorAll nullPassPassPassPassPass
In-document Element.querySelectorAll undefinedPassPassPassPassPass
In-document Element.querySelectorAll no parameterPassFailPassFailPass
In-document Element.querySelector nullPassPassPassPassPass
In-document Element.querySelector undefinedPassPassPassPassPass
In-document Element.querySelector no parameterPassFailPassFailPass
In-document Element.querySelectorAll tree orderPassPassPassPassPass
Document: static NodeListPassPassPassPassPass
Document: new NodeListPassPassPassPassPass
Detached Element: static NodeListPassPassPassPassPass
Detached Element: new NodeListPassPassPassPassPass
Fragment: static NodeListPassPassPassPassPass
Fragment: new NodeListPassPassPassPassPass
In-document Element: static NodeListPassPassPassPassPass
In-document Element: new NodeListPassPassPassPassPass
Document.querySelector: Empty String:PassPassPassPassPass
Document.querySelectorAll: Empty String:PassPassPassPassPass
Document.querySelector: Invalid character: [PassPassPassPassPass
Document.querySelectorAll: Invalid character: [PassPassPassPassPass
Document.querySelector: Invalid character: ]PassPassPassPassPass
Document.querySelectorAll: Invalid character: ]PassPassPassPassPass
Document.querySelector: Invalid character: (PassPassPassPassPass
Document.querySelectorAll: Invalid character: (PassPassPassPassPass
Document.querySelector: Invalid character: )PassPassPassPassPass
Document.querySelectorAll: Invalid character: )PassPassPassPassPass
Document.querySelector: Invalid character: {PassPassPassPassPass
Document.querySelectorAll: Invalid character: {PassPassPassPassPass
Document.querySelector: Invalid character: }PassPassPassPassPass
Document.querySelectorAll: Invalid character: }PassPassPassPassPass
Document.querySelector: Invalid character: <PassPassPassPassPass
Document.querySelectorAll: Invalid character: <PassPassPassPassPass
Document.querySelector: Invalid character: >PassPassPassPassPass
Document.querySelectorAll: Invalid character: >PassPassPassPassPass
Document.querySelector: Invalid ID: #PassPassPassPassPass
Document.querySelectorAll: Invalid ID: #PassPassPassPassPass
Document.querySelector: Invalid group of selectors: div,PassPassPassPassPass
Document.querySelectorAll: Invalid group of selectors: div,PassPassPassPassPass
Document.querySelector: Invalid class: .PassPassPassPassPass
Document.querySelectorAll: Invalid class: .PassPassPassPassPass
Document.querySelector: Invalid class: .5cmPassPassPassPassPass
Document.querySelectorAll: Invalid class: .5cmPassPassPassPassPass
Document.querySelector: Invalid class: ..testPassPassPassPassPass
Document.querySelectorAll: Invalid class: ..testPassPassPassPassPass
Document.querySelector: Invalid class: .foo..quuxPassPassPassPassPass
Document.querySelectorAll: Invalid class: .foo..quuxPassPassPassPassPass
Document.querySelector: Invalid class: .bar.PassPassPassPassPass
Document.querySelectorAll: Invalid class: .bar.PassPassPassPassPass
Document.querySelector: Invalid combinator: div & address, pPassPassPassPassPass
Document.querySelectorAll: Invalid combinator: div & address, pPassPassPassPassPass
Document.querySelector: Invalid combinator: div >> address, pPassPassPassPassPass
Document.querySelectorAll: Invalid combinator: div >> address, pPassPassPassPassPass
Document.querySelector: Invalid combinator: div ++ address, pPassPassPassPassPass
Document.querySelectorAll: Invalid combinator: div ++ address, pPassPassPassPassPass
Document.querySelector: Invalid combinator: div ~~ address, pPassPassPassPassPass
Document.querySelectorAll: Invalid combinator: div ~~ address, pPassPassPassPassPass
Document.querySelector: Invalid [att=value] selector: [*=test]PassPassPassPassPass
Document.querySelectorAll: Invalid [att=value] selector: [*=test]PassPassPassPassPass
Document.querySelector: Invalid [att=value] selector: [*|*=test]PassPassPassPassPass
Document.querySelectorAll: Invalid [att=value] selector: [*|*=test]PassPassPassPassPass
Document.querySelector: Invalid [att=value] selector: [class= space unquoted ]PassPassPassPassPass
Document.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]PassPassPassPassPass
Document.querySelector: Unknown pseudo-class: div:examplePassPassPassPassPass
Document.querySelectorAll: Unknown pseudo-class: div:examplePassPassPassPassPass
Document.querySelector: Unknown pseudo-class: :examplePassPassPassPassPass
Document.querySelectorAll: Unknown pseudo-class: :examplePassPassPassPassPass
Document.querySelector: Unknown pseudo-element: div::examplePassPassPassPassPass
Document.querySelectorAll: Unknown pseudo-element: div::examplePassPassPassPassPass
Document.querySelector: Unknown pseudo-element: ::examplePassPassPassPassPass
Document.querySelectorAll: Unknown pseudo-element: ::examplePassPassPassPassPass
Document.querySelector: Invalid pseudo-element: :::beforePassPassPassPassPass
Document.querySelectorAll: Invalid pseudo-element: :::beforePassPassPassPassPass
Document.querySelector: Undeclared namespace: ns|divFailPassFailPassFail
Document.querySelectorAll: Undeclared namespace: ns|divFailPassFailPassFail
Document.querySelector: Undeclared namespace: :not(ns|div)FailPassFailPassFail
Document.querySelectorAll: Undeclared namespace: :not(ns|div)FailPassFailPassFail
Document.querySelector: Invalid namespace: ^|divPassPassPassPassPass
Document.querySelectorAll: Invalid namespace: ^|divPassPassPassPassPass
Document.querySelector: Invalid namespace: $|divPassPassPassPassPass
Document.querySelectorAll: Invalid namespace: $|divPassPassPassPassPass
Detached Element.querySelector: Empty String:PassPassPassPassPass
Detached Element.querySelectorAll: Empty String:PassPassPassPassPass
Detached Element.querySelector: Invalid character: [PassPassPassPassPass
Detached Element.querySelectorAll: Invalid character: [PassPassPassPassPass
Detached Element.querySelector: Invalid character: ]PassPassPassPassPass
Detached Element.querySelectorAll: Invalid character: ]PassPassPassPassPass
Detached Element.querySelector: Invalid character: (PassPassPassPassPass
Detached Element.querySelectorAll: Invalid character: (PassPassPassPassPass
Detached Element.querySelector: Invalid character: )PassPassPassPassPass
Detached Element.querySelectorAll: Invalid character: )PassPassPassPassPass
Detached Element.querySelector: Invalid character: {PassPassPassPassPass
Detached Element.querySelectorAll: Invalid character: {PassPassPassPassPass
Detached Element.querySelector: Invalid character: }PassPassPassPassPass
Detached Element.querySelectorAll: Invalid character: }PassPassPassPassPass
Detached Element.querySelector: Invalid character: <PassPassPassPassPass
Detached Element.querySelectorAll: Invalid character: <PassPassPassPassPass
Detached Element.querySelector: Invalid character: >PassPassPassPassPass
Detached Element.querySelectorAll: Invalid character: >PassPassPassPassPass
Detached Element.querySelector: Invalid ID: #PassPassPassPassPass
Detached Element.querySelectorAll: Invalid ID: #PassPassPassPassPass
Detached Element.querySelector: Invalid group of selectors: div,PassPassPassPassPass
Detached Element.querySelectorAll: Invalid group of selectors: div,PassPassPassPassPass
Detached Element.querySelector: Invalid class: .PassPassPassPassPass
Detached Element.querySelectorAll: Invalid class: .PassPassPassPassPass
Detached Element.querySelector: Invalid class: .5cmPassPassPassPassPass
Detached Element.querySelectorAll: Invalid class: .5cmPassPassPassPassPass
Detached Element.querySelector: Invalid class: ..testPassPassPassPassPass
Detached Element.querySelectorAll: Invalid class: ..testPassPassPassPassPass
Detached Element.querySelector: Invalid class: .foo..quuxPassPassPassPassPass
Detached Element.querySelectorAll: Invalid class: .foo..quuxPassPassPassPassPass
Detached Element.querySelector: Invalid class: .bar.PassPassPassPassPass
Detached Element.querySelectorAll: Invalid class: .bar.PassPassPassPassPass
Detached Element.querySelector: Invalid combinator: div & address, pPassPassPassPassPass
Detached Element.querySelectorAll: Invalid combinator: div & address, pPassPassPassPassPass
Detached Element.querySelector: Invalid combinator: div >> address, pPassPassPassPassPass
Detached Element.querySelectorAll: Invalid combinator: div >> address, pPassPassPassPassPass
Detached Element.querySelector: Invalid combinator: div ++ address, pPassPassPassPassPass
Detached Element.querySelectorAll: Invalid combinator: div ++ address, pPassPassPassPassPass
Detached Element.querySelector: Invalid combinator: div ~~ address, pPassPassPassPassPass
Detached Element.querySelectorAll: Invalid combinator: div ~~ address, pPassPassPassPassPass
Detached Element.querySelector: Invalid [att=value] selector: [*=test]PassPassPassPassPass
Detached Element.querySelectorAll: Invalid [att=value] selector: [*=test]PassPassPassPassPass
Detached Element.querySelector: Invalid [att=value] selector: [*|*=test]PassPassPassPassPass
Detached Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]PassPassPassPassPass
Detached Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]PassPassPassPassPass
Detached Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]PassPassPassPassPass
Detached Element.querySelector: Unknown pseudo-class: div:examplePassPassPassPassPass
Detached Element.querySelectorAll: Unknown pseudo-class: div:examplePassPassPassPassPass
Detached Element.querySelector: Unknown pseudo-class: :examplePassPassPassPassPass
Detached Element.querySelectorAll: Unknown pseudo-class: :examplePassPassPassPassPass
Detached Element.querySelector: Unknown pseudo-element: div::examplePassPassPassPassPass
Detached Element.querySelectorAll: Unknown pseudo-element: div::examplePassPassPassPassPass
Detached Element.querySelector: Unknown pseudo-element: ::examplePassPassPassPassPass
Detached Element.querySelectorAll: Unknown pseudo-element: ::examplePassPassPassPassPass
Detached Element.querySelector: Invalid pseudo-element: :::beforePassPassPassPassPass
Detached Element.querySelectorAll: Invalid pseudo-element: :::beforePassPassPassPassPass
Detached Element.querySelector: Undeclared namespace: ns|divFailPassFailPassFail
Detached Element.querySelectorAll: Undeclared namespace: ns|divFailPassFailPassFail
Detached Element.querySelector: Undeclared namespace: :not(ns|div)FailPassFailPassFail
Detached Element.querySelectorAll: Undeclared namespace: :not(ns|div)FailPassFailPassFail
Detached Element.querySelector: Invalid namespace: ^|divPassPassPassPassPass
Detached Element.querySelectorAll: Invalid namespace: ^|divPassPassPassPassPass
Detached Element.querySelector: Invalid namespace: $|divPassPassPassPassPass
Detached Element.querySelectorAll: Invalid namespace: $|divPassPassPassPassPass
Fragment.querySelector: Empty String:PassPassPassPassPass
Fragment.querySelectorAll: Empty String:PassPassPassPassPass
Fragment.querySelector: Invalid character: [PassPassPassPassPass
Fragment.querySelectorAll: Invalid character: [PassPassPassPassPass
Fragment.querySelector: Invalid character: ]PassPassPassPassPass
Fragment.querySelectorAll: Invalid character: ]PassPassPassPassPass
Fragment.querySelector: Invalid character: (PassPassPassPassPass
Fragment.querySelectorAll: Invalid character: (PassPassPassPassPass
Fragment.querySelector: Invalid character: )PassPassPassPassPass
Fragment.querySelectorAll: Invalid character: )PassPassPassPassPass
Fragment.querySelector: Invalid character: {PassPassPassPassPass
Fragment.querySelectorAll: Invalid character: {PassPassPassPassPass
Fragment.querySelector: Invalid character: }PassPassPassPassPass
Fragment.querySelectorAll: Invalid character: }PassPassPassPassPass
Fragment.querySelector: Invalid character: <PassPassPassPassPass
Fragment.querySelectorAll: Invalid character: <PassPassPassPassPass
Fragment.querySelector: Invalid character: >PassPassPassPassPass
Fragment.querySelectorAll: Invalid character: >PassPassPassPassPass
Fragment.querySelector: Invalid ID: #PassPassPassPassPass
Fragment.querySelectorAll: Invalid ID: #PassPassPassPassPass
Fragment.querySelector: Invalid group of selectors: div,PassPassPassPassPass
Fragment.querySelectorAll: Invalid group of selectors: div,PassPassPassPassPass
Fragment.querySelector: Invalid class: .PassPassPassPassPass
Fragment.querySelectorAll: Invalid class: .PassPassPassPassPass
Fragment.querySelector: Invalid class: .5cmPassPassPassPassPass
Fragment.querySelectorAll: Invalid class: .5cmPassPassPassPassPass
Fragment.querySelector: Invalid class: ..testPassPassPassPassPass
Fragment.querySelectorAll: Invalid class: ..testPassPassPassPassPass
Fragment.querySelector: Invalid class: .foo..quuxPassPassPassPassPass
Fragment.querySelectorAll: Invalid class: .foo..quuxPassPassPassPassPass
Fragment.querySelector: Invalid class: .bar.PassPassPassPassPass
Fragment.querySelectorAll: Invalid class: .bar.PassPassPassPassPass
Fragment.querySelector: Invalid combinator: div & address, pPassPassPassPassPass
Fragment.querySelectorAll: Invalid combinator: div & address, pPassPassPassPassPass
Fragment.querySelector: Invalid combinator: div >> address, pPassPassPassPassPass
Fragment.querySelectorAll: Invalid combinator: div >> address, pPassPassPassPassPass
Fragment.querySelector: Invalid combinator: div ++ address, pPassPassPassPassPass
Fragment.querySelectorAll: Invalid combinator: div ++ address, pPassPassPassPassPass
Fragment.querySelector: Invalid combinator: div ~~ address, pPassPassPassPassPass
Fragment.querySelectorAll: Invalid combinator: div ~~ address, pPassPassPassPassPass
Fragment.querySelector: Invalid [att=value] selector: [*=test]PassPassPassPassPass
Fragment.querySelectorAll: Invalid [att=value] selector: [*=test]PassPassPassPassPass
Fragment.querySelector: Invalid [att=value] selector: [*|*=test]PassPassPassPassPass
Fragment.querySelectorAll: Invalid [att=value] selector: [*|*=test]PassPassPassPassPass
Fragment.querySelector: Invalid [att=value] selector: [class= space unquoted ]PassPassPassPassPass
Fragment.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]PassPassPassPassPass
Fragment.querySelector: Unknown pseudo-class: div:examplePassPassPassPassPass
Fragment.querySelectorAll: Unknown pseudo-class: div:examplePassPassPassPassPass
Fragment.querySelector: Unknown pseudo-class: :examplePassPassPassPassPass
Fragment.querySelectorAll: Unknown pseudo-class: :examplePassPassPassPassPass
Fragment.querySelector: Unknown pseudo-element: div::examplePassPassPassPassPass
Fragment.querySelectorAll: Unknown pseudo-element: div::examplePassPassPassPassPass
Fragment.querySelector: Unknown pseudo-element: ::examplePassPassPassPassPass
Fragment.querySelectorAll: Unknown pseudo-element: ::examplePassPassPassPassPass
Fragment.querySelector: Invalid pseudo-element: :::beforePassPassPassPassPass
Fragment.querySelectorAll: Invalid pseudo-element: :::beforePassPassPassPassPass
Fragment.querySelector: Undeclared namespace: ns|divFailPassFailPassFail
Fragment.querySelectorAll: Undeclared namespace: ns|divFailPassFailPassFail
Fragment.querySelector: Undeclared namespace: :not(ns|div)FailPassFailPassFail
Fragment.querySelectorAll: Undeclared namespace: :not(ns|div)FailPassFailPassFail
Fragment.querySelector: Invalid namespace: ^|divPassPassPassPassPass
Fragment.querySelectorAll: Invalid namespace: ^|divPassPassPassPassPass
Fragment.querySelector: Invalid namespace: $|divPassPassPassPassPass
Fragment.querySelectorAll: Invalid namespace: $|divPassPassPassPassPass
In-document Element.querySelector: Empty String:PassPassPassPassPass
In-document Element.querySelectorAll: Empty String:PassPassPassPassPass
In-document Element.querySelector: Invalid character: [PassPassPassPassPass
In-document Element.querySelectorAll: Invalid character: [PassPassPassPassPass
In-document Element.querySelector: Invalid character: ]PassPassPassPassPass
In-document Element.querySelectorAll: Invalid character: ]PassPassPassPassPass
In-document Element.querySelector: Invalid character: (PassPassPassPassPass
In-document Element.querySelectorAll: Invalid character: (PassPassPassPassPass
In-document Element.querySelector: Invalid character: )PassPassPassPassPass
In-document Element.querySelectorAll: Invalid character: )PassPassPassPassPass
In-document Element.querySelector: Invalid character: {PassPassPassPassPass
In-document Element.querySelectorAll: Invalid character: {PassPassPassPassPass
In-document Element.querySelector: Invalid character: }PassPassPassPassPass
In-document Element.querySelectorAll: Invalid character: }PassPassPassPassPass
In-document Element.querySelector: Invalid character: <PassPassPassPassPass
In-document Element.querySelectorAll: Invalid character: <PassPassPassPassPass
In-document Element.querySelector: Invalid character: >PassPassPassPassPass
In-document Element.querySelectorAll: Invalid character: >PassPassPassPassPass
In-document Element.querySelector: Invalid ID: #PassPassPassPassPass
In-document Element.querySelectorAll: Invalid ID: #PassPassPassPassPass
In-document Element.querySelector: Invalid group of selectors: div,PassPassPassPassPass
In-document Element.querySelectorAll: Invalid group of selectors: div,PassPassPassPassPass
In-document Element.querySelector: Invalid class: .PassPassPassPassPass
In-document Element.querySelectorAll: Invalid class: .PassPassPassPassPass
In-document Element.querySelector: Invalid class: .5cmPassPassPassPassPass
In-document Element.querySelectorAll: Invalid class: .5cmPassPassPassPassPass
In-document Element.querySelector: Invalid class: ..testPassPassPassPassPass
In-document Element.querySelectorAll: Invalid class: ..testPassPassPassPassPass
In-document Element.querySelector: Invalid class: .foo..quuxPassPassPassPassPass
In-document Element.querySelectorAll: Invalid class: .foo..quuxPassPassPassPassPass
In-document Element.querySelector: Invalid class: .bar.PassPassPassPassPass
In-document Element.querySelectorAll: Invalid class: .bar.PassPassPassPassPass
In-document Element.querySelector: Invalid combinator: div & address, pPassPassPassPassPass
In-document Element.querySelectorAll: Invalid combinator: div & address, pPassPassPassPassPass
In-document Element.querySelector: Invalid combinator: div >> address, pPassPassPassPassPass
In-document Element.querySelectorAll: Invalid combinator: div >> address, pPassPassPassPassPass
In-document Element.querySelector: Invalid combinator: div ++ address, pPassPassPassPassPass
In-document Element.querySelectorAll: Invalid combinator: div ++ address, pPassPassPassPassPass
In-document Element.querySelector: Invalid combinator: div ~~ address, pPassPassPassPassPass
In-document Element.querySelectorAll: Invalid combinator: div ~~ address, pPassPassPassPassPass
In-document Element.querySelector: Invalid [att=value] selector: [*=test]PassPassPassPassPass
In-document Element.querySelectorAll: Invalid [att=value] selector: [*=test]PassPassPassPassPass
In-document Element.querySelector: Invalid [att=value] selector: [*|*=test]PassPassPassPassPass
In-document Element.querySelectorAll: Invalid [att=value] selector: [*|*=test]PassPassPassPassPass
In-document Element.querySelector: Invalid [att=value] selector: [class= space unquoted ]PassPassPassPassPass
In-document Element.querySelectorAll: Invalid [att=value] selector: [class= space unquoted ]PassPassPassPassPass
In-document Element.querySelector: Unknown pseudo-class: div:examplePassPassPassPassPass
In-document Element.querySelectorAll: Unknown pseudo-class: div:examplePassPassPassPassPass
In-document Element.querySelector: Unknown pseudo-class: :examplePassPassPassPassPass
In-document Element.querySelectorAll: Unknown pseudo-class: :examplePassPassPassPassPass
In-document Element.querySelector: Unknown pseudo-element: div::examplePassPassPassPassPass
In-document Element.querySelectorAll: Unknown pseudo-element: div::examplePassPassPassPassPass
In-document Element.querySelector: Unknown pseudo-element: ::examplePassPassPassPassPass
In-document Element.querySelectorAll: Unknown pseudo-element: ::examplePassPassPassPassPass
In-document Element.querySelector: Invalid pseudo-element: :::beforePassPassPassPassPass
In-document Element.querySelectorAll: Invalid pseudo-element: :::beforePassPassPassPassPass
In-document Element.querySelector: Undeclared namespace: ns|divFailPassFailPassFail
In-document Element.querySelectorAll: Undeclared namespace: ns|divFailPassFailPassFail
In-document Element.querySelector: Undeclared namespace: :not(ns|div)FailPassFailPassFail
In-document Element.querySelectorAll: Undeclared namespace: :not(ns|div)FailPassFailPassFail
In-document Element.querySelector: Invalid namespace: ^|divPassPassPassPassPass
In-document Element.querySelectorAll: Invalid namespace: ^|divPassPassPassPassPass
In-document Element.querySelector: Invalid namespace: $|divPassPassPassPassPass
In-document Element.querySelectorAll: Invalid namespace: $|divPassPassPassPassPass
Document.querySelectorAll: Type selector, matching html element: htmlPassPassPassPassPass
Document.querySelector: Type selector, matching html element: htmlPassPassPassPassPass
Document.querySelectorAll: Type selector, matching body element: bodyPassPassPassPassPass
Document.querySelector: Type selector, matching body element: bodyPassPassPassPassPass
Document.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*PassPassPassPassPass
Document.querySelector: Universal selector, matching all children of element with specified ID: #universal>*PassPassPassPassPass
Document.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*PassPassPassPassPass
Document.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*PassPassPassPassPass
Document.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*PassPassPassPassPass
Document.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*PassPassPassPassPass
Document.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *PassPassPassPassPass
Document.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *PassPassPassPassPass
Document.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]PassPassPassPassPass
Document.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]PassPassPassPassPass
Document.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]PassPassPassPassPass
Document.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]PassPassPassPassPass
Document.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [TiTlE]PassPassPassPassPass
Document.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [TiTlE]PassPassPassPassPass
Document.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]PassPassPassPassPass
Document.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]PassPassPassPassPass
Document.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]PassPassPassPassPass
Document.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]PassPassPassPassPass
Document.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]PassPassPassPassPass
Document.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]PassPassPassPassPass
Document.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]PassPassPassPassPass
Document.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]PassPassPassPassPass
Document.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]PassPassPassPassPass
Document.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]PassPassPassPassPass
Document.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]PassPassPassPassPass
Document.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]PassPassPassPassPass
Document.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]PassPassPassPassPass
Document.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]PassPassPassPassPass
Document.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]PassPassPassPassPass
Document.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]PassPassPassPassPass
Document.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]PassPassPassPassPass
Document.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]PassPassPassPassPass
Document.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]PassPassPassPassPass
Document.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]PassPassPassPassPass
Document.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]PassPassPassPassPass
Document.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]PassPassPassPassPass
Document.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]PassPassPassPassPass
Document.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]PassPassPassPassPass
Document.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']PassPassPassPassPass
Document.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']PassPassPassPassPass
Document.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']PassPassPassPassPass
Document.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']PassPassPassPassPass
Document.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]PassPassPassPassPass
Document.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]PassPassPassPassPass
Document.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]PassPassPassPassPass
Document.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]PassPassPassPassPass
Document.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]PassPassPassPassPass
Document.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]PassPassPassPassPass
Document.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]PassPassPassPassPass
Document.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]PassPassPassPassPass
Document.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]PassPassPassPassPass
Document.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]PassPassPassPassPass
Document.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]PassPassPassPassPass
Document.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]PassPassPassPassPass
Document.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]PassPassPassPassPass
Document.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]PassPassPassPassPass
Document.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-childPassPassPassPassPass
Document.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-childPassPassPassPassPass
Document.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-childPassPassPassPassPass
Document.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-childPassPassPassPassPass
Document.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-childPassPassPassPassPass
Document.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-childPassPassPassPassPass
Document.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visitedPassPassFailPassPass
Document.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visitedPassPassPassPassPass
Document.querySelectorAll: :link and :visited pseudo-class selectors, matching link elements with href attributes: #head :link, #head :visitedFailPassFailPassFail
Document.querySelector: :link and :visited pseudo-class selectors, matching link elements with href attributes: #head :link, #head :visitedFailPassFailPassFail
Document.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)PassPassPassPassPass
Document.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)PassPassPassPassPass
Document.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)PassPassPassPassPass
Document.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)PassPassPassPassPass
Document.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)PassPassPassPassPass
Document.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)PassPassPassPassPass
Document.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)PassPassPassPassPass
Document.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)PassPassPassPassPass
Document.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-linePassPassPassPassPass
Document.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-linePassPassPassPassPass
Document.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letterPassPassPassPassPass
Document.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letterPassPassPassPassPass
Document.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:beforePassPassPassPassPass
Document.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:beforePassPassPassPassPass
Document.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:afterPassPassPassPassPass
Document.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:afterPassPassPassPassPass
Document.querySelectorAll: Class selector, matching element with specified class: .class-pPassPassPassPassPass
Document.querySelector: Class selector, matching element with specified class: .class-pPassPassPassPassPass
Document.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.bananaPassPassPassPassPass
Document.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.bananaPassPassPassPassPass
Document.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orangePassPassPassPassPass
Document.querySelector: Class Selector, chained, with type selector: div.apple.banana.orangePassPassPassPassPass
Document.querySelectorAll: Class selector, matching element with class value using non-ASCII characters: .台北TáiběiPassPassPassPassPass
Document.querySelector: Class selector, matching element with class value using non-ASCII characters: .台北TáiběiPassPassPassPassPass
Document.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北PassPassPassPassPass
Document.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北PassPassPassPassPass
Document.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters: .台北Táiběi.台北PassPassPassPassPass
Document.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters: .台北Táiběi.台北PassPassPassPassPass
Document.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:barPassPassPassPassPass
Document.querySelector: Class selector, matching element with class with escaped character: .foo\:barPassPassPassPassPass
Document.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]barPassPassPassPassPass
Document.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]barPassPassPassPassPass
Document.querySelectorAll: ID selector, matching element with specified id: #id #id-div1PassPassPassPassPass
Document.querySelector: ID selector, matching element with specified id: #id #id-div1PassPassPassPassPass
Document.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1PassPassPassPassPass
Document.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1PassPassPassPassPass
Document.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2PassPassPassPassPass
Document.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2PassPassPassPassPass
Document.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2PassPassPassPassPass
Document.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2PassPassPassPassPass
Document.querySelectorAll: ID selector, not matching non-existent descendant: #id #nonePassPassPassPassPass
Document.querySelector: ID selector, not matching non-existent descendant: #id #nonePassPassPassPassPass
Document.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1PassPassPassPassPass
Document.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1PassPassPassPassPass
Document.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicatePassPassPassPassPass
Document.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicatePassPassPassPassPass
Document.querySelectorAll: ID selector, matching id value using non-ASCII characters: #台北TáiběiPassPassPassPassPass
Document.querySelector: ID selector, matching id value using non-ASCII characters: #台北TáiběiPassPassPassPassPass
Document.querySelectorAll: ID selector, matching id value using non-ASCII characters: #台北PassPassPassPassPass
Document.querySelector: ID selector, matching id value using non-ASCII characters: #台北PassPassPassPassPass
Document.querySelectorAll: ID selector, matching id values using non-ASCII characters: #台北Táiběi, #台北PassPassPassPassPass
Document.querySelector: ID selector, matching id values using non-ASCII characters: #台北Táiběi, #台北PassPassPassPassPass
Document.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:barPassPassPassPassPass
Document.querySelector: ID selector, matching element with id with escaped character: #\#foo\:barPassPassPassPassPass
Document.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]barPassPassPassPassPass
Document.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]barPassPassPassPassPass
Document.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|divPassPassPassPassPass
Document.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|divPassPassPassPassPass
Document.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |divFailPassPassPassPass
Document.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |divFailPassPassPassPass
Document.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*FailPassPassPassPass
Document.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*FailPassPassPassPass
Document.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant divPassPassPassPassPass
Document.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant divPassPassPassPassPass
Document.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1PassPassPassPassPass
Document.querySelector: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1PassPassPassPassPass
Document.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1PassPassPassPassPass
Document.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1PassPassPassPassPass
Document.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2PassPassPassPassPass
Document.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2PassPassPassPassPass
Document.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2PassPassPassPassPass
Document.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2PassPassPassPassPass
Document.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3PassPassPassPassPass
Document.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3PassPassPassPassPass
Document.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4PassPassPassPassPass
Document.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4PassPassPassPassPass
Document.querySelectorAll: Descendant combinator, whitespace characters: #descendant #descendant-div2PassPassPassPassPass
Document.querySelector: Descendant combinator, whitespace characters: #descendant #descendant-div2PassPassPassPassPass
Document.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>divPassPassPassPassPass
Document.querySelector: Child combinator, matching element that is a child of an element with id: #child>divPassPassPassPassPass
Document.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1PassPassPassPassPass
Document.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1PassPassPassPassPass
Document.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1PassPassPassPassPass
Document.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1PassPassPassPassPass
Document.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2PassPassPassPassPass
Document.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2PassPassPassPassPass
Document.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2PassPassPassPassPass
Document.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2PassPassPassPassPass
Document.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3PassPassPassPassPass
Document.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3PassPassPassPassPass
Document.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3PassPassPassPassPass
Document.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3PassPassPassPassPass
Document.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3PassPassPassPassPass
Document.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3PassPassPassPassPass
Document.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 > #child-div2PassPassPassPassPass
Document.querySelector: Child combinator, surrounded by whitespace: #child-div1 > #child-div2PassPassPassPassPass
Document.querySelectorAll: Child combinator, whitespace after: #child-div1> #child-div2PassPassPassPassPass
Document.querySelector: Child combinator, whitespace after: #child-div1> #child-div2PassPassPassPassPass
Document.querySelectorAll: Child combinator, whitespace before: #child-div1 >#child-div2PassPassPassPassPass
Document.querySelector: Child combinator, whitespace before: #child-div1 >#child-div2PassPassPassPassPass
Document.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2PassPassPassPassPass
Document.querySelector: Child combinator, no whitespace: #child-div1>#child-div2PassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+divPassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+divPassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4PassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4PassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4PassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4PassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4PassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4PassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4PassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4PassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+pPassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+pPassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1PassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1PassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3PassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3PassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3PassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3PassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3PassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3PassPassPassPassPass
Document.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3PassPassPassPassPass
Document.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3PassPassPassPassPass
Document.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strongPassPassPassPassPass
Document.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strongPassPassPassPassPass
Document.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, #group strongPassPassPassPassPass
Document.querySelector: Syntax, group of selectors separator, whitespace after: #group em, #group strongPassPassPassPassPass
Document.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em ,#group strongPassPassPassPassPass
Document.querySelector: Syntax, group of selectors separator, whitespace before: #group em ,#group strongPassPassPassPassPass
Document.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strongPassPassPassPassPass
Document.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strongPassPassPassPassPass
Detached Element.querySelectorAll: Type selector, matching html element: htmlPassPassPassPassPass
Detached Element.querySelector: Type selector, matching html element: htmlPassPassPassPassPass
Detached Element.querySelectorAll: Type selector, matching body element: bodyPassPassPassPassPass
Detached Element.querySelector: Type selector, matching body element: bodyPassPassPassPassPass
Detached Element.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*PassPassPassPassPass
Detached Element.querySelector: Universal selector, matching all children of element with specified ID: #universal>*PassPassPassPassPass
Detached Element.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*PassPassPassPassPass
Detached Element.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*PassPassPassPassPass
Detached Element.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*PassPassPassPassPass
Detached Element.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*PassPassPassPassPass
Detached Element.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *PassPassPassPassPass
Detached Element.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *PassPassPassPassPass
Detached Element.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]PassPassPassPassPass
Detached Element.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]PassPassPassPassPass
Detached Element.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [TiTlE]PassPassPassPassPass
Detached Element.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [TiTlE]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]PassPassPassPassPass
Detached Element.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]PassPassPassPassPass
Detached Element.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]PassPassPassPassPass
Detached Element.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]PassPassPassPassPass
Detached Element.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]PassPassPassPassPass
Detached Element.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]PassPassPassPassPass
Detached Element.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]PassPassPassPassPass
Detached Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]PassPassPassPassPass
Detached Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]PassPassPassPassPass
Detached Element.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]PassPassPassPassPass
Detached Element.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]PassPassPassPassPass
Detached Element.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]PassPassPassPassPass
Detached Element.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']PassPassPassPassPass
Detached Element.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']PassPassPassPassPass
Detached Element.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]PassPassPassPassPass
Detached Element.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]PassPassPassPassPass
Detached Element.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]PassPassPassPassPass
Detached Element.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]PassPassPassPassPass
Detached Element.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]PassPassPassPassPass
Detached Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]PassPassPassPassPass
Detached Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]PassPassPassPassPass
Detached Element.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]PassPassPassPassPass
Detached Element.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]PassPassPassPassPass
Detached Element.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-childPassPassPassPassPass
Detached Element.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-childPassPassPassPassPass
Detached Element.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-childPassPassPassPassPass
Detached Element.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-childPassPassPassPassPass
Detached Element.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-childPassPassPassPassPass
Detached Element.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-childPassPassPassPassPass
Detached Element.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visitedPassFailFailPassPass
Detached Element.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visitedPassFailPassPassPass
Detached Element.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visitedPassPassPassPassPass
Detached Element.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visitedPassPassPassPassPass
Detached Element.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visitedPassPassPassPassPass
Detached Element.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visitedPassPassPassPassPass
Detached Element.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)PassPassPassPassPass
Detached Element.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)PassPassPassPassPass
Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)PassPassPassPassPass
Detached Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)PassPassPassPassPass
Detached Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)PassPassPassPassPass
Detached Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)PassPassPassPassPass
Detached Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)PassPassPassPassPass
Detached Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)PassPassPassPassPass
Detached Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-linePassPassPassPassPass
Detached Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-linePassPassPassPassPass
Detached Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letterPassPassPassPassPass
Detached Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letterPassPassPassPassPass
Detached Element.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:beforePassPassPassPassPass
Detached Element.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:beforePassPassPassPassPass
Detached Element.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:afterPassPassPassPassPass
Detached Element.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:afterPassPassPassPassPass
Detached Element.querySelectorAll: Class selector, matching element with specified class: .class-pPassPassPassPassPass
Detached Element.querySelector: Class selector, matching element with specified class: .class-pPassPassPassPassPass
Detached Element.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.bananaPassPassPassPassPass
Detached Element.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.bananaPassPassPassPassPass
Detached Element.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orangePassPassPassPassPass
Detached Element.querySelector: Class Selector, chained, with type selector: div.apple.banana.orangePassPassPassPassPass
Detached Element.querySelectorAll: Class selector, matching element with class value using non-ASCII characters: .台北TáiběiPassPassPassPassPass
Detached Element.querySelector: Class selector, matching element with class value using non-ASCII characters: .台北TáiběiPassPassPassPassPass
Detached Element.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北PassPassPassPassPass
Detached Element.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北PassPassPassPassPass
Detached Element.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters: .台北Táiběi.台北PassPassPassPassPass
Detached Element.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters: .台北Táiběi.台北PassPassPassPassPass
Detached Element.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:barPassPassPassPassPass
Detached Element.querySelector: Class selector, matching element with class with escaped character: .foo\:barPassPassPassPassPass
Detached Element.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]barPassPassPassPassPass
Detached Element.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]barPassPassPassPassPass
Detached Element.querySelectorAll: ID selector, matching element with specified id: #id #id-div1PassPassPassPassPass
Detached Element.querySelector: ID selector, matching element with specified id: #id #id-div1PassPassPassPassPass
Detached Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1PassPassPassPassPass
Detached Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1PassPassPassPassPass
Detached Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2PassPassPassPassPass
Detached Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2PassPassPassPassPass
Detached Element.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2PassPassPassPassPass
Detached Element.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2PassPassPassPassPass
Detached Element.querySelectorAll: ID selector, not matching non-existent descendant: #id #nonePassPassPassPassPass
Detached Element.querySelector: ID selector, not matching non-existent descendant: #id #nonePassPassPassPassPass
Detached Element.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1PassPassPassPassPass
Detached Element.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1PassPassPassPassPass
Detached Element.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicatePassPassPassPassPass
Detached Element.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicatePassPassPassPassPass
Detached Element.querySelectorAll: ID selector, matching id value using non-ASCII characters: #台北TáiběiPassPassPassPassPass
Detached Element.querySelector: ID selector, matching id value using non-ASCII characters: #台北TáiběiPassPassPassPassPass
Detached Element.querySelectorAll: ID selector, matching id value using non-ASCII characters: #台北PassPassPassPassPass
Detached Element.querySelector: ID selector, matching id value using non-ASCII characters: #台北PassPassPassPassPass
Detached Element.querySelectorAll: ID selector, matching id values using non-ASCII characters: #台北Táiběi, #台北PassPassPassPassPass
Detached Element.querySelector: ID selector, matching id values using non-ASCII characters: #台北Táiběi, #台北PassPassPassPassPass
Detached Element.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:barPassPassPassPassPass
Detached Element.querySelector: ID selector, matching element with id with escaped character: #\#foo\:barPassPassPassPassPass
Detached Element.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]barPassPassPassPassPass
Detached Element.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]barPassPassPassPassPass
Detached Element.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|divPassPassPassPassPass
Detached Element.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|divPassPassPassPassPass
Detached Element.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |divFailPassPassPassPass
Detached Element.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |divFailPassPassPassPass
Detached Element.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*FailPassPassPassPass
Detached Element.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*FailPassPassPassPass
Detached Element.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant divPassPassPassPassPass
Detached Element.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant divPassPassPassPassPass
Detached Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1PassPassPassPassPass
Detached Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1PassPassPassPassPass
Detached Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2PassPassPassPassPass
Detached Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2PassPassPassPassPass
Detached Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2PassPassPassPassPass
Detached Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2PassPassPassPassPass
Detached Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3PassPassPassPassPass
Detached Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3PassPassPassPassPass
Detached Element.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4PassPassPassPassPass
Detached Element.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4PassPassPassPassPass
Detached Element.querySelectorAll: Descendant combinator, whitespace characters: #descendant #descendant-div2PassPassPassPassPass
Detached Element.querySelector: Descendant combinator, whitespace characters: #descendant #descendant-div2PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>divPassPassPassPassPass
Detached Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>divPassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1PassPassPassPassPass
Detached Element.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1PassPassPassPassPass
Detached Element.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2PassPassPassPassPass
Detached Element.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2PassPassPassPassPass
Detached Element.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3PassPassPassPassPass
Detached Element.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3PassPassPassPassPass
Detached Element.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3PassPassPassPassPass
Detached Element.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 > #child-div2PassPassPassPassPass
Detached Element.querySelector: Child combinator, surrounded by whitespace: #child-div1 > #child-div2PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, whitespace after: #child-div1> #child-div2PassPassPassPassPass
Detached Element.querySelector: Child combinator, whitespace after: #child-div1> #child-div2PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, whitespace before: #child-div1 >#child-div2PassPassPassPassPass
Detached Element.querySelector: Child combinator, whitespace before: #child-div1 >#child-div2PassPassPassPassPass
Detached Element.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2PassPassPassPassPass
Detached Element.querySelector: Child combinator, no whitespace: #child-div1>#child-div2PassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+divPassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+divPassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4PassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4PassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4PassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4PassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4PassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4PassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4PassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4PassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+pPassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+pPassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1PassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1PassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3PassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3PassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3PassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3PassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3PassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3PassPassPassPassPass
Detached Element.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3PassPassPassPassPass
Detached Element.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3PassPassPassPassPass
Detached Element.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strongPassPassPassPassPass
Detached Element.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strongPassPassPassPassPass
Detached Element.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, #group strongPassPassPassPassPass
Detached Element.querySelector: Syntax, group of selectors separator, whitespace after: #group em, #group strongPassPassPassPassPass
Detached Element.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em ,#group strongPassPassPassPassPass
Detached Element.querySelector: Syntax, group of selectors separator, whitespace before: #group em ,#group strongPassPassPassPassPass
Detached Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strongPassPassPassPassPass
Detached Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strongPassPassPassPassPass
Fragment.querySelectorAll: Type selector, matching html element: htmlPassPassPassPassPass
Fragment.querySelector: Type selector, matching html element: htmlPassPassPassPassPass
Fragment.querySelectorAll: Type selector, matching body element: bodyPassPassPassPassPass
Fragment.querySelector: Type selector, matching body element: bodyPassPassPassPassPass
Fragment.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*PassPassPassPassPass
Fragment.querySelector: Universal selector, matching all children of element with specified ID: #universal>*PassPassPassPassPass
Fragment.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*PassPassPassPassPass
Fragment.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*PassPassPassPassPass
Fragment.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*PassPassPassPassPass
Fragment.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*PassPassPassPassPass
Fragment.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *PassPassPassPassPass
Fragment.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *PassPassPassPassPass
Fragment.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]PassPassPassPassPass
Fragment.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]PassPassPassPassPass
Fragment.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]PassPassPassPassPass
Fragment.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]PassPassPassPassPass
Fragment.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [TiTlE]PassPassPassPassPass
Fragment.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [TiTlE]PassPassPassPassPass
Fragment.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]PassPassPassPassPass
Fragment.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]PassPassPassPassPass
Fragment.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]PassPassPassPassPass
Fragment.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]PassPassPassPassPass
Fragment.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]PassPassPassPassPass
Fragment.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]PassPassPassPassPass
Fragment.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]PassPassPassPassPass
Fragment.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]PassPassPassPassPass
Fragment.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]PassPassPassPassPass
Fragment.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]PassPassPassPassPass
Fragment.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]PassPassPassPassPass
Fragment.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]PassPassPassPassPass
Fragment.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]PassPassPassPassPass
Fragment.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]PassPassPassPassPass
Fragment.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]PassPassPassPassPass
Fragment.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]PassPassPassPassPass
Fragment.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]PassPassPassPassPass
Fragment.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']PassPassPassPassPass
Fragment.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']PassPassPassPassPass
Fragment.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]PassPassPassPassPass
Fragment.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]PassPassPassPassPass
Fragment.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]PassPassPassPassPass
Fragment.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]PassPassPassPassPass
Fragment.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]PassPassPassPassPass
Fragment.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]PassPassPassPassPass
Fragment.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]PassPassPassPassPass
Fragment.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]PassPassPassPassPass
Fragment.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]PassPassPassPassPass
Fragment.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]PassPassPassPassPass
Fragment.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]PassPassPassPassPass
Fragment.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-childPassPassPassPassPass
Fragment.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-childPassPassPassPassPass
Fragment.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-childPassPassPassPassPass
Fragment.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-childPassPassPassPassPass
Fragment.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-childPassPassPassPassPass
Fragment.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-childPassPassPassPassPass
Fragment.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visitedPassFailFailPassPass
Fragment.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visited PassFailPassPassPass
Fragment.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visitedPassPassPassPassPass
Fragment.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visitedPassPassPassPassPass
Fragment.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visitedPassPassPassPassPass
Fragment.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visitedPassPassPassPassPass
Fragment.querySelectorAll: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)PassPassPassPassPass
Fragment.querySelector: :lang pseudo-class selector, not matching element with no inherited language: #pseudo-lang-div1:lang(en)PassPassPassPassPass
Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)PassPassPassPassPass
Fragment.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)PassPassPassPassPass
Fragment.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)PassPassPassPassPass
Fragment.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)PassPassPassPassPass
Fragment.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)PassPassPassPassPass
Fragment.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)PassPassPassPassPass
Fragment.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-linePassPassPassPassPass
Fragment.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-linePassPassPassPassPass
Fragment.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letterPassPassPassPassPass
Fragment.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letterPassPassPassPassPass
Fragment.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:beforePassPassPassPassPass
Fragment.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:beforePassPassPassPassPass
Fragment.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:afterPassPassPassPassPass
Fragment.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:afterPassPassPassPassPass
Fragment.querySelectorAll: Class selector, matching element with specified class: .class-pPassPassPassPassPass
Fragment.querySelector: Class selector, matching element with specified class: .class-pPassPassPassPassPass
Fragment.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.bananaPassPassPassPassPass
Fragment.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.bananaPassPassPassPassPass
Fragment.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orangePassPassPassPassPass
Fragment.querySelector: Class Selector, chained, with type selector: div.apple.banana.orangePassPassPassPassPass
Fragment.querySelectorAll: Class selector, matching element with class value using non-ASCII characters: .台北TáiběiPassPassPassPassPass
Fragment.querySelector: Class selector, matching element with class value using non-ASCII characters: .台北TáiběiPassPassPassPassPass
Fragment.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北PassPassPassPassPass
Fragment.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北PassPassPassPassPass
Fragment.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters: .台北Táiběi.台北PassPassPassPassPass
Fragment.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters: .台北Táiběi.台北PassPassPassPassPass
Fragment.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:barPassPassPassPassPass
Fragment.querySelector: Class selector, matching element with class with escaped character: .foo\:barPassPassPassPassPass
Fragment.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]barPassPassPassPassPass
Fragment.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]barPassPassPassPassPass
Fragment.querySelectorAll: ID selector, matching element with specified id: #id #id-div1PassPassPassPassPass
Fragment.querySelector: ID selector, matching element with specified id: #id #id-div1PassPassPassPassPass
Fragment.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1PassPassPassPassPass
Fragment.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1PassPassPassPassPass
Fragment.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2PassPassPassPassPass
Fragment.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2PassPassPassPassPass
Fragment.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2PassPassPassPassPass
Fragment.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2PassPassPassPassPass
Fragment.querySelectorAll: ID selector, not matching non-existent descendant: #id #nonePassPassPassPassPass
Fragment.querySelector: ID selector, not matching non-existent descendant: #id #nonePassPassPassPassPass
Fragment.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1PassPassPassPassPass
Fragment.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1PassPassPassPassPass
Fragment.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicatePassPassPassPassPass
Fragment.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicatePassPassPassPassPass
Fragment.querySelectorAll: ID selector, matching id value using non-ASCII characters: #台北TáiběiPassPassPassPassPass
Fragment.querySelector: ID selector, matching id value using non-ASCII characters: #台北TáiběiPassPassPassPassPass
Fragment.querySelectorAll: ID selector, matching id value using non-ASCII characters: #台北PassPassPassPassPass
Fragment.querySelector: ID selector, matching id value using non-ASCII characters: #台北PassPassPassPassPass
Fragment.querySelectorAll: ID selector, matching id values using non-ASCII characters: #台北Táiběi, #台北PassPassPassPassPass
Fragment.querySelector: ID selector, matching id values using non-ASCII characters: #台北Táiběi, #台北PassPassPassPassPass
Fragment.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:barPassPassPassPassPass
Fragment.querySelector: ID selector, matching element with id with escaped character: #\#foo\:barPassPassPassPassPass
Fragment.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]barPassPassPassPassPass
Fragment.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]barPassPassPassPassPass
Fragment.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|divPassPassPassPassPass
Fragment.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|divPassPassPassPassPass
Fragment.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |divFailPassPassPassPass
Fragment.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |divFailPassPassPassPass
Fragment.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*FailPassPassPassPass
Fragment.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*FailPassPassPassPass
Fragment.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant divPassPassPassPassPass
Fragment.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant divPassPassPassPassPass
Fragment.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1PassPassPassPassPass
Fragment.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1PassPassPassPassPass
Fragment.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2PassPassPassPassPass
Fragment.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2PassPassPassPassPass
Fragment.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2PassPassPassPassPass
Fragment.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2PassPassPassPassPass
Fragment.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3PassPassPassPassPass
Fragment.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3PassPassPassPassPass
Fragment.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4PassPassPassPassPass
Fragment.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4PassPassPassPassPass
Fragment.querySelectorAll: Descendant combinator, whitespace characters: #descendant #descendant-div2PassPassPassPassPass
Fragment.querySelector: Descendant combinator, whitespace characters: #descendant #descendant-div2PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>divPassPassPassPassPass
Fragment.querySelector: Child combinator, matching element that is a child of an element with id: #child>divPassPassPassPassPass
Fragment.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1PassPassPassPassPass
Fragment.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1PassPassPassPassPass
Fragment.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2PassPassPassPassPass
Fragment.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2PassPassPassPassPass
Fragment.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3PassPassPassPassPass
Fragment.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3PassPassPassPassPass
Fragment.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3PassPassPassPassPass
Fragment.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 > #child-div2PassPassPassPassPass
Fragment.querySelector: Child combinator, surrounded by whitespace: #child-div1 > #child-div2PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, whitespace after: #child-div1> #child-div2PassPassPassPassPass
Fragment.querySelector: Child combinator, whitespace after: #child-div1> #child-div2PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, whitespace before: #child-div1 >#child-div2PassPassPassPassPass
Fragment.querySelector: Child combinator, whitespace before: #child-div1 >#child-div2PassPassPassPassPass
Fragment.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2PassPassPassPassPass
Fragment.querySelector: Child combinator, no whitespace: #child-div1>#child-div2PassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+divPassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+divPassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4PassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4PassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4PassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4PassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4PassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4PassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4PassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4PassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+pPassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+pPassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1PassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1PassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3PassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3PassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3PassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3PassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3PassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3PassPassPassPassPass
Fragment.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3PassPassPassPassPass
Fragment.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3PassPassPassPassPass
Fragment.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strongPassPassPassPassPass
Fragment.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strongPassPassPassPassPass
Fragment.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, #group strongPassPassPassPassPass
Fragment.querySelector: Syntax, group of selectors separator, whitespace after: #group em, #group strongPassPassPassPassPass
Fragment.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em ,#group strongPassPassPassPassPass
Fragment.querySelector: Syntax, group of selectors separator, whitespace before: #group em ,#group strongPassPassPassPassPass
Fragment.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strongPassPassPassPassPass
Fragment.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strongPassPassPassPassPass
In-document Element.querySelectorAll: Type selector, matching html element: htmlPassPassPassPassPass
In-document Element.querySelector: Type selector, matching html element: htmlPassPassPassPassPass
In-document Element.querySelectorAll: Type selector, matching body element: bodyPassPassPassPassPass
In-document Element.querySelector: Type selector, matching body element: bodyPassPassPassPassPass
In-document Element.querySelectorAll: Universal selector, matching all children of element with specified ID: #universal>*PassPassPassPassPass
In-document Element.querySelector: Universal selector, matching all children of element with specified ID: #universal>*PassPassPassPassPass
In-document Element.querySelectorAll: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*PassPassPassPassPass
In-document Element.querySelector: Universal selector, matching all grandchildren of element with specified ID: #universal>*>*PassPassPassPassPass
In-document Element.querySelectorAll: Universal selector, matching all children of empty element with specified ID: #empty>*PassPassPassPassPass
In-document Element.querySelector: Universal selector, matching all children of empty element with specified ID: #empty>*PassPassPassPassPass
In-document Element.querySelectorAll: Universal selector, matching all descendants of element with specified ID: #universal *PassPassPassPassPass
In-document Element.querySelector: Universal selector, matching all descendants of element with specified ID: #universal *PassPassPassPassPass
In-document Element.querySelectorAll: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]PassPassPassPassPass
In-document Element.querySelector: Attribute presence selector, matching align attribute with value: .attr-presence-div1[align]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]PassPassPassPassPass
In-document Element.querySelector: Attribute presence selector, matching align attribute with empty value: .attr-presence-div2[align]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [TiTlE]PassPassPassPassPass
In-document Element.querySelector: Attribute presence selector, matching title attribute, case insensitivity: #attr-presence [TiTlE]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]PassPassPassPassPass
In-document Element.querySelector: Attribute presence selector, matching custom data-* attribute: [data-attr-presence]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]PassPassPassPassPass
In-document Element.querySelector: Attribute presence selector, not matching attribute with similar name: .attr-presence-div3[align], .attr-presence-div4[align]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]PassPassPassPassPass
In-document Element.querySelector: Attribute presence selector, matching attribute with non-ASCII characters: ul[data-中文]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]PassPassPassPassPass
In-document Element.querySelector: Attribute presence selector, not matching default option without selected attribute: #attr-presence-select1 option[selected]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]PassPassPassPassPass
In-document Element.querySelector: Attribute presence selector, matching option with selected attribute: #attr-presence-select2 option[selected]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]PassPassPassPassPass
In-document Element.querySelector: Attribute presence selector, matching multiple options with selected attributes: #attr-presence-select3 option[selected]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"]PassPassPassPassPass
In-document Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]PassPassPassPassPass
In-document Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]PassPassPassPassPass
In-document Element.querySelector: Attribute value selector, not matching align attribute with partial value: #attr-value [align="c"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]PassPassPassPassPass
In-document Element.querySelector: Attribute value selector, not matching align attribute with incorrect value: #attr-value [align="centera"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]PassPassPassPassPass
In-document Element.querySelector: Attribute value selector, matching custom data-* attribute with unicode escaped value: [data-attr-value="\e9"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]PassPassPassPassPass
In-document Element.querySelector: Attribute value selector, matching custom data-* attribute with escaped character: [data-attr-value_foo="\e9"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']PassPassPassPassPass
In-document Element.querySelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes: #attr-value input[type='hidden'],#attr-value input[type='radio']PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']PassPassPassPassPass
In-document Element.querySelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes: #attr-value input[type="hidden"],#attr-value input[type='radio']PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]PassPassPassPassPass
In-document Element.querySelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes: #attr-value input[type=hidden],#attr-value input[type=radio]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]PassPassPassPassPass
In-document Element.querySelector: Attribute value selector, matching attribute with value using non-ASCII characters: [data-attr-value=中文]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector, matching class attribute with value: #attr-whitespace [class~="div1"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with empty value: #attr-whitespace [class~=""]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector, not matching class attribute with partial value: [data-attr-whitespace~="div"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value: [data-attr-whitespace~="\0000e9"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character: [data-attr-whitespace_foo~="\e9"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~='bookmark'], #attr-whitespace a[rel~='nofollow']PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~="bookmark"],#attr-whitespace a[rel~='nofollow']PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes: #attr-whitespace a[rel~=bookmark], #attr-whitespace a[rel~=nofollow]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector with double-quoted value, not matching value with space: #attr-whitespace a[rel~="book mark"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]PassPassPassPassPass
In-document Element.querySelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters: #attr-whitespace [title~=中文]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]PassPassPassPassPass
In-document Element.querySelector: Attribute hyphen-separated list selector, not matching unspecified lang attribute: #attr-hyphen-div1[lang|="en"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]PassPassPassPassPass
In-document Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with exact value: #attr-hyphen-div2[lang|="fr"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]PassPassPassPassPass
In-document Element.querySelector: Attribute hyphen-separated list selector, matching lang attribute with partial value: #attr-hyphen-div3[lang|="en"]PassPassPassPassPass
In-document Element.querySelectorAll: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]PassPassPassPassPass
In-document Element.querySelector: Attribute hyphen-separated list selector, not matching incorrect value: #attr-hyphen-div4[lang|="es-AR"]PassPassPassPassPass
In-document Element.querySelectorAll: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-childPassPassPassPassPass
In-document Element.querySelector: :first-child pseudo-class selector, matching first child div element: #pseudo-first-child div:first-childPassPassPassPassPass
In-document Element.querySelectorAll: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-childPassPassPassPassPass
In-document Element.querySelector: :first-child pseudo-class selector, doesn't match non-first-child elements: .pseudo-first-child-div2:first-child, .pseudo-first-child-div3:first-childPassPassPassPassPass
In-document Element.querySelectorAll: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-childPassPassPassPassPass
In-document Element.querySelector: :first-child pseudo-class selector, matching first-child of multiple elements: #pseudo-first-child span:first-childPassPassPassPassPass
In-document Element.querySelectorAll: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visitedPassPassFailPassPass
In-document Element.querySelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes: #pseudo-link :link, #pseudo-link :visitedPassPassPassPassPass
In-document Element.querySelectorAll: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visitedPassPassPassPassPass
In-document Element.querySelector: :link and :visited pseudo-class selectors, not matching link elements with href attributes: #head :link, #head :visitedPassPassPassPassPass
In-document Element.querySelectorAll: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visitedPassPassPassPassPass
In-document Element.querySelector: :link and :visited pseudo-class selectors, chained, mutually exclusive pseudo-classes match nothing: :link:visitedPassPassPassPassPass
In-document Element.querySelectorAll: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)PassPassPassPassPass
In-document Element.querySelector: :lang pseudo-class selector, matching inherited language: #pseudo-lang-div1:lang(en)PassPassPassPassPass
In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)PassPassPassPassPass
In-document Element.querySelector: :lang pseudo-class selector, matching specified language with exact value: #pseudo-lang-div2:lang(fr)PassPassPassPassPass
In-document Element.querySelectorAll: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)PassPassPassPassPass
In-document Element.querySelector: :lang pseudo-class selector, matching specified language with partial value: #pseudo-lang-div3:lang(en)PassPassPassPassPass
In-document Element.querySelectorAll: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)PassPassPassPassPass
In-document Element.querySelector: :lang pseudo-class selector, not matching incorrect language: #pseudo-lang-div4:lang(es-AR)PassPassPassPassPass
In-document Element.querySelectorAll: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-linePassPassPassPassPass
In-document Element.querySelector: :first-line pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-linePassPassPassPassPass
In-document Element.querySelectorAll: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letterPassPassPassPassPass
In-document Element.querySelector: :first-letter pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:first-letterPassPassPassPassPass
In-document Element.querySelectorAll: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:beforePassPassPassPassPass
In-document Element.querySelector: :before pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:beforePassPassPassPassPass
In-document Element.querySelectorAll: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:afterPassPassPassPassPass
In-document Element.querySelector: :after pseudo-element (one-colon syntax) selector, not matching any elements: #pseudo-element:afterPassPassPassPassPass
In-document Element.querySelectorAll: Class selector, matching element with specified class: .class-pPassPassPassPassPass
In-document Element.querySelector: Class selector, matching element with specified class: .class-pPassPassPassPassPass
In-document Element.querySelectorAll: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.bananaPassPassPassPassPass
In-document Element.querySelector: Class selector, chained, matching only elements with all specified classes: #class .apple.orange.bananaPassPassPassPassPass
In-document Element.querySelectorAll: Class Selector, chained, with type selector: div.apple.banana.orangePassPassPassPassPass
In-document Element.querySelector: Class Selector, chained, with type selector: div.apple.banana.orangePassPassPassPassPass
In-document Element.querySelectorAll: Class selector, matching element with class value using non-ASCII characters: .台北TáiběiPassPassPassPassPass
In-document Element.querySelector: Class selector, matching element with class value using non-ASCII characters: .台北TáiběiPassPassPassPassPass
In-document Element.querySelectorAll: Class selector, matching multiple elements with class value using non-ASCII characters: .台北PassPassPassPassPass
In-document Element.querySelector: Class selector, matching multiple elements with class value using non-ASCII characters: .台北PassPassPassPassPass
In-document Element.querySelectorAll: Class selector, chained, matching element with multiple class values using non-ASCII characters: .台北Táiběi.台北PassPassPassPassPass
In-document Element.querySelector: Class selector, chained, matching element with multiple class values using non-ASCII characters: .台北Táiběi.台北PassPassPassPassPass
In-document Element.querySelectorAll: Class selector, matching element with class with escaped character: .foo\:barPassPassPassPassPass
In-document Element.querySelector: Class selector, matching element with class with escaped character: .foo\:barPassPassPassPassPass
In-document Element.querySelectorAll: Class selector, matching element with class with escaped character: .test\.foo\[5\]barPassPassPassPassPass
In-document Element.querySelector: Class selector, matching element with class with escaped character: .test\.foo\[5\]barPassPassPassPassPass
In-document Element.querySelectorAll: ID selector, matching element with specified id: #id #id-div1PassPassPassPassPass
In-document Element.querySelector: ID selector, matching element with specified id: #id #id-div1PassPassPassPassPass
In-document Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div1PassPassPassPassPass
In-document Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div1PassPassPassPassPass
In-document Element.querySelectorAll: ID selector, chained, matching element with specified id: #id-div1, #id-div2PassPassPassPassPass
In-document Element.querySelector: ID selector, chained, matching element with specified id: #id-div1, #id-div2PassPassPassPassPass
In-document Element.querySelectorAll: ID Selector, chained, with type selector: div#id-div1, div#id-div2PassPassPassPassPass
In-document Element.querySelector: ID Selector, chained, with type selector: div#id-div1, div#id-div2PassPassPassPassPass
In-document Element.querySelectorAll: ID selector, not matching non-existent descendant: #id #nonePassPassPassPassPass
In-document Element.querySelector: ID selector, not matching non-existent descendant: #id #nonePassPassPassPassPass
In-document Element.querySelectorAll: ID selector, not matching non-existent ancestor: #none #id-div1PassPassPassPassPass
In-document Element.querySelector: ID selector, not matching non-existent ancestor: #none #id-div1PassPassPassPassPass
In-document Element.querySelectorAll: ID selector, matching multiple elements with duplicate id: #id-li-duplicatePassPassPassPassPass
In-document Element.querySelector: ID selector, matching multiple elements with duplicate id: #id-li-duplicatePassPassPassPassPass
In-document Element.querySelectorAll: ID selector, matching id value using non-ASCII characters: #台北TáiběiPassPassPassPassPass
In-document Element.querySelector: ID selector, matching id value using non-ASCII characters: #台北TáiběiPassPassPassPassPass
In-document Element.querySelectorAll: ID selector, matching id value using non-ASCII characters: #台北PassPassPassPassPass
In-document Element.querySelector: ID selector, matching id value using non-ASCII characters: #台北PassPassPassPassPass
In-document Element.querySelectorAll: ID selector, matching id values using non-ASCII characters: #台北Táiběi, #台北PassPassPassPassPass
In-document Element.querySelector: ID selector, matching id values using non-ASCII characters: #台北Táiběi, #台北PassPassPassPassPass
In-document Element.querySelectorAll: ID selector, matching element with id with escaped character: #\#foo\:barPassPassPassPassPass
In-document Element.querySelector: ID selector, matching element with id with escaped character: #\#foo\:barPassPassPassPassPass
In-document Element.querySelectorAll: ID selector, matching element with id with escaped character: #test\.foo\[5\]barPassPassPassPassPass
In-document Element.querySelector: ID selector, matching element with id with escaped character: #test\.foo\[5\]barPassPassPassPassPass
In-document Element.querySelectorAll: Namespace selector, matching element with any namespace: #any-namespace *|divPassPassPassPassPass
In-document Element.querySelector: Namespace selector, matching element with any namespace: #any-namespace *|divPassPassPassPassPass
In-document Element.querySelectorAll: Namespace selector, matching div elements in no namespace only: #no-namespace |divFailPassPassPassPass
In-document Element.querySelector: Namespace selector, matching div elements in no namespace only: #no-namespace |divFailPassPassPassPass
In-document Element.querySelectorAll: Namespace selector, matching any elements in no namespace only: #no-namespace |*FailPassPassPassPass
In-document Element.querySelector: Namespace selector, matching any elements in no namespace only: #no-namespace |*FailPassPassPassPass
In-document Element.querySelectorAll: Descendant combinator, matching element that is a descendant of an element with id: #descendant divPassPassPassPassPass
In-document Element.querySelector: Descendant combinator, matching element that is a descendant of an element with id: #descendant divPassPassPassPassPass
In-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1PassPassPassPassPass
In-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: body #descendant-div1PassPassPassPassPass
In-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1PassPassPassPassPass
In-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element: div #descendant-div1PassPassPassPassPass
In-document Element.querySelectorAll: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2PassPassPassPassPass
In-document Element.querySelector: Descendant combinator, matching element with id that is a descendant of an element with id: #descendant #descendant-div2PassPassPassPassPass
In-document Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2PassPassPassPassPass
In-document Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with id: #descendant .descendant-div2PassPassPassPassPass
In-document Element.querySelectorAll: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3PassPassPassPassPass
In-document Element.querySelector: Descendant combinator, matching element with class that is a descendant of an element with class: .descendant-div1 .descendant-div3PassPassPassPassPass
In-document Element.querySelectorAll: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4PassPassPassPassPass
In-document Element.querySelector: Descendant combinator, not matching element with id that is not a descendant of an element with id: #descendant-div1 #descendant-div4PassPassPassPassPass
In-document Element.querySelectorAll: Descendant combinator, whitespace characters: #descendant #descendant-div2PassPassPassPassPass
In-document Element.querySelector: Descendant combinator, whitespace characters: #descendant #descendant-div2PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>divPassPassPassPassPass
In-document Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>divPassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element: div>#child-div1PassPassPassPassPass
In-document Element.querySelector: Child combinator, matching element with id that is a child of an element: div>#child-div1PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1PassPassPassPassPass
In-document Element.querySelector: Child combinator, matching element with id that is a child of an element with id: #child>#child-div1PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2PassPassPassPassPass
In-document Element.querySelector: Child combinator, matching element with id that is a child of an element with class: #child-div1>.child-div2PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2PassPassPassPassPass
In-document Element.querySelector: Child combinator, matching element with class that is a child of an element with class: .child-div1>.child-div2PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3PassPassPassPassPass
In-document Element.querySelector: Child combinator, not matching element with id that is not a child of an element with id: #child>#child-div3PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3PassPassPassPassPass
In-document Element.querySelector: Child combinator, not matching element with id that is not a child of an element with class: #child-div1>.child-div3PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3PassPassPassPassPass
In-document Element.querySelector: Child combinator, not matching element with class that is not a child of an element with class: .child-div1>.child-div3PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, surrounded by whitespace: #child-div1 > #child-div2PassPassPassPassPass
In-document Element.querySelector: Child combinator, surrounded by whitespace: #child-div1 > #child-div2PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, whitespace after: #child-div1> #child-div2PassPassPassPassPass
In-document Element.querySelector: Child combinator, whitespace after: #child-div1> #child-div2PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, whitespace before: #child-div1 >#child-div2PassPassPassPassPass
In-document Element.querySelector: Child combinator, whitespace before: #child-div1 >#child-div2PassPassPassPassPass
In-document Element.querySelectorAll: Child combinator, no whitespace: #child-div1>#child-div2PassPassPassPassPass
In-document Element.querySelector: Child combinator, no whitespace: #child-div1>#child-div2PassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+divPassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id: #adjacent-div2+divPassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4PassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element: div+#adjacent-div4PassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4PassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id: #adjacent-div2+#adjacent-div4PassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4PassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id: #adjacent-div2+.adjacent-div4PassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4PassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class: .adjacent-div2+.adjacent-div4PassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+pPassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element: #adjacent div+pPassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1PassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, not matching element with id that is not an adjacent sibling of an element with id: #adjacent-div2+#adjacent-p2, #adjacent-div2+#adjacent-div1PassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3PassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, surrounded by whitespace: #adjacent-p2 + #adjacent-p3PassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3PassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, whitespace after: #adjacent-p2+ #adjacent-p3PassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3PassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, whitespace before: #adjacent-p2 +#adjacent-p3PassPassPassPassPass
In-document Element.querySelectorAll: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3PassPassPassPassPass
In-document Element.querySelector: Adjacent sibling combinator, no whitespace: #adjacent-p2+#adjacent-p3PassPassPassPassPass
In-document Element.querySelectorAll: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strongPassPassPassPassPass
In-document Element.querySelector: Syntax, group of selectors separator, surrounded by whitespace: #group em , #group strongPassPassPassPassPass
In-document Element.querySelectorAll: Syntax, group of selectors separator, whitespace after: #group em, #group strongPassPassPassPassPass
In-document Element.querySelector: Syntax, group of selectors separator, whitespace after: #group em, #group strongPassPassPassPassPass
In-document Element.querySelectorAll: Syntax, group of selectors separator, whitespace before: #group em ,#group strongPassPassPassPassPass
In-document Element.querySelector: Syntax, group of selectors separator, whitespace before: #group em ,#group strongPassPassPassPassPass
In-document Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strongPassPassPassPassPass
In-document Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strongPassPassPassPassPass