wpt / css / css-variables / variable-created-element.html

Status: PASS | Duration: 47ms | Subtests: 3/3 | 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)

SubtestStatusMessage
Specified variable value appearing in a created element's inline style should work once spliced into the creating documentPASS
Computed variable value appearing in a created element's inline style should work once spliced into the creating documentPASS
Variable reference appearing in a created element's inline style should work once spliced into the creating documentPASS

/css/css-variables/variable-created-element.html

<!DOCTYPE html>
<html>
<head>
    <title>Variable on created element</title>

    <meta rel="author" title="Kevin Babbitt">
    <meta rel="author" title="Greg Whitworth">
    <link rel="author" title="Microsoft Corporation" href="http://microsoft.com" />
    <!-- This is not directly stated in the spec, but still worth testing to ensure it works -->
    <link rel="help" href="http://www.w3.org/TR/css-variables-1/#defining-variables">

    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
</head>
<body>
    <script type="text/javascript">
        "use strict";

        var newDiv = document.createElement("div");
        newDiv.appendChild(document.createTextNode("This text should be green."));
        newDiv.setAttribute("id", "target");
        newDiv.setAttribute("style", "--c: rgb(0, 136, 0); color: var(--c)");
        document.body.insertBefore(newDiv, document.body.firstChild);

        test( function () {
            assert_equals(document.getElementById("target").style.getPropertyValue("--c").trim(), "rgb(0, 136, 0)");
        }, "Specified variable value appearing in a created element's inline style should work once spliced into the creating document");

        test( function () {
            assert_equals(window.getComputedStyle(document.getElementById("target")).getPropertyValue("--c").trim(), "rgb(0, 136, 0)");
        }, "Computed variable value appearing in a created element's inline style should work once spliced into the creating document");

        test( function () {
            assert_equals(window.getComputedStyle(document.getElementById("target")).getPropertyValue("color").trim(), "rgb(0, 136, 0)");
        }, "Variable reference appearing in a created element's inline style should work once spliced into the creating document");

    </script>
</body>
</html>