[webkit-changes] [WebKit/WebKit] ca304b: AX: aria-owns attribute does not work as expected ...
Chris Fleizach
noreply at github.com
Mon Apr 3 23:31:50 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ca304bdacc08063359e3c6e8025f47dd906f1dda
https://github.com/WebKit/WebKit/commit/ca304bdacc08063359e3c6e8025f47dd906f1dda
Author: Chris Fleizach <cfleizach at apple.com>
Date: 2023-04-03 (Mon, 03 Apr 2023)
Changed paths:
M LayoutTests/accessibility/aria-controls-expected.txt
M LayoutTests/accessibility/aria-controls.html
M LayoutTests/accessibility/aria-flowto.html
M LayoutTests/accessibility/aria-grid-with-aria-owns-rows.html
A LayoutTests/accessibility/aria-owns-cycles-expected.txt
A LayoutTests/accessibility/aria-owns-cycles.html
M LayoutTests/accessibility/aria-owns-expected.txt
A LayoutTests/accessibility/aria-owns-hierarchy-remap-expected.txt
A LayoutTests/accessibility/aria-owns-hierarchy-remap.html
M LayoutTests/accessibility/aria-owns.html
M LayoutTests/accessibility/element-reflection-ariaactivedescendant-expected.txt
M LayoutTests/accessibility/element-reflection-ariaactivedescendant.html
M LayoutTests/accessibility/element-reflection-ariacontrols-expected.txt
M LayoutTests/accessibility/element-reflection-ariacontrols.html
M LayoutTests/accessibility/element-reflection-ariaflowto-expected.txt
M LayoutTests/accessibility/element-reflection-ariaflowto.html
M LayoutTests/accessibility/element-reflection-ariaowns-expected.txt
M LayoutTests/accessibility/element-reflection-ariaowns.html
M LayoutTests/accessibility/grid-with-aria-owned-cells.html
M LayoutTests/accessibility/mac/aria-tree-activedescendant.html
M LayoutTests/accessibility/mac/aria-treegrid-expected.txt
M LayoutTests/accessibility/mac/aria-treegrid.html
M LayoutTests/accessibility/mac/table-headers-attribute.html
M LayoutTests/accessibility/mac/treeitem-row-delegation-expected.txt
M LayoutTests/accessibility/mac/treeitem-row-delegation.html
M LayoutTests/accessibility/svg-labelledby-expected.txt
M LayoutTests/accessibility/svg-labelledby.html
M LayoutTests/accessibility/text-alternative-calculation-hidden-nodes-expected.txt
M LayoutTests/accessibility/text-alternative-calculation-hidden-nodes.html
M LayoutTests/platform/glib/accessibility/text-alternative-calculation-hidden-nodes-expected.txt
M LayoutTests/platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt
M LayoutTests/platform/mac/accessibility/aria-controls-expected.txt
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
M Source/WebCore/accessibility/AccessibilityNodeObject.h
M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
M Source/WebCore/dom/Element.cpp
M Source/WebCore/page/LocalFrameView.cpp
Log Message:
-----------
AX: aria-owns attribute does not work as expected for role radio
https://bugs.webkit.org/show_bug.cgi?id=151498
rdar://75885927
Reviewed by Tyler Wilcock.
https://www.w3.org/TR/wai-aria-1.1/#aria-owns
ARIA specifies that if aria-owns is used we need to change the parent child hierarchy to match.
If there are additional DOM children, aria-owns get ordered after those elements.
To make this work, had to accomplish the following:
1) Change parentObject to reflect aria owner.
2) Allow siblings with different owner parents to be processed.
3) Process owned children after all the other children.
4) Clear out the old owner relations when a new owner is set.
5) Ensure we have a way to avoid cycles.
6) Make scrollBar updates deferrable, so that we wouldn't trigger a chain reaction and cache data too early before layout in some tests.
7) Update relations tree after element reflection runs and the element map is updated.
8) Make many more tests asynchronous
* LayoutTests/accessibility/aria-owns-hierarchy-remap-expected.txt: Added.
* LayoutTests/accessibility/aria-owns-hierarchy-remap.html: Added.
* LayoutTests/accessibility/aria-owns-cycles-expected.txt: Added.
* LayoutTests/accessibility/aria-owns-cycles.html: Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::addRelation):
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::updatedOwnedChildren):
(WebCore::AccessibilityNodeObject::addChildren):
* Source/WebCore/accessibility/AccessibilityNodeObject.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::insertChild):
* Source/WebCore/accessibility/AccessibilityObjectInterface.h:
(WebCore::Accessibility::findAncestor):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addChildren):
Canonical link: https://commits.webkit.org/262566@main
More information about the webkit-changes
mailing list