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

Reply via email to