Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a36f0d120d303e9829d17eb394a29c5769ebecfb
https://github.com/WebKit/WebKit/commit/a36f0d120d303e9829d17eb394a29c5769ebecfb
Author: Andres Gonzalez <[email protected]>
Date: 2023-09-01 (Fri, 01 Sep 2023)
Changed paths:
M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
Log Message:
-----------
AX: Sometimes web content becomes inaccessible to VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=261006
rdar://113994918
Reviewed by Tyler Wilcock.
The problem is caused by the following sequence of events:
1. An AXObjectCache and AXIsolatedTree exist for the current page.
2. When the page is reloaded, the cache is destroyed and the isolated tree
ActivityState is set to an empty set. The isolated tree is also queued to be
destroyed.
3. VoiceOver queries for the focus off the main thread, but no isolated tree
with focus is found sin the ActivityState is now empty or the tree was
completely removed at that point.
4. A new AXObjectcache is created, but no new isolated object is created
because this new AXObjectCache does not receive any request for the focus,
which is one of the triggers of creating a new isolated tree.
The solution in this patch is to dispatch to the main thread the request for
the focus in this scenario, which will result in the creation of a new isolated
tree.
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::accessibilityFocusedUIElement):
Canonical link: https://commits.webkit.org/267562@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes