Bug 253224

Summary: Add mechanism to compute renderer offsets ignoring scrolling
Product: WebKit Reporter: Tyler Wilcock <tyler_w>
Component: AccessibilityAssignee: Tyler Wilcock <tyler_w>
Status: NEW    
Severity: Normal CC: aboxhall, andresg_22, apinheiro, cdumez, cfleizach, changseok, cmarcelo, dino, dmazzoni, esprehn+autocc, ews-watchlist, fmalita, fred.wang, glenn, gyuyoung.kim, jcraig, jdiggs, kangil.han, kondapallykalyan, mmaxfield, pdr, sabouhallawa, samuel_white, schenney, sergio, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch ews-feeder: commit-queue-

Tyler Wilcock
Reported 2023-03-01 22:04:51 PST
Soon, support will be added to resolve accessibility object frames off the main-thread. To avoid the need to recalculate the frame of every object every time a scroll happens, we need to be able to compute renderer position offsets that exclude scroll offsets.
Attachments
Patch (110.31 KB, patch)
2023-03-01 22:07 PST, Tyler Wilcock
no flags
Patch (109.36 KB, patch)
2023-03-04 00:34 PST, Tyler Wilcock
ews-feeder: commit-queue-
Radar WebKit Bug Importer
Comment 1 2023-03-01 22:05:00 PST
Tyler Wilcock
Comment 2 2023-03-01 22:07:05 PST
Andres Gonzalez
Comment 3 2023-03-02 12:59:39 PST
(In reply to Tyler Wilcock from comment #2) > Created attachment 465256 [details] > Patch --- a/Source/WebCore/accessibility/AccessibilityObjectInterface.h +++ b/Source/WebCore/accessibility/AccessibilityObjectInterface.h - virtual LayoutRect boundingBoxRect() const = 0; + virtual LayoutRect boundingBoxRect(OptionSet<MapCoordinatesMode> = { }) const = 0; Why do we need to expose this in the AXCoreObject interface? I would think that this is only relevant in the AccessibilityRenderObject class hierarchy, maybe in AccessibilityNodeObject, but don't think it has to be all the way to the interface and thus to the AXIsolatedObjects.
Tyler Wilcock
Comment 4 2023-03-02 14:08:53 PST
(In reply to Andres Gonzalez from comment #3) > (In reply to Tyler Wilcock from comment #2) > > Created attachment 465256 [details] > > Patch > > --- a/Source/WebCore/accessibility/AccessibilityObjectInterface.h > +++ b/Source/WebCore/accessibility/AccessibilityObjectInterface.h > > - virtual LayoutRect boundingBoxRect() const = 0; > + virtual LayoutRect boundingBoxRect(OptionSet<MapCoordinatesMode> = { }) > const = 0; > > Why do we need to expose this in the AXCoreObject interface? I would think > that this is only relevant in the AccessibilityRenderObject class hierarchy, > maybe in AccessibilityNodeObject, but don't think it has to be all the way > to the interface and thus to the AXIsolatedObjects. We don't :) my larger patch actually moved boundingBoxRect to be virtual on AccessibilityObject rather than AXCoreObject. But I wanted to make this patch as straight-forward and atomic as possible, so I excluded that change from this patch.
Tyler Wilcock
Comment 5 2023-03-04 00:34:27 PST
Note You need to log in before you can comment on or make changes to this bug.