Status: FAIL | Duration: 64ms | Subtests: 2/5 | Open test on wpt.live | wpt.fyi
Data from commit:
1884860 Copy-on-write style attribute blocks that are in the rule tree (#831) (2026-09-02)
| Subtest | Status | Message |
|---|---|---|
| Custom properties specified on the node exposed when enumerating computed style. | FAIL | assert_equals: expected (string) "50px" but got (undefined) undefined |
| Inherited custom properties specified on the parent exposed when enumerating computed style. | FAIL | assert_equals: expected (string) "parent-A" but got (undefined) undefined |
| Unspecified properties with initial values exposed when enumerating computed style. | FAIL | assert_equals: expected (string) "20px" but got (undefined) undefined |
| Non-inherited custom properties specified on the parent without initial values not exposed when enumerating computed style. | PASS | |
| Unspecified properties without initial values not exposed when enumerating computed style. | PASS |
/css/css-properties-values-api/get-computed-style-enumeration.html
<!DOCTYPE html> <link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/#at-property-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @property --inherited-length-1 { syntax: "<length>"; inherits: true; initial-value: 10px; } @property --inherited-length-2 { syntax: "<length>"; inherits: true; initial-value: 20px; } @property --non-inherited-length-1 { syntax: "<length>"; inherits: false; initial-value: 30px; } @property --non-inherited-length-2 { syntax: "<length>"; inherits: false; initial-value: 40px; } @property --inherited-no-initial-value-1 { syntax: "*"; inherits: true; } @property --inherited-no-initial-value-2 { syntax: "*"; inherits: true; } @property --inherited-no-initial-value-3 { syntax: "*"; inherits: true; } @property --non-inherited-no-initial-value-1 { syntax: "*"; inherits: false; } @property --non-inherited-no-initial-value-2 { syntax: "*"; inherits: false; } @property --non-inherited-no-initial-value-3 { syntax: "*"; inherits: false; } #parent { --inherited-no-initial-value-2: parent-A; --non-inherited-no-initial-value-2: parent-B; --non-registered-property-2: parent-C; } #node { --inherited-length-1: 50px; --non-inherited-length-1: 60px; --inherited-no-initial-value-1: child-A; --non-inherited-no-initial-value-1: child-B; --non-registered-property-1: child-C; } </style> <div id="parent"><div id="node"></div></div> <script> let style = window.getComputedStyle(document.getElementById("node")); let properties = new Map(); Array.from(style).filter(name => name.startsWith("--")) .forEach(name => properties.set(name, style.getPropertyValue(name))); test(() => { assert_equals(properties.get("--inherited-length-1"), "50px"); assert_equals(properties.get("--non-inherited-length-1"), "60px"); assert_equals(properties.get("--inherited-no-initial-value-1"), "child-A"); assert_equals(properties.get("--non-inherited-no-initial-value-1"), "child-B"); assert_equals(properties.get("--non-registered-property-1"), "child-C"); }, "Custom properties specified on the node exposed when enumerating computed style."); test(() => { assert_equals(properties.get("--inherited-no-initial-value-2"), "parent-A"); assert_equals(properties.get("--non-registered-property-2"), "parent-C"); }, "Inherited custom properties specified on the parent exposed when enumerating computed style."); test(() => { assert_equals(properties.get("--inherited-length-2"), "20px"); assert_equals(properties.get("--non-inherited-length-2"), "40px"); }, "Unspecified properties with initial values exposed when enumerating computed style."); test(() => { assert_false(properties.has("--non-inherited-no-initial-value-2")); }, "Non-inherited custom properties specified on the parent without initial values not exposed when enumerating computed style."); test(() => { assert_false(properties.has("--inherited-no-initial-value-3"), "inherited"); assert_false(properties.has("--non-inherited-no-initial-value-3"), "non-inherited"); }, "Unspecified properties without initial values not exposed when enumerating computed style."); </script>