<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test-pre.js"></script>
<script src="../resources/accessibility-helper.js"></script>
</head>
<body>
<div id="content">
    <p>Some <a href="#">focusable content</a> before the application widgets.</p>
    <ul role="toolbar">
    <li><a role="button" href="#" id="get"><span>Get New Mail</span></a></li>
    <li><a role="button" href="#" id="com"><span>Compose New Message</span></a></li>
    <li><a role="button" href="#" id="rep" aria-labelledby="rep item5"><span>Reply</span></a></li>
    <li><a role="button" href="#" id="all" aria-labelledby="all item5"><span>Reply All</span></a></li>
    <li><a role="button" href="#" id="for" aria-labelledby="for item5"><span>Forward</span></a></li>
    <li><a role="button" href="#" id="del" aria-labelledby="del item5"><span>Delete</span></a></li>
</ul>

<ul role="listbox">
  <li id="item4" role="listitem" tabindex="-1" class="">Item Four</li>
  <li id="item5" role="listitem" tabindex="-1" class="">Item Five</li>
  <li id="item6" role="listitem" tabindex="0" class="selected" aria-selected="true">Item Six</li>
  <li id="item7" role="listitem" tabindex="-1">Item Seven</li>
</ul>

</div>
<p id="description"></p>
<div id="console"></div>
<script>
        description("This tests that aria-labelledby does not append all sibling to an ARIA name");

        if (window.accessibilityController) {
            var labeledItem = document.getElementById("rep").focus();
            var axButton = accessibilityController.focusedElement;
            shouldBeEqualToString("platformValueForW3CName(axButton)", "Reply Item Five");

            document.getElementById("content").style.visibility = "hidden";
        }
</script>
<script src="../resources/js-test-post.js"></script>
</body>
</html>
