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