<html>
    <head>
        <script>
            function test()
            {
                if (window.testRunner)
                    testRunner.dumpAsText();
                document.getElementById('bt').focus();
                if (window.accessibilityController)
                    var test = accessibilityController.focusedElement.stringAttributeValue("aria-activedescendant");
                document.getElementById('bt').click();
            }
        </script>
    </head>
    <body onload="test()">
        This tests that there is no crash if you set an aria-activedescendant attribute to an id of an element that has no renderer.<br>
        <input type="button" id="bt" onclick="this.setAttribute('aria-activedescendant', 'hiddenElement')" value="Use VoiceOver to activate this button, and then navigate to the next element">
        <div id="hiddenElement" style="display:none"></div>
    </body>
</html>
