<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test-pre.js"></script>
</head>
<body>

<div id="group" tabindex="0">

<ul role=textbox style='-webkit-transition: -webkit-transform linear 1117401740208157342s; content: counters(c, ".", disc); '>><keygen autofocus="">><body style='outline-style: ridge; font: normal normal 29266em/9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 Ahem, serif; '>
 
</div>

<p id="description"></p>
<div id="console"></div>
 
<script>
    description("Ensures that this snippet does not lead to a crash. Bug 86029.");

    function walkAccessibilityTree(accessibilityObject) {
        var count = accessibilityObject.childrenCount;
        for (var i = 0; i < count; ++i)
            accessibilityObject.childAtIndex(i);
    }

    if (window.accessibilityController) {

        document.getElementById("group").focus();
        var focusedElement = accessibilityController.focusedElement;
        walkAccessibilityTree(focusedElement);

        document.getElementById('console').innerHTML += "PASS. WebKit did not crash.<br>";
    }
</script>

<script src="../resources/js-test-post.js"></script>
</body>
</html>
