<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body id="body">
<ul>
<li>plain text</li>
<li><p>text in a paragraph</p></li>
</ul>
<p id="description"></p>
<div id="console"></div>
<script>
description("This tests a list item is always exposed regardless of having inline children or not.");

if (window.testRunner) {
  testRunner.dumpAsText();

  if (window.accessibilityController) {

    document.getElementById("body").focus();
    var webArea = accessibilityController.focusedElement;

    var list = webArea.childAtIndex(0);
    var item1 = list.childAtIndex(0);
    var item2 = list.childAtIndex(1);
    var paragraph = item2.childAtIndex(0);

    shouldBe("list.role", "'AXRole: AXList'");
    shouldBe("item1.role", "'AXRole: AXListItem'");
    shouldBe("item2.role", "'AXRole: AXListItem'");
    shouldBe("paragraph.role", "'AXRole: AXParagraph'");
  }
}

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