blob: 3cbf480da5e3fb4efa70d240dfe7e5f3675f7d84 [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>
<label for="lowercase">Only use lowercase here</label>
<input id="pattern-input" name="lowercase" type="text" value="foo" pattern="[a-z]+">
<label for="age">Age: (50+ only)</label>
<input id="number-input" name="age" type="number" value="50" min="50">
<script>
var output = "This test ensures we consider inputs to be invalid when they are rendered as such.\n\n";
function expectInvalid(id, expectedValue) {
output += expect(`accessibilityController.accessibleElementById("${id}").stringAttributeValue("AXInvalid")`, `"${expectedValue}"`);
}
if (window.accessibilityController) {
window.jsTestIsAsync = true;
expectInvalid("pattern-input", false);
expectInvalid("number-input", false);
output += "\nMaking inputs invalid.\n";
var gotPatternInputNotification = false;
var gotNumberInputNotification = false;
accessibilityController.addNotificationListener((axElement, notification) => {
if (notification !== "AXInvalidStatusChanged")
return;
if (axElement.domIdentifier === "pattern-input")
gotPatternInputNotification = true;
else if (axElement.domIdentifier === "number-input")
gotNumberInputNotification = true;
if (gotNumberInputNotification && gotPatternInputNotification) {
accessibilityController.removeNotificationListener();
expectInvalid("pattern-input", true);
expectInvalid("number-input", true);
debug(output);
finishJSTest();
}
});
document.getElementById("pattern-input").value = "ABC";
document.getElementById("number-input").value = 5;
}
</script>
</body>
</html>