<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script>

function removeElement() {
   document.getElementById("h3").parentNode.removeChild(document.getElementById("h3"));
}

</script>
<script src="../resources/js-test-pre.js"></script>
</head>
<body>

<A href="#" tabindex=0 id="link">
<h3 id="h3">asdfasdf</h3>
<img src="asdf.gif" width=100 height=100>
asdfasdf
</a>


<p id="description"></p>
<div id="console"></div>

<script>

    description("When you have elements that are continuations, and one of those elements is removed, the parent chain is not being updated accordingly. This can cause a crash.");

    if (window.accessibilityController) {

        document.getElementById("link").focus();
        var link = accessibilityController.focusedElement;
        link.attributesOfChildren();

        removeElement();

        // should not cause a crash...
        link.attributesOfChildren();
    }

</script>

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