mapbox / mapbox/mapbox-maps-ios

Support VoiceOver

Open
#1,024 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

auto-triaged feature :green_apple:
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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.