[webkit-changes] [WebKit/WebKit] 0524e6: AX: Content editable should not be textbox roles
Tyler Wilcock
noreply at github.com
Sat Nov 18 01:04:16 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0524e64fb276c6bdd8625cec9a5989938fd6fa66
https://github.com/WebKit/WebKit/commit/0524e64fb276c6bdd8625cec9a5989938fd6fa66
Author: Tyler Wilcock <tyler_w at apple.com>
Date: 2023-11-18 (Sat, 18 Nov 2023)
Changed paths:
A LayoutTests/accessibility/content-editable-property-change-expected.txt
A LayoutTests/accessibility/content-editable-property-change.html
M LayoutTests/accessibility/dynamically-unignored-contenteditable-expected.txt
A LayoutTests/accessibility/ios-simulator/content-editable-expected.txt
A LayoutTests/accessibility/ios-simulator/content-editable.html
M LayoutTests/accessibility/mac/active-descendant-with-aria-controls-expected.txt
M LayoutTests/accessibility/mac/relationships-in-frames-expected.txt
M LayoutTests/accessibility/mac/set-value-editable-dispatch-events-expected.txt
M LayoutTests/accessibility/mac/set-value-editable-types-expected.txt
M LayoutTests/accessibility/nested-textareas-value-changed-notifications-expected.txt
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/mac-wk1/TestExpectations
M LayoutTests/platform/mac/accessibility/content-editable-as-textarea-expected.txt
M Source/WebCore/accessibility/AXCoreObject.cpp
M Source/WebCore/accessibility/AXLogger.cpp
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Tools/DumpRenderTree/AccessibilityUIElement.cpp
M Tools/DumpRenderTree/AccessibilityUIElement.h
M Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl
M Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm
M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
M Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp
Log Message:
-----------
AX: Content editable should not be textbox roles
https://bugs.webkit.org/show_bug.cgi?id=257184
rdar://problem/109699222
Reviewed by Chris Fleizach.
We currently expose elements with contenteditable=true as AXTextAreas. However, text areas
cannot have children objects that are exposed to AT (such as tables, lists, etc.).
This patch addresses that by changing the role for contenteditable (which are non-native text
control elements) elements to AXGroup, allowing for its children to be navigated. We still
maintain the edit-ability of these elements however by exposing AXValue as editable.
On iOS, we use traits to expose leaf elements with a non-native text control ancestor as editable
for AT to supply proper context.
Tests have been updated and added to reflect this change.
This patch was authored by Josh Hoffman, built on work started by Chris Fleizach.
* LayoutTests/accessibility/content-editable-property-change-expected.txt: Added.
* LayoutTests/accessibility/content-editable-property-change.html: Added.
* LayoutTests/accessibility/dynamically-unignored-contenteditable-expected.txt:
* LayoutTests/accessibility/ios-simulator/content-editable-expected.txt: Added.
* LayoutTests/accessibility/ios-simulator/content-editable.html: Added.
* LayoutTests/accessibility/mac/active-descendant-with-aria-controls-expected.txt:
* LayoutTests/accessibility/mac/relationships-in-frames-expected.txt:
* LayoutTests/accessibility/mac/set-value-editable-dispatch-events-expected.txt:
* LayoutTests/accessibility/mac/set-value-editable-types-expected.txt:
* LayoutTests/accessibility/nested-textareas-value-changed-notifications-expected.txt:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/glib/accessibility/content-editable-as-textarea-expected.txt:
* LayoutTests/platform/glib/accessibility/dynamically-unignored-contenteditable-expected.txt:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/mac/accessibility/content-editable-as-textarea-expected.txt:
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::isTextControl const):
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateIsolatedTree):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::matchesTextAreaRole const):
(WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isNonNativeTextControl const):
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper accessibilityIsInNonNativeTextControl]):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::isNonNativeTextControl const): Deleted.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperties):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Tools/DumpRenderTree/AccessibilityUIElement.cpp:
(getIsInNonNativeTextControlCallback):
(AccessibilityUIElement::getJSClass):
* Tools/DumpRenderTree/AccessibilityUIElement.h:
* Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::isInNonNativeTextControl const):
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::AccessibilityUIElement::isInNonNativeTextControl const):
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::isInNonNativeTextControl const):
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::isInNonNativeTextControl const):
* Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:
(WTR::AccessibilityUIElement::isInNonNativeTextControl const):
Canonical link: https://commits.webkit.org/270935@main
More information about the webkit-changes
mailing list