[Webkit-unassigned] [Bug 263069] New: AX: VoiceOver on iOS moves focus away, even when HTMLElement.focus() is called on an element

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 12 05:27:55 PDT 2023


https://bugs.webkit.org/show_bug.cgi?id=263069

            Bug ID: 263069
           Summary: AX: VoiceOver on iOS moves focus away, even when
                    HTMLElement.focus() is called on an element
           Product: WebKit
           Version: Safari 17
          Hardware: iPhone / iPad
                OS: iOS 17
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Accessibility
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: domantas.petrauskas at usbank.com
                CC: andresg_22 at apple.com,
                    webkit-bug-importer at group.apple.com

Created attachment 468186

  --> https://bugs.webkit.org/attachment.cgi?id=468186&action=review

Screen recording of focus bug reproduction

When navigating in a multi-step UI, where currently focused element disappears when navigating between steps, the VoiceOver cursor & browser focus jumps to the "closest" element after a brief moment, even when forcing focus on another element via HTMLElement.focus().

Steps to reproduce:
1. Open https://f76xpz.csb.app/ on iOS with VoiceOver. Open console to view logs.
2. Click on "Next step" button"
3. Observe focus being set on "Previous step" button and then jumping to "Save and continue" a few milliseconds later.

Expected result: Focus should get set and remain on "Previous step" button

Actual result: Focus gets set on "Previous step", but then jumps on "Save and continue".

I'm assuming VoiceOver always needs to have a focus on an element, so when the currently focused element disappears, VoiceOver focuses the element "closest" to the position where the focused element was. However, this happens after a brief delay, so even if you set the focus manually on another element, VoiceOver overrides it.

It is important to respect the HTMLElement.focus() in order to comply with WCAG 2.1 Standard Focus Order success criterion: https://www.w3.org/TR/WCAG21/#focus-order

The issue is not reproducible on Mac VoiceOver. Setting tabIndex on "Previous step" button does not change the behaviour in any way.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20231012/e44b34ec/attachment.htm>


More information about the webkit-unassigned mailing list