<html>
<head>
    <script>
    function runTest() {
        if (window.testRunner)
            testRunner.dumpAsText();

        document.getElementById('tom').checked = false;
        document.getElementById('result').innerHTML = 'FAILURE';

        // Simulate an option-tab, which can tab to a radio button with default preference settings. 
        if (window.eventSender)
            eventSender.keyDown('\t', ["altKey"]);
    }
    </script>
</head>
<body onload="runTest()">
    <input id="tom" type="radio" onfocus="document.getElementById('result').innerHTML = 'SUCCESS'" name="joe" checked>
    <p>This tests that you can still focus a radio button after unchecking it by setting its checked property to false.</p>
    <div id="result">TEST NOT RUN</div>
</body>
</html>
