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

<input type="text" id="input" value="Value">

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

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

<script>

    description("Demonstrates that accessible inline text boxes can be found within an input type=text.");

    if (window.accessibilityController) {

        function findAllDescendantsWithRole(axObject, role) {
            if (axObject.role == role)
                return [axObject];
            var result = [];
            for (var i = 0; i < axObject.childrenCount; i++)
                result = result.concat(findAllDescendantsWithRole(axObject.childAtIndex(i), role));
            return result;
        }

        var axInput = accessibilityController.accessibleElementById('input');
        var axDiv = axInput.childAtIndex(0);
        var axStaticText = axDiv.childAtIndex(0);
        var axInlineTextBox = axStaticText.childAtIndex(0);
        shouldBe("axInlineTextBox.role", "'AXRole: AXInlineTextBox'");
        shouldBe("axInlineTextBox.name", "'Value'");
    }
</script>

</body>
</html>
