[webkit-changes] [WebKit/WebKit] f49113: AX: Properly expose lists that have display:conten...

Tyler Wilcock noreply at github.com
Wed Apr 12 15:13:43 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f49113b35bbd7e2cdd379ca6c6ce68d02110959e
      https://github.com/WebKit/WebKit/commit/f49113b35bbd7e2cdd379ca6c6ce68d02110959e
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-04-12 (Wed, 12 Apr 2023)

  Changed paths:
    A LayoutTests/accessibility/display-contents-list-expected.txt
    A LayoutTests/accessibility/display-contents-list.html
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AccessibilityList.cpp
    M Source/WebCore/accessibility/AccessibilityList.h
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.h
    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: Properly expose lists that have display:contents list items
https://bugs.webkit.org/show_bug.cgi?id=255325
rdar://problem/107924637

Reviewed by Andres Gonzalez.

<div role="list" id="list">
    <li style="display:contents">One</li>
    <li style="display:contents">Two</li>
</div>

Prior to this patch, we didn't expose this as a list because `AccessibilityList::determineAccessibilityRole()`
required renderers for its children which is not valid in the case of display:contents.

This patch also features two other display:contents improvements:

  1. display:contents elements will now be properly ignored when visibility:hidden
  2. AXCoreObject::isLoaded will now do the right thing for display:contents elements

* LayoutTests/accessibility/display-contents-list-expected.txt: Added.
* LayoutTests/accessibility/display-contents-list.html: Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::createFromNode):
(WebCore::AXObjectCache::getOrCreate):
* Source/WebCore/accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::isUnorderedList const):
(WebCore::AccessibilityList::isOrderedList const):
(WebCore::AccessibilityList::isDescriptionList const):
(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers):
(WebCore::AccessibilityList::determineAccessibilityRole):
* Source/WebCore/accessibility/AccessibilityList.h:
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::create):
* Source/WebCore/accessibility/AccessibilityNodeObject.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isLoaded const):
(WebCore::AccessibilityObject::defaultObjectInclusion const):
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::defaultObjectInclusion const):
(WebCore::AccessibilityRenderObject::isLoaded const): Deleted.
* Source/WebCore/accessibility/AccessibilityRenderObject.h:

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




More information about the webkit-changes mailing list