blob: 44c70e28f2cfe6935f2aad5108643afa8b3bdb0c [file] [log] [blame]
<!DOCTYPE HTML>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<style>
.hideAllContainers .container {
display: none;
}
</style>
<div class="container">
<input id="text1" type="text" placeholder="Placeholder">
</div>
<script>
test(function(t) {
var axTextInput1 = accessibilityController.accessibleElementById("text1");
assert_equals(axTextInput1.name, "Placeholder");
assert_equals(axTextInput1.nameFrom, "placeholder");
assert_equals(axTextInput1.description, "");
assert_equals(axTextInput1.descriptionFrom, "");
}, "Text input uses placeholder as accessible name if that's the only accessible text.");
</script>
<div class="container">
<input id="text2" type="text" aria-label="Label" placeholder="Placeholder">
</div>
<script>
test(function(t) {
var axTextInput2 = accessibilityController.accessibleElementById("text2");
assert_equals(axTextInput2.name, "Label");
assert_equals(axTextInput2.nameFrom, "attribute");
assert_equals(axTextInput2.description, "Placeholder");
assert_equals(axTextInput2.descriptionFrom, "placeholder");
}, "Text input uses placeholder as accessible description if it wasn't used as the accessible name.");
</script>
<div class="container">
<input id="text3" type="text" aria-label="Label" placeholder="Placeholder" aria-describedby="describedby3">
<div id="describedby3">DescribedBy</div>
</div>
<script>
test(function(t) {
var axTextInput3 = accessibilityController.accessibleElementById("text3");
assert_equals(axTextInput3.name, "Label");
assert_equals(axTextInput3.nameFrom, "attribute");
assert_equals(axTextInput3.description, "DescribedBy");
assert_equals(axTextInput3.descriptionFrom, "relatedElement");
}, "aria-describedby overrides placeholder as the accessible description.");
</script>
<div class="container">
<input id="text4" type="text" title="Title">
</div>
<script>
test(function(t) {
var axTextInput4 = accessibilityController.accessibleElementById("text4");
assert_equals(axTextInput4.name, "Title");
assert_equals(axTextInput4.nameFrom, "title");
assert_equals(axTextInput4.description, "");
assert_equals(axTextInput4.descriptionFrom, "");
}, "Text input uses title as accessible name if that's the only accessible text.");
</script>
<div class="container">
<input id="text5" type="text" aria-label="Label" title="Title">
</div>
<script>
test(function(t) {
var axTextInput5 = accessibilityController.accessibleElementById("text5");
assert_equals(axTextInput5.name, "Label");
assert_equals(axTextInput5.nameFrom, "attribute");
assert_equals(axTextInput5.description, "Title");
assert_equals(axTextInput5.descriptionFrom, "attribute");
}, "Text input uses title as accessible description if it wasn't used as the accessible name.");
</script>
<div class="container">
<input id="text6" type="text" aria-label="Label" title="Title" aria-describedby="describedby6">
<div id="describedby6">DescribedBy</div>
</div>
<script>
test(function(t) {
var axTextInput6 = accessibilityController.accessibleElementById("text6");
assert_equals(axTextInput6.name, "Label");
assert_equals(axTextInput6.nameFrom, "attribute");
assert_equals(axTextInput6.description, "DescribedBy");
assert_equals(axTextInput6.descriptionFrom, "relatedElement");
}, "aria-describedby overrides title as the accessible description.");
</script>
<div class="container">
<input id="text7" type="text" aria-label="Label" title="Title" placeholder="Placeholder">
</div>
<script>
test(function(t) {
var axTextInput7 = accessibilityController.accessibleElementById("text7");
assert_equals(axTextInput7.name, "Label");
assert_equals(axTextInput7.nameFrom, "attribute");
assert_equals(axTextInput7.description, "Placeholder");
assert_equals(axTextInput7.descriptionFrom, "placeholder");
}, "placeholder overrides title as the accessible description.");
</script>
<div class="container">
<input id="text8" type="text" aria-describedby="describedby8">
<p id="describedby8">
Described
<br>
By
</p>
</div>
<script>
test(function(t) {
var axTextInput8 = accessibilityController.accessibleElementById("text8");
assert_equals(axTextInput8.name, "");
assert_equals(axTextInput8.nameFrom, "");
assert_equals(axTextInput8.description, "Described By");
assert_equals(axTextInput8.descriptionFrom, "relatedElement");
}, "aria-describedby does not include newlines.");
</script>
<script>
if (window.testRunner)
document.body.className = "hideAllContainers";
</script>