Bug 166702

Summary: AX:aria-flowto is stopped by invalid roles
Product: WebKit Reporter: Jonathan Deutsch <jonathan>
Component: AccessibilityAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 10   
Hardware: iPhone / iPad   
OS: iOS 10   

Description Jonathan Deutsch 2017-01-04 16:35:28 PST
iOS will not navigate via aria-flowto if the item it is targeting has a missing, invalid, or non-flowable role.

Take the following HTML document:

<div id="item1" role="img"    aria-flowto="item2">  Item 1 (role=img, flowto=item2)</div>
<div id="item2" role="button" aria-flowto="item3">  Item 2 (role=button, flowto=item3)</div>
<div id="item3" role="asdf"   aria-flowto="item4">  Item 3 (role=asdf, flowto=item4)</div>
<div id="item4" role="radio"  aria-flowto="item1">  Item 4 (role=radio, flowto=item1)</div>

The flow will not move to item3 in this case, since the role is "asdf".  It beeps and will stop in navigation entirely; there's no way to reach 3 or 4 (at least via standard swiping).  If there is no role it is the same. Also roles like "group" have the same effect.

I am reproducing on iPad with iOS 10 via:
1. Enabling VoiceOver
2. Swiping to the right
Comment 1 Radar WebKit Bug Importer 2017-01-04 16:35:55 PST
<rdar://problem/29874468>