<!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 marker1 = item1.childAtIndex(0);
    var item2 = list.childAtIndex(1);
    var marker2 = item2.childAtIndex(0);
    var paragraph = item2.childAtIndex(1);

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

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