Bug 174099 - AX: VoiceOver does not follow browser focus on container elements
Summary: AX: VoiceOver does not follow browser focus on container elements
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: Safari 10
Hardware: iPhone / iPad iOS 10.3
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-07-03 09:45 PDT by Alex Lande
Modified: 2017-07-03 09:46 PDT (History)
1 user (show)

See Also:


Attachments
HTML file to demonstrate issue (831 bytes, text/html)
2017-07-03 09:45 PDT, Alex Lande
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Lande 2017-07-03 09:45:45 PDT
Created attachment 314491 [details]
HTML file to demonstrate issue

On iOS, VoiceOver does not follow browser focus when using JS to focus on an element that:

- Is not in the default tab order
- Uses tabindex='-1' to allow focus to be set via JS
- Has multiple child elements

In these cases, although the browser focus moves, the VoiceOver cursor stays in place. If you reduce the number of child elements to one, VoiceOver follows focus as expected.

I've attached an HTML file to reproduce the bug, it's also available on JSBin: http://output.jsbin.com/wemuhex


Steps to Reproduce:

1. Open the attached page on an iOS device running iOS 10 and open VoiceOver.
2. Select the button labelled "Focus" and activate it.


Actual Results:

The VoiceOver cursor does not move to the div containing two p tags, although browser focus does.


Expected Results:

The VoiceOver cursor should move to the div containing two p tags and VoiceOver should begin reading the contents of that div.


Additional Information:

To see the expected behavior, you can remove the second p tag from the demo, or test the demo using VoiceOver + Safari for macOS, which handles the situation in the expected way.
Comment 1 Radar WebKit Bug Importer 2017-07-03 09:46:44 PDT
<rdar://problem/33108225>