<html>
    <head>
        <script>
            function test()
            {
                if (window.layoutTestController)
                    layoutTestController.dumpAsText();
                document.getElementById('bt').focus();
                if (window.accessibilityController)
                    var test = accessibilityController.focusedElement.attributeValue("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>
