wpt / css / css-pseudo / parsing / tree-abiding-pseudo-elements.html

Status: FAIL | Duration: 93ms | Subtests: 0/41 | Open test on wpt.live | wpt.fyi

Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)

SubtestStatusMessage
"::before" should be a valid selectorFAILCannot destructure 'undefined' value
"*::before" should be a valid selectorFAILCannot destructure 'undefined' value
"foo.bar[baz]::before" should be a valid selectorFAILCannot destructure 'undefined' value
"::before *" should be an invalid selectorFAILassert_throws_dom: "::before *" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::after" should be a valid selectorFAILCannot destructure 'undefined' value
"*::after" should be a valid selectorFAILCannot destructure 'undefined' value
"foo.bar[baz]::after" should be a valid selectorFAILCannot destructure 'undefined' value
"::after *" should be an invalid selectorFAILassert_throws_dom: "::after *" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::marker" should be a valid selectorFAILCannot destructure 'undefined' value
"*::marker" should be a valid selectorFAILCannot destructure 'undefined' value
"foo.bar[baz]::marker" should be a valid selectorFAILCannot destructure 'undefined' value
"::marker *" should be an invalid selectorFAILassert_throws_dom: "::marker *" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::placeholder" should be a valid selectorFAILCannot destructure 'undefined' value
"*::placeholder" should be a valid selectorFAILCannot destructure 'undefined' value
"foo.bar[baz]::placeholder" should be a valid selectorFAILCannot destructure 'undefined' value
"::placeholder *" should be an invalid selectorFAILassert_throws_dom: "::placeholder *" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::file-selector-button" should be a valid selectorFAILCannot destructure 'undefined' value
"::file-selector-button:hover" should be a valid selectorFAIL"::file-selector-button:hover" is not a valid selector
"::file-selector-button:focus" should be a valid selectorFAIL"::file-selector-button:focus" is not a valid selector
"::file-selector-button:active" should be a valid selectorFAIL"::file-selector-button:active" is not a valid selector
"::file-selector-button:is(:hover)" should be a valid selectorFAILCannot destructure 'undefined' value
"::file-selector-button::before" should be an invalid selectorFAILassert_throws_dom: "::file-selector-button::before" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::file-selector-button#id" should be an invalid selectorFAILassert_throws_dom: "::file-selector-button#id" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::file-selector-button#class" should be an invalid selectorFAILassert_throws_dom: "::file-selector-button#class" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::file-selector-button:host" should be an invalid selectorFAILassert_throws_dom: "::file-selector-button:host" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::before::before" should be an invalid selectorFAILassert_throws_dom: "::before::before" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::after::before" should be an invalid selectorFAILassert_throws_dom: "::after::before" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::marker::before" should be an invalid selectorFAILassert_throws_dom: "::marker::before" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::placeholder::before" should be an invalid selectorFAILassert_throws_dom: "::placeholder::before" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::before::after" should be an invalid selectorFAILassert_throws_dom: "::before::after" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::after::after" should be an invalid selectorFAILassert_throws_dom: "::after::after" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::marker::after" should be an invalid selectorFAILassert_throws_dom: "::marker::after" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::placeholder::after" should be an invalid selectorFAILassert_throws_dom: "::placeholder::after" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::before::marker" should be a valid selectorFAIL"::before::marker" is not a valid selector
"::after::marker" should be a valid selectorFAIL"::after::marker" is not a valid selector
"::marker::marker" should be an invalid selectorFAILassert_throws_dom: "::marker::marker" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::placeholder::marker" should be an invalid selectorFAILassert_throws_dom: "::placeholder::marker" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::before::placeholder" should be an invalid selectorFAILassert_throws_dom: "::before::placeholder" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::after::placeholder" should be an invalid selectorFAILassert_throws_dom: "::after::placeholder" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::marker::placeholder" should be an invalid selectorFAILassert_throws_dom: "::marker::placeholder" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12
"::placeholder::placeholder" should be an invalid selectorFAILassert_throws_dom: "::placeholder::placeholder" should throw in insertRule function "() => sheet.insertRule(selector + "{}")" threw object "TypeError: cannot convert 'null' or 'undefined' to object" that is not a DOMException 12: property "code" is equal to undefined, expected 12

/css/css-pseudo/parsing/tree-abiding-pseudo-elements.html

<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Pseudo-Elements Test: Parsing tree-abiding pseudo-elements</title>
<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#treelike">
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
<meta name="assert" content="This test checks the validity of various selectors containing tree-abiding pseudo-elements." />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<script>
// Generated content pseudo-elements
test_valid_selector("::before");
test_valid_selector("*::before", "::before");
test_valid_selector("foo.bar[baz]::before");
test_invalid_selector("::before *");

test_valid_selector("::after");
test_valid_selector("*::after", "::after");
test_valid_selector("foo.bar[baz]::after");
test_invalid_selector("::after *");

// List marker pseudo-element
test_valid_selector("::marker");
test_valid_selector("*::marker", "::marker");
test_valid_selector("foo.bar[baz]::marker");
test_invalid_selector("::marker *");

// Placeholder input pseudo-element
test_valid_selector("::placeholder");
test_valid_selector("*::placeholder", "::placeholder");
test_valid_selector("foo.bar[baz]::placeholder");
test_invalid_selector("::placeholder *");

// ::file-selector-button
test_valid_selector("::file-selector-button");
test_valid_selector("::file-selector-button:hover");
test_valid_selector("::file-selector-button:focus");
test_valid_selector("::file-selector-button:active");
test_valid_selector("::file-selector-button:is(:hover)");

test_invalid_selector("::file-selector-button::before");
test_invalid_selector("::file-selector-button#id");
test_invalid_selector("::file-selector-button#class");
test_invalid_selector("::file-selector-button:host");

// Combinations of the above
test_invalid_selector("::before::before");
test_invalid_selector("::after::before");
test_invalid_selector("::marker::before");
test_invalid_selector("::placeholder::before");

test_invalid_selector("::before::after");
test_invalid_selector("::after::after");
test_invalid_selector("::marker::after");
test_invalid_selector("::placeholder::after");

test_valid_selector("::before::marker");
test_valid_selector("::after::marker");
test_invalid_selector("::marker::marker");
test_invalid_selector("::placeholder::marker");

test_invalid_selector("::before::placeholder");
test_invalid_selector("::after::placeholder");
test_invalid_selector("::marker::placeholder");
test_invalid_selector("::placeholder::placeholder");
</script>