blob: 508fbf48035ffdff71c1e022516477fc72b21ee0 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body id="body" onload="runTest()">
<fieldset>
<div>
<input id="1">
<label for="1">1</label>
</div>
<div>
<input id="2">
<label for="2">2</label>
</div>
</fieldset>
<script>
description("This tests that selection changes as a result of advancing focus.");
jsTestIsAsync = true;
var webArea = 0;
var tabCharacter = "\t";
function notificationCallback(notification, userInfo) {
if (notification == "AXSelectedTextChanged" || notification == "AXFocusChanged")
window.promise.resolve();
}
function runTest() {
if (!window.accessibilityController) {
debug("window.accessibilityController is not present");
finishJSTest();
return;
}
runFirstTabMoveTest();
}
function runFirstTabMoveTest() {
testRunner.overridePreference("WebKitTabToLinksPreferenceKey", 1);
accessibilityController.enableEnhancedAccessibility(true);
webArea = accessibilityController.rootElement.childAtIndex(0);
webArea.setBoolAttributeValue("AXCaretBrowsingEnabled", true)
shouldBeTrue("webArea.addNotificationListener(notificationCallback)");
evalAndLog("eventSender.keyDown(tabCharacter);");
window.promise = new Promise(function(resolve, reject) {
setTimeout(() => {
runTakeFocusTest();
}, 0);
});
}
function runTakeFocusTest() {
debug('');
shouldBeTrue("accessibilityController.accessibleElementById(\"1\").isFocusable");
evalAndLog("accessibilityController.accessibleElementById(\"1\").takeFocus()");
window.promise = new Promise(function(resolve, reject) {
setTimeout(() => {
runSecondTabMoveTest();
}, 0);
});
}
function runSecondTabMoveTest() {
debug('');
evalAndLog("eventSender.keyDown(tabCharacter)");
window.promise = new Promise(function(resolve, reject) {
setTimeout(() => {
webArea.removeNotificationListener();
finishJSTest();
}, 0);
});
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>