Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c24f056ed7c169e94457c1d267131a42790a29a4
      
https://github.com/WebKit/WebKit/commit/c24f056ed7c169e94457c1d267131a42790a29a4
  Author: Joshua Hoffman <jhoffma...@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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to