| Summary: | AX: With isolated tree mode enabled, ignored objects sent along with published notifications cannot be queried by AX clients | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Tyler Wilcock <tyler_w> | ||||||||
| Component: | Accessibility | Assignee: | Tyler Wilcock <tyler_w> | ||||||||
| Status: | RESOLVED FIXED | ||||||||||
| Severity: | Normal | CC: | aboxhall, andresg_22, apinheiro, cfleizach, dmazzoni, ews-watchlist, jcraig, jdiggs, samuel_white, webkit-bug-importer | ||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||
| Version: | WebKit Nightly Build | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Attachments: |
|
||||||||||
|
Description
Tyler Wilcock
2022-08-19 18:52:17 PDT
Created attachment 461747 [details]
Patch
Comment on attachment 461747 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=461747&action=review > Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:288 > + NodeChange nodeChange { isolatedObject, nullptr }; Do we have any asserts for null parents that this will hit > Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:450 > +static void createIsolatedObjectForNotificationIfNeeded(AXCoreObject& object, std::optional<PageIdentifier> pageID) ForNorification in the name seems unnecessary > Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:466 > + if (object.accessibilityIsIgnored()) We should check ignored status before doing the work of fetching the tree Created attachment 461750 [details]
Patch
(In reply to chris fleizach from comment #3) > Comment on attachment 461747 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=461747&action=review > > > Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:288 > > + NodeChange nodeChange { isolatedObject, nullptr }; > > Do we have any asserts for null parents that this will hit No, I don't think so. The unconnected isolated object that is created will consider its parent to be the nearest-in-isolated-tree object (which is guaranteed by way of using parentObjectUnignored): https://github.com/WebKit/WebKit/blob/bb5e3d4d63fbf63b8f79347e70a5b09cdd525ca1/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp#L48 So it will return the right parent when queried. That parent will not include this unconnected isolated object in its children, but I think that's fine and expected in this scenario. Fixed your other two comments. Created attachment 461764 [details]
Patch
Committed 253629@main (16a4b06e0306): <https://commits.webkit.org/253629@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 461764 [details]. |