<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script>
var successfullyParsed = false;
if (window.testRunner)
   testRunner.dumpAsText();
</script>
</head>
<body>

<input type="text" placeholder="place" id="pass" value='val'>


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

<script>

    description("This test that a text field with a place holder returns the placeholder as expected.");

    if (window.accessibilityController) {

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

        shouldBe("pass.stringAttributeValue('AXPlaceholderValue')", "'place'");
        shouldBe("pass.stringValue", "'AXValue: val'");
    }

    successfullyParsed = true;
</script>

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

</body>
</html>

