blob: 3f373c9f2ca6018f3f136ff5de96071f8b179e8b [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 include AXTextSelectionChangedFocus flag.");
jsTestIsAsync = true;
var webArea = 0;
var axTextFocusChangeOne = 0;
var axTextFocusChangeTwo = 0;
var axTextFocusChangeThree = 0;
var axTextFocusChangeFour = 0;
var tabCharacter = "\t";
function notificationCallback(notification, userInfo) {
if (notification == "AXSelectedTextChanged") {
debug("Received AXSelectedTextChanged");
window.userInfo = userInfo;
shouldBeTrue("userInfo[\"AXTextSelectionChangedFocus\"]");
} else if (notification == "AXFocusChanged")
debug("Received AXFocusChanged");
}
function runTest() {
if (window.accessibilityController) {
testRunner.overridePreference("WebKitTabToLinksPreferenceKey", 1);
accessibilityController.enableEnhancedAccessibility(true);
webArea = accessibilityController.rootElement.childAtIndex(0);
webArea.setBoolAttributeValue("AXCaretBrowsingEnabled", true)
shouldBeTrue("webArea.addNotificationListener(notificationCallback)");
evalAndLog("eventSender.keyDown(tabCharacter);");
setTimeout(runTakeFocusTest, 0);
} else {
debug("window.accessibilityController is not present");
finishJSTest();
}
}
function runTakeFocusTest() {
debug('');
shouldBeTrue("accessibilityController.accessibleElementById(\"1\").isFocusable");
evalAndLog("accessibilityController.accessibleElementById(\"1\").takeFocus()");
setTimeout(runSecondTabMoveTest, 0);
}
function runSecondTabMoveTest() {
debug('');
evalAndLog("eventSender.keyDown(tabCharacter)");
setTimeout(() => {
webArea.removeNotificationListener();
finishJSTest();
}, 0);
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>