Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ef43e42c5970c6e8ee6423edf077d79829b00867
https://github.com/WebKit/WebKit/commit/ef43e42c5970c6e8ee6423edf077d79829b00867
Author: Joshua Hoffman <[email protected]>
Date: 2023-11-16 (Thu, 16 Nov 2023)
Changed paths:
M Source/WebCore/accessibility/AXCoreObject.cpp
M Source/WebCore/accessibility/AXCoreObject.h
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm
Log Message:
-----------
accAX: Cache accessibilityText to serve Title, Description, Help Text
attributes off of the main thread
https://bugs.webkit.org/show_bug.cgi?id=264642
rdar://118255218
Reviewed by Tyler Wilcock.
When the title, description, or help text attributes are requested for an AX
element for the first time,
they are currently served on the main thread. To reduce this main thread
dependency, this patch lazily
caches accessibilityText instead of the three attributes individually.
Caching accessibilityText allows us to compute the values for title,
description, and help text on the
AX thread. This also allows us to move the implementations for these methods to
AXCoreObject, so that
they can be shared between the live and isolated trees. We also benefit from
caching AccessibilityText
by eliminating the redundant work within title, description, and help text
separately.
Our old implementation of titleAttributeValue used textUnderElement() for
calculating the title
of summary elements. We do not cache this, so instead, the implementation of
visibleText was
modified to expose summary's visible text.
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::isVisibleText):
(WebCore::isDescriptiveText):
(WebCore::AXCoreObject::descriptionAttributeValue const):
(WebCore::AXCoreObject::titleAttributeValue const):
(WebCore::AXCoreObject::helpTextAttributeValue const):
* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::AccessibilityText::AccessibilityText):
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::visibleText const):
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityText::AccessibilityText): Deleted.
* Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm:
(WebCore::isVisibleText): Deleted.
(WebCore::isDescriptiveText): Deleted.
(WebCore::AccessibilityObject::descriptionAttributeValue const): Deleted.
(WebCore::AccessibilityObject::titleAttributeValue const): Deleted.
(WebCore::AccessibilityObject::helpTextAttributeValue const): Deleted.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::fileUploadButtonReturnsValueInTitle const):
(WebCore::AXIsolatedObject::getOrRetrievePropertyValue):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:
(WebCore::AXIsolatedObject::descriptionAttributeValue const): Deleted.
(WebCore::AXIsolatedObject::helpTextAttributeValue const): Deleted.
(WebCore::AXIsolatedObject::titleAttributeValue const): Deleted.
Canonical link: https://commits.webkit.org/270860@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes