[webkit-changes] [WebKit/WebKit] c24f05: AX: optimize accessibilityIsIgnored computation

Joshua Hoffman noreply at github.com
Fri Oct 13 12:04:00 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c24f056ed7c169e94457c1d267131a42790a29a4
      https://github.com/WebKit/WebKit/commit/c24f056ed7c169e94457c1d267131a42790a29a4
  Author: Joshua Hoffman <jhoffman23 at apple.com>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp

  Log Message:
  -----------
  AX: optimize accessibilityIsIgnored computation
https://bugs.webkit.org/show_bug.cgi?id=262733
rdar://problem/116541936

Reviewed by Tyler Wilcock.

We currently traverse the ancestor hierarchy three times to compute each of
isAXHidden, isPresentationalChildOfAriaRole, and isDescendantOfBarrenParent
—all of which we gather to compute accessibility is ignored.

This patch combines those ancestor traversals into one, using
generateIsIgnoredFromParentData. This saves up to roughly 20% of samples for
accessibilityIsIgnored across various sites.

* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canHaveChildren const):
(WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isARIAHidden const):
(WebCore::AccessibilityObject::isAXHidden const):
(WebCore::AccessibilityObject::defaultObjectInclusion const):
(WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):
(WebCore::AccessibilityObject::isPresentationalChildOfAriaRole const): Deleted.
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::hasImplicitGenericRole const):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

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




More information about the webkit-changes mailing list