[autocomplete] Broken for iOS VoiceOver
Nobody has claimed this yet.
- 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:
- Go to https://material-ui.netlify.app/components/autocomplete/
- Start VoiceOver
- Activate the combobox and start typing
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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