VoiceOver, a feature Apple has built into all iOS devices to enable Braille and speech access for users who are unable to see the screen, has revolutionized the lives of countless thousands of blind people around the world. It works best when apps are deliberately developed in ways that ensure compatibility with VoiceOver, blind people are considered during development and included in all facets of the testing process.
If you are a developer who has been asked to ensure the full VoiceOver accessibility of your app, following a step-by-step plan will help you get it right the first time, and keep getting it right through each subsequent update.
If you are an educator, following an organized plan will help you determine which iOS apps will best meet your blind students' needs and effectively teach them how to use each new app they encounter throughout their studies and beyond.
If you are a blind person who is new to iOS, or you are an advanced user of many apps, following a coherent plan will help you quickly come up to speed with the built-in capabilities of your device and each new app you install.
The purpose of this step-by-step plan is to provide a straightforward way for advocates, developers, educators and others to quickly explore, learn and improve the accessibility of all apps in Apple's iOS ecosystem.
- Advocates may use the plan to easily identify the accessibility issues they report to developers.
- Developers may follow the plan to test their apps as they move forward to improve accessibility with each iteration.
- Decision makers may incorporate the plan into their user-acceptance testing and other quality-assurance procedures to insure their iOS apps comply with Apple's accessibility guidelines and other appropriate laws, policies and regulations governing accessibility.
- Teachers may use the plan as a framework for evaluating the non-visual accessibility of iOS apps and providing instruction to blind students.
- Make sure VoiceOver is turned on for all testing. VoiceOver may be enabled in Settings > General > Accessibility > VoiceOver on any iOS device. Alternatively, VoiceOver can be activated by asking Siri to "turn on VoiceOver" or by pressing the Home or Side button three times if the accessibility shortcut has been set to enable VoiceOver. In addition, select Settings > General > Accessibility > VoiceOver and make sure Speak Hints is turned on. It is also strongly recommended to triple tap the screen with three fingers to enable the Screen Curtain. This feature blanks out the screen, resulting in a more realistic environment for nonvisual accessibility testing.
- Open the app.
- Tap the top of the screen with four fingers.
- Flick to the right through all elements on the app's home screen.
- Are all controls labeled in a way that makes sense when you listen to VoiceOver without looking at the screen, i.e. would a VoiceOver user understand the purposes and functions of all on-screen elements? Make detailed notes of anything that you imagine a VoiceOver user would struggle with when using the app. This applies to charts, graphics, maps and any other elements that may require special consideration in order to provide equal accessibility.
- Are you able to choose all buttons and other appropriate controls by double tapping them as you hear them read by VoiceOver? In other words, if a sighted person would choose an element by tapping, does it operate correctly if double tapped by a VoiceOver user? Note any situations where a control does not function as expected when double tapped.
- Does VoiceOver stay focused throughout the user interface? Note any situations where VoiceOver is jumpy, seems unstable or is unable to retain its place while navigating in and out of lists and other similar controls.
- When one or more items in a list is highlighted or selected, does VoiceOver say "selected" or provide any other indication of its status? If we are selecting among the available side options for a food item, is the VoiceOver user able to select and deselect options and determine which options have already been selected? Note any lists where VoiceOver is unable to convey highlighted or selected status.
- Can the items in a list be refreshed using VoiceOver? If a list typically enables a sighted user to pull down with one finger, is a VoiceOver user able to update the list by swiping down with three fingers? Note any lists that can't be refreshed using VoiceOver.
- Are all elements available to VoiceOver? Pay special attention to anything that is skipped (not heard at all) while flicking. Note any skipped elements.
- Are there VoiceOver equivalents for all custom gestures? Note any app features that require the use of custom gestures that are not available to VoiceOver users through alternative techniques.
- If visual cues, such as color, are important, does VoiceOver provide the same information? If we are shoe shopping, does VoiceOver convey details such as color and style? If we are hailing a ride, does VoiceOver tell us the color of the car? Note all situations where VoiceOver is not able to describe important visual information a sighted user would take for granted.
- Are all elements presented in a logical order as you move through the screen? If the relationship between elements is important, is it clearly conveyed nonvisually? Note anything that seems out of place as you navigate the screen without sight.
- Listen for special hints, such as "double tap to play," spoken after the name of each element. If these hints are never heard, make sure hints are enabled in VoiceOver settings. Refer to step 1 for details. Note all situations where additional help could be supplied through this technique. Avoid using hints as the only way for the app to work successfully with VoiceOver.
- If audio is playing, does its volume decrease, or duck down, while VoiceOver is speaking? Note any situation where VoiceOver is difficult or impossible to hear.
- Does a two-finger scrub (Z-shaped gesture) activate the escape function of the arrow in the upper-lefthand corner of the screen? Note any situation where a two-finger scrub does not navigate to the previous screen or otherwise perform the appropriate escape function for the VoiceOver user.
- Does the app offer accessibility enhancements such as direct touch, keyboard shortcuts, magic tap or specific support for Braille displays, switches or other forms of assistive technology? Note any opportunities to incorporate these features.
- Flick to the left through the same home screen. Note anything that does not seem to function as expected with VoiceOver enabled.
- Tap the top of the screen with four fingers.
- Flick to the right, one element at a time, and double tap the first item where choosing it should lead to another screen.
- Repeat steps 3 through 5 on every screen the app contains, testing and noting any issues found with all elements.
- Using the notes obtained from testing, make all bug fixes necessary to deliver a fully accessible experience for users who rely on VoiceOver. Consider prioritizing the correction of accessibility bugs according to the order suggested in step 4.
- Check your work using blind alpha testers, followed by a select group of beta testers from the blind community.
The following additional resources will serve to help you put this plan into action:
- Accessibility Programming Guidelines for iOS
- Learn VoiceOver gestures
- Test Accessibility on Your Device with VoiceOver
- View Controller Programming Guide for iOS: Supporting Accessibility
- accessibilityLabel | Apple Developer Documentation
- Tips For Accessibility Testing Of iOS Apps
- Information For Developers On How to Build Accessible iOS and Mac Apps
- Tips for Taking Full Advantage of VoiceOver in Your App
- As always, I thank the sunshine of my life, Allison Hilliker for encouraging me throughout the completion of this project and for putting up with my constant prattling on about just how critical accessibility and full inclusion is for the economic and social prosperity of blind people.
- I would also like to give a big shout out to everyone on this AppleVis forum post who challenged me and supplied me with useful feedback.
- Finally, I thank Pat Pound for valuable suggestions that helped me push this project over the finish line.
Creative Commons License
iOS App VoiceOver Accessibility Teaching and Testing Plan by Darrell Hilliker is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Based on a work at http://blindaccessjournal.com.
Permissions beyond the scope of this license may be available at http://blindaccessjournal.com/contact-us/.