<!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);
          if (accessibilityController.platformName == "atk")
              debug("secondChild.title is " + secondChild.title);
          else
              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>
