alphagov / reported-bugs

Tracking bugs in browsers, assistive technologies and operating systems that have been reported by GDS
5 stars 2 forks source link

Random field focus with VoiceOver on iOS makes it very difficult to fill in forms #32

Open selfthinker opened 5 years ago

selfthinker commented 5 years ago

Upstream bug: https://bugs.webkit.org/show_bug.cgi?id=173661 Date: 2017-06-21 Reported by: Anika Henke Related to: n/a


Overview

When filling in any form with multiple fields with VoiceOver on iOS, the fields cannot be filled in one by one due to bad virtual focus management, making it highly likely that a couple will be missed.

Steps to reproduce

  1. Open Safari on an iOS device
  2. Open http://jsbin.com/kuzizaw (reduced test case)
  3. Activate VoiceOver
  4. Fill in the first input 5a. Activate the "done" button 6a. Repeat until the end of the form

Alternatively: 5b. Hit the "forward" button 6b. Repeat until the end of the form

Actual result

In the first scenario some random field will receive the virtual focus, skipping a couple of fields. In the second scenario the next field will receive the virtual focus, except that radio buttons and checkboxes will be skipped.

Expected result

In both scenarios the next field (irrespective of type) should receive the focus. Or giving the current field the focus would also make sense.

Why is this a problem?

Screen reader users who cannot see the form have no way of knowing that some fields have been skipped. They cannot rely on standard ways of filling in a form. The only way for them to know is by going through the whole form after filling it in to make sure they haven't missed anything. It is possible to fill in a form this way, but very, very annoying and much more time-consuming than necessary.

One discussion about this bug can be found here: http://webaim.org/discussion/mail_thread?thread=7141 Someone mentioned on there that they filed a bug report but I searched and couldn't find anything. As far as I know it happens at least on iOS9 and iOS10.