[webkit-changes] [WebKit/WebKit] 6bad13: AX: Slotted elements inside dialog and aria-modal ...

Tyler Wilcock noreply at github.com
Mon May 1 14:57:57 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6bad1368d570fc5da254bf01d97d7032c44d272d
      https://github.com/WebKit/WebKit/commit/6bad1368d570fc5da254bf01d97d7032c44d272d
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-05-01 (Mon, 01 May 2023)

  Changed paths:
    A LayoutTests/accessibility/dialog-slotted-content-expected.txt
    A LayoutTests/accessibility/dialog-slotted-content.html
    A LayoutTests/platform/glib/accessibility/dialog-slotted-content-expected.txt
    M LayoutTests/platform/ios/TestExpectations
    A LayoutTests/platform/ios/accessibility/dialog-slotted-content-expected.txt
    M LayoutTests/resources/accessibility-helper.js
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilityRenderObject.h

  Log Message:
  -----------
  AX: Slotted elements inside dialog and aria-modal are not accessible
https://bugs.webkit.org/show_bug.cgi?id=256141
rdar://problem/108704582

Reviewed by Chris Fleizach.

AccessibilityObject::isModalDescendant did not account for slotted
elements (because it called Node::isDescendantOrShadowDescendantOf
which does not account for them).

Fix this by iterating the composed tree in search for the modal node, as
the composed tree includes shadow hosts, slots, etc.

This patch also includes a drive-by fix to make setting selected rows
work for display:contents elements (though upon doing this I realized
it's probably broken for non-display:contents elements, too —
needs more work in a future patch).

* LayoutTests/accessibility/dialog-slotted-content-expected.txt: Added.
* LayoutTests/accessibility/dialog-slotted-content.html: Added.
* LayoutTests/platform/ios/TestExpectations:
Enable new test.
* LayoutTests/platform/ios/accessibility/dialog-slotted-content-expected.txt: Added.
* LayoutTests/resources/accessibility-helper.js:
(dumpAccessibilityTree):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isModalDescendant const):
(WebCore::AccessibilityObject::setSelectedRows):
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::setValue):
(WebCore::AccessibilityRenderObject::setSelectedRows): Deleted.
* Source/WebCore/accessibility/AccessibilityRenderObject.h:

Canonical link: https://commits.webkit.org/263561@main




More information about the webkit-changes mailing list