Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d096a5f0a52e23cacff9767a14b77eca1932cadc
      
https://github.com/WebKit/WebKit/commit/d096a5f0a52e23cacff9767a14b77eca1932cadc
  Author: Andres Gonzalez <[email protected]>
  Date:   2023-10-25 (Wed, 25 Oct 2023)

  Changed paths:
    M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
    M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h
    M 
Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm

  Log Message:
  -----------
  AX: AccessibilityController::addNotificationListener fails to properly 
install a listener if rootElement() has not been called.
https://bugs.webkit.org/show_bug.cgi?id=263678
<rdar://problem/117488670>

Reviewed by Tyler Wilcock.

The problem happens because addNotificationListener does not call 
AXObjectCache::accessibilityEnable, unlike rootElement and focusedElement. So 
if a test tries to install an AX notification listener before calling either 
rootElement or focusedElement, the callback function will never be called 
because accessibility hasn't been enabled. Many tests worked around this bug by 
calling either rootElement or focusedElement directly or through 
accessibleElementById before installing a listener. This patch fixes the 
problem by properly enabling accessibility when an AX notification listener is 
installed.

* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKAccessibilityEnable):
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:
(-[AccessibilityNotificationHandler setCallback:]):

Canonical link: https://commits.webkit.org/269796@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to