blob: 76347ae126ab4a242f61492736d2db29d392a64f [file] [log] [blame] [edit]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/accessibility-helper.js"></script>
<script src="../resources/js-test.js"></script>
</head>
<body>
<textarea id="textarea">Foo</textarea>
<script>
window.jsTestIsAsync = true;
var output = "This test ensures accessibility properly responds to dynamic changes in a textarea element's value.\n\n";
// There are a few layouts that happen when the page loads — run the test in window.onload to wait them out before changing
// the textarea value. If we change the textarea value before these layouts occur, we pass the test no matter
// what (even if our implementation is wrong). This is because a top-level children changed notification causes
// the textarea to be re-built with the correct value, making us pass the test on accident.
window.onload = () => {
if (!window.accessibilityController)
return;
var textarea = accessibilityController.accessibleElementById("textarea");
output += `#textarea ${textarea.stringValue}\n`;
setTimeout(async function() {
output += "\nUpdating #textarea value to 'Bar'.\n";
document.getElementById("textarea").value = "Bar";
await waitFor(() => textarea.stringValue.includes("Bar"));
output += `#textarea ${textarea.stringValue}\n`;
debug(output);
finishJSTest();
}, 0);
};
</script>
</body>
</html>