[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