mapbox / mapbox/mapbox-maps-ios
Support VoiceOver
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 601
- Forks
- 196
- PR merge metrics
- No merged PRs in 30d
Description
What
Add basic support for VoiceOver (iOS's built-in screen reader) to map elements, in order to reach parity with Mapbox iOS SDK v6.
Why
VoiceOver allows people with limited vision to use iOS apps. It can read aloud text that's shown on the screen, and describe user interface controls like buttons and sliders when a user touches them.
Without VoiceOver support, app developers can't upgrade to Mapbox SDK v10 without breaking their apps for some of their users.
Details
I'm currently porting an app built on the legacy Mapbox iOS SDK (v5.x) to Mapbox SDK v10. During this process I discovered that my new Mapbox SDK v10-based map is not accessible to VoiceOver users.
Mapbox's legacy iOS SDK (versions 3.7.0 through 6.x) had impressive support for VoiceOver. See this blog post for some example videos of how it works. You can also build and install the legacy examples app and then enable VoiceOver to try it out for yourself.
Mapbox SDK v10 appears to have no support for VoiceOver. Map elements (like POIs and roads) are not accessible. The only accessible elements on-screen appear to be the compass button (upper right) and the "more info" button (lower right). You can verify this by building the examples app in this repository and trying it out with VoiceOver enabled.
If I'm wrong, and SDK v10 does support VoiceOver, perhaps you could update the example code to demonstrate this? And if not, I'm hopeful that VoiceOver support is on the roadmap for a near-future 10.x release.
Best regards,
Jake
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 by building Apps/Examples in the repository and enabling VoiceOver to inspect which map elements are exposed. Compare the behavior with the legacy examples app and the linked legacy SDK behavior. Done means map elements such as POIs and roads are accessible to VoiceOver, with example code demonstrating the support.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, swift
- Domain
- accessibility, mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100