78 lines
3.3 KiB
HTML
78 lines
3.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script src="resources/accessibility-helper.js"></script>
|
|
</head>
|
|
<body id="body" onkeydown="return keydown();">
|
|
<script>
|
|
function preventKeyboardDOMEventDispatch(webArea) {
|
|
return webArea.boolAttributeValue("AXPreventKeyboardDOMEventDispatch");
|
|
}
|
|
function setPreventKeyboardDOMEventDispatch(webArea, value) {
|
|
webArea.setBoolAttributeValue("AXPreventKeyboardDOMEventDispatch", value);
|
|
}
|
|
function keydown(event) {
|
|
var element = document.getElementById("keydowncount");
|
|
element.innerHTML = parseInt(element.innerHTML) + 1;
|
|
return false;
|
|
}
|
|
function keycount() {
|
|
return document.getElementById("keydowncount").innerHTML;
|
|
}
|
|
</script>
|
|
<div>
|
|
<p>1</p>
|
|
<p>2</p>
|
|
<p id="keydowncount">0<p>
|
|
</div>
|
|
<div id="console"></div>
|
|
<script>
|
|
description("This tests ignoring javascript key handlers that consume key events.");
|
|
if (window.testRunner) {
|
|
|
|
testRunner.dumpAsText();
|
|
|
|
if (window.accessibilityController && window.eventSender) {
|
|
|
|
var webArea = clearSelectionAndFocusOnWebArea();
|
|
accessibilityController.enableEnhancedAccessibility(false);
|
|
shouldBe("accessibilityController.enhancedAccessibilityEnabled", "false");
|
|
setPreventKeyboardDOMEventDispatch(webArea, false);
|
|
shouldBe("preventKeyboardDOMEventDispatch(webArea)", "false");
|
|
|
|
// Arrowing before enabling AX and ignore dom handlers won't move the caret
|
|
shouldBe("elementAtStartMarkerOfSelectedTextMarkerRange(webArea).stringValue", "'AXValue: 1'");
|
|
eventSender.keyDown("rightArrow");
|
|
shouldBe("elementAtStartMarkerOfSelectedTextMarkerRange(webArea).stringValue", "'AXValue: 1'");
|
|
eventSender.keyDown("rightArrow");
|
|
shouldBe("elementAtStartMarkerOfSelectedTextMarkerRange(webArea).stringValue", "'AXValue: 1'");
|
|
|
|
// Validate that the handler received 2 keys events
|
|
shouldBe("keycount()", "'2'");
|
|
|
|
// Enable enhanced accessibility (necessary for accessibility specific selection handling).
|
|
accessibilityController.enableEnhancedAccessibility(true);
|
|
shouldBe("accessibilityController.enhancedAccessibilityEnabled", "true");
|
|
|
|
// Enable IgnoreDOMKeyEventHandlers so that the javascript handler will be skipped
|
|
setPreventKeyboardDOMEventDispatch(webArea, true);
|
|
shouldBe("preventKeyboardDOMEventDispatch(webArea)", "true");
|
|
|
|
shouldBe("elementAtStartMarkerOfSelectedTextMarkerRange(webArea).stringValue", "'AXValue: 1'");
|
|
eventSender.keyDown("rightArrow");
|
|
shouldBe("elementAtStartMarkerOfSelectedTextMarkerRange(webArea).stringValue", "'AXValue: 1'");
|
|
eventSender.keyDown("rightArrow");
|
|
shouldBe("elementAtStartMarkerOfSelectedTextMarkerRange(webArea).stringValue", "'AXValue: 2'");
|
|
|
|
// Validate that the handler didn't receive any more key events
|
|
shouldBe("keycount()", "'2'");
|
|
|
|
setPreventKeyboardDOMEventDispatch(webArea, false);
|
|
}
|
|
}
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|