haikuwebkit/LayoutTests/accessibility/keyevents-posted-for-increm...

63 lines
1.8 KiB
HTML
Raw Permalink Normal View History

AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
<html>
<head>
<script src="../resources/js-test-pre.js"></script>
</head>
<body id="body">
<div id="slider"
role="slider"
tabindex="0"
aria-valuemin="0"
aria-valuenow="0"
aria-valuemax="255"
aria-labelledby="idRed"></div>
<p id="description"></p>
<div id="console"></div>
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
<script>
description("This test verifies that the increment/decrement actions post keyboard events that are correct for LTR and orientation.");
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
var keyCount = 0;
function handleKeyDown(event) {
debug("Keycode received: identifier: " + event.keyIdentifier + " key name: " + event.key + " key code: " + event.keyCode);
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
event.preventDefault();
event.stopPropagation();
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
keyCount++;
if (keyCount == 8)
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
finishJSTest();
}
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
if (window.accessibilityController) {
window.jsTestIsAsync = true;
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
document.getElementById("slider").addEventListener('keydown', handleKeyDown);
// Get the parent element.
var axSlider = accessibilityController.accessibleElementById("slider");
debug("Increment/Decrement - LTR");
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
incrementDecrement();
debug("Increment/Decrement - RTL");
window.internals.setUserInterfaceLayoutDirection("RTL");
incrementDecrement();
function incrementDecrement() {
debug("Horizontal orientation");
document.getElementById("slider").setAttribute("aria-orientation", "horizontal");
axSlider.increment();
axSlider.decrement();
debug("Vertical orientation");
document.getElementById("slider").setAttribute("aria-orientation", "vertical");
axSlider.increment();
axSlider.decrement();
}
}
</script>
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement https://bugs.webkit.org/show_bug.cgi?id=213744 Reviewed by Darin Adler. Source/WebCore: In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions that are not handled natively. Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology Test: accessibility/keyevents-posted-for-increment-actions.html accessibility/keyevents-for-increment-actions-with-node-removal.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange): (WebCore::AccessibilityNodeObject::setNodeValue): (WebCore::AccessibilityNodeObject::changeValueByStep): (WebCore::AccessibilityNodeObject::changeValueByPercent): * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityObjectInterface.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setValue): * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): * accessibility/AccessibilitySlider.h: * accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::setValue): * accessibility/isolatedtree/AXIsolatedObject.h: LayoutTests: * accessibility/keyevents-posted-for-increment-actions-expected.txt: Added. * accessibility/keyevents-posted-for-increment-actions.html: Added. * accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added. * accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added. Canonical link: https://commits.webkit.org/226666@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-01 23:35:43 +00:00
<script src="../resources/js-test-post.js"></script>
</body>
</html>