[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