Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0524e64fb276c6bdd8625cec9a5989938fd6fa66
      
https://github.com/WebKit/WebKit/commit/0524e64fb276c6bdd8625cec9a5989938fd6fa66
  Author: Tyler Wilcock <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to