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

<div id="alert" tabindex=0 role="alert">alert role</div>
<div id="alertdialog" tabindex=0 role="alertdialog">alert dialog role</div>
<div id="dialog" tabindex=0 role="dialog">dialog role</div>

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

<script>

    description("This tests that each of these ARIA groups has the right role and subrole.");

    if (window.accessibilityController) {

          // this text field should be required.
          document.getElementById("body").focus();
          var body = accessibilityController.focusedElement;
          shouldBe("body.childAtIndex(0).role", "'AXRole: AXGroup'");
          shouldBe("body.childAtIndex(0).subrole", "'AXSubrole: AXApplicationAlert'");

          shouldBe("body.childAtIndex(1).role", "'AXRole: AXGroup'");
          shouldBe("body.childAtIndex(1).subrole", "'AXSubrole: AXApplicationAlertDialog'");

          shouldBe("body.childAtIndex(2).role", "'AXRole: AXGroup'");
          shouldBe("body.childAtIndex(2).subrole", "'AXSubrole: AXApplicationDialog'");
    }

</script>

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