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

<div role="listbox">
<div role="option">option 1</div>
<div role="option" aria-label="label 2">option 2</div>
</div>

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

<script>

    description("This tests that the aria 'option' role works as expected. That is, it becomes a static text element with no children.");

    if (window.accessibilityController) {

          var body = document.getElementById("body");
          body.focus();

          var listBox = accessibilityController.focusedElement.childAtIndex(0);
          var firstChild = listBox.childAtIndex(0);
          var secondChild = listBox.childAtIndex(1);
          debug("firstChild.role is " + firstChild.role);
          debug("firstChild.title is " + firstChild.title);

          debug("secondChild.role is " + secondChild.role);
          debug("secondChild.description is " + secondChild.description);

          shouldBe("firstChild.childrenCount", "0");
          shouldBe("secondChild.childrenCount", "0");
    }

</script>

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