[webkit-changes] [WebKit/WebKit] 6c019d: WKWebView steals first responder when focused via ...

Tyler Wilcock noreply at github.com
Fri Feb 17 20:51:54 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6c019d315e832ab46dd62cfa3fc7fb61720c2180
      https://github.com/WebKit/WebKit/commit/6c019d315e832ab46dd62cfa3fc7fb61720c2180
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-02-17 (Fri, 17 Feb 2023)

  Changed paths:
    M LayoutTests/accessibility/ios-simulator/accessibility-make-first-responder-expected.txt
    M LayoutTests/accessibility/ios-simulator/accessibility-make-first-responder.html
    M Source/WebCore/accessibility/AccessibilityObject.cpp

  Log Message:
  -----------
  WKWebView steals first responder when focused via VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=249976
rdar://problem/103794378

Reviewed by Chris Fleizach.

This behavior was introduced in:

https://bugs.webkit.org/show_bug.cgi?id=234885 (AX: AccessibilityObject::setFocused(true) should make the webpage focused, and make web content the first responder)

To address an issue with Full Keyboard Access where focus rings weren't drawn in embedded WKWebViews.

However, after some manual testing, it seems that taking first-respondership is not necessary for drawing the focus rings, and it
seems like this behavior causes various adverse effects, such as:
  - VoiceOver Speak Screen focus erroneously jumping to the top of the page when encountering an embedded WKWebView
  - Third-party apps relying on WebKit to not steal first-respondership (see the comments in the bug associated with this patch)

This patch fixes the issue by removing the call to assistiveTechnologyMakeFirstResponser on iOS, effectively partially reverting the behavior introduced in 234885.

* LayoutTests/accessibility/ios-simulator/accessibility-make-first-responder.html:
Update the test to ensure focusing an AX object does not steal first-respondership.
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::setFocused):

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




More information about the webkit-changes mailing list