66 lines
2.4 KiB
HTML
66 lines
2.4 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script src="../../resources/accessibility-helper.js"></script>
|
|
</head>
|
|
<body id="body">
|
|
|
|
<form>
|
|
<input id="number" type="number"><br>
|
|
</form>
|
|
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
description("This tests that input type='number' exposes the accessibility of it's stepper correctly");
|
|
|
|
if (window.accessibilityController) {
|
|
window.jsTestIsAsync = true;
|
|
document.getElementById("number").focus();
|
|
window.textfield = accessibilityController.accessibleElementById("number");
|
|
|
|
setTimeout(async function() {
|
|
// Verify that the click point is the same as the child.
|
|
shouldBe("textfield.childrenCount", "1");
|
|
|
|
window.incrementor = textfield.childAtIndex(0);
|
|
|
|
shouldBe("incrementor.role", "'AXRole: AXIncrementor'");
|
|
shouldBeTrue("incrementor.width > 0");
|
|
shouldBeTrue("incrementor.height > 0");
|
|
shouldBe("incrementor.childrenCount", "2");
|
|
|
|
shouldBe("incrementor.childAtIndex(0).role", "'AXRole: AXIncrementorArrow'");
|
|
shouldBe("incrementor.childAtIndex(0).subrole", "'AXSubrole: AXIncrementArrow'");
|
|
shouldBeTrue("incrementor.childAtIndex(0).width > 0");
|
|
shouldBeTrue("incrementor.childAtIndex(0).height > 0");
|
|
shouldBeTrue("incrementor.childAtIndex(0).isEnabled");
|
|
|
|
// Increment.
|
|
incrementor.childAtIndex(0).press();
|
|
await waitFor(() => {
|
|
return textfield.stringValue == "AXValue: 1";
|
|
});
|
|
shouldBe("textfield.stringValue", "'AXValue: 1'");
|
|
shouldBe("incrementor.childAtIndex(1).role", "'AXRole: AXIncrementorArrow'");
|
|
shouldBe("incrementor.childAtIndex(1).subrole", "'AXSubrole: AXDecrementArrow'");
|
|
shouldBeTrue("incrementor.childAtIndex(1).width > 0");
|
|
shouldBeTrue("incrementor.childAtIndex(1).height > 0");
|
|
shouldBeTrue("incrementor.childAtIndex(1).isEnabled");
|
|
|
|
// Decrement.
|
|
incrementor.childAtIndex(1).press();
|
|
await waitFor(() => {
|
|
return textfield.stringValue == "AXValue: 0";
|
|
});
|
|
shouldBe("textfield.stringValue", "'AXValue: 0'");
|
|
finishJSTest();
|
|
}, 0);
|
|
}
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|