blob: c56c8f2d82ec47c555893a7449f18167db13e4e6 [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<div>
<input id="text1" type="text" value="Value">
<input id="checkbox1" type="checkbox" checked>
<input id="number1" type="number" value="123">
<input id="radio1" type="radio" checked>
<input id="slider1" type="range" min="1" max="10" value="5">
<input id="submit1" type="submit">
<select id="combobox1"><option>1<option selected>2</select>
<select multiple id="listbox1"><option>1<option selected>2</select>
<textarea id="textarea1">Textarea</textarea>
</div>
<div contentEditable>
<input id="text2" type="text" value="Value">
<input id="checkbox2" type="checkbox" checked>
<input id="number2" type="number" value="123">
<input id="radio2" type="radio" checked>
<input id="slider2" type="range" min="1" max="10" value="5">
<input id="submit2" type="submit">
<select id="combobox2"><option>1<option selected>2</select>
<select multiple id="listbox2"><option>1<option selected>2</select>
<textarea id="textarea2">Textarea</textarea>
</div>
<div id="console"></div>
<script>
description("This tests whether AXValue is writable for various form controls.");
if (window.testRunner && window.accessibilityController) {
window.testRunner.dumpAsText();
function check(id1, id2, expected1) {
debug(id1);
window.element1 = document.getElementById(id1);
element1.focus();
shouldBe("document.activeElement == element1", "true");
window.axElement1 = accessibilityController.focusedElement;
debug(id2);
window.element2 = document.getElementById(id2);
element2.focus();
shouldBe("document.activeElement == element2", "true");
window.axElement2 = accessibilityController.focusedElement;
shouldBe("axElement1.isAttributeSettable('AXValue')", String(expected1));
// If contentEditable, AXValue is always writable.
shouldBe("axElement2.isAttributeSettable('AXValue')", "true");
debug("");
}
// All text-like form controls should have a writable AXValue.
check("text1", "text2", true);
check("number1", "number2", true);
check("textarea1", "textarea2", true);
// A slider can set AXValue.
check("slider1", "slider2", true);
// Other form controls, even toggleable ones, should have a read-only AXValue -
// unless they're inside contentEditable, then everything should have writable AXValue.
check("checkbox1", "checkbox2", false);
check("radio1", "radio2", false);
check("submit1", "submit2", false);
check("combobox1", "combobox2", false);
check("listbox1", "listbox2", false);
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>