chromium/third_party/blink/web_tests/fast/css/pseudo-required-optional-006.html

<html>
<head>
<title>required/optional CSS pseudoclasses part 6</title>
<style>
 input:optional { background: red; }
 input { background: red; }
 input:required { background: lime; }
</style>
<script language="JavaScript" type="text/javascript">
    function log(message) {
        document.getElementById("console").innerHTML += "<li>"+message+"</li>";
    }

    function test() {
        if (window.testRunner)
            testRunner.dumpAsText();

        v = document.getElementsByName("victim");

        for (i = 0; i < v.length; i++)
            if (document.defaultView.getComputedStyle(v[i], null).getPropertyValue('background-color') == "rgb(0, 255, 0)")
                log("SUCCESS");
            else
                log("FAILURE");
    }
</script>
</head>
<body onload="test()">
<p>All controls should have a green background.</p>
<input type="text" name="victim" required/>
<input type="password" name="victim" required/>
<input type="search" name="victim" required/>
<input type="url" name="victim" required/>
<input type="telephone" name="victim" required/>
<input type="email" name="victim" required/>
<input type="number" name="victim" required/>
<input type="checkbox" name="victim" required/>
<input type="radio" name="victim" required/>
<input type="file" name="victim" required/>

<hr>
<ol id="console"></ol>
</body>
</html>