mui / mui/material-ui

[autocomplete] Broken for iOS VoiceOver

Open
#22,956 45 comments 10 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

accessibility scope: autocomplete
Dominant language
JavaScript
Stars
99.1k
Forks
32.5k
Avg merge
2d 17h
Merged PRs (30d)
106

Description

  • The issue is present in the latest release.
  • I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯

Using VoiceOver on iOS, I am unable to either find or activate any of the suggestions in the list. This is a critical accessibility barrier for visually impaired mobile users.

I can find the input, type text into it and get results, but I cannot set focus on the listbox containing the results. As soon as I move VoiceOver focus from the input field, the listbox disappears. It does not matter if I use explore-by-touch or the swipe-forwards gesture.

See video demo of the problem:
https://youtu.be/VfFfFncFcUs

Expected Behavior 🤔

  • No big UI changes should happen when I move VoiceOver focus on the page.
  • The listbox should stay open when VoiceOver focus leaves the search field.
  • I should be able to set focus to the results in the listbox by swiping forwards from the combobox, or by searching with my finger on the screen

Compare with the WAI-ARIA Authoring practices 1.1 example pattern (https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html) which displays the expected behavior:

Video demo of expected behavior:
https://youtu.be/8bzbR2vhVtY

Steps to Reproduce 🕹

Steps:

  1. Go to https://material-ui.netlify.app/components/autocomplete/
  2. Start VoiceOver
  3. Activate the combobox and start typing
  4. Try to find and activate a suggestion in the list

Context 🔦

This is a critical accessibility barrier with no way to get around it for a majority of visually impaired mobile users. iOS VoiceOver is used by 71% of mobile users according to WebAim Screen reader user survey #8 (https://webaim.org/projects/screenreadersurvey8/#mobilescreenreaders)

Also, this appears to be new behavior. Compare with screenshots in https://github.com/mui-org/material-ui/issues/18191 where the listbox did stay open when leaving the input field and you could find suggestions by explore-by-touch.

I am not sure if there have been any system-level changes affecting this going from iOS version 12 to 13 and 14, or if the component itself has changed. I tried looking at older versions of the component but could not find one that did not exhibit this bug.

Your Environment 🌎

Tech Version
Material-UI 4.11.0 (and 5.0.0-alpha.11)
React 16.13.1
iOS 14.0.1
iOS Safari 14.0.1
iOS Chrome 85.0.4183.109

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Autocomplete component demo at material-ui.netlify.app/components/autocomplete/ and reproduce the behavior using iOS VoiceOver. Compare the interaction with the linked WAI-ARIA combobox example and the older issue #18191; done means the listbox remains available after focus leaves the input and suggestions can be reached and activated.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, javascript, react
Domain
accessibility, frontend, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.