iOS App Accessibility

Making iOS apps accessible is remarkably straight forward. The iOS SDK includes a few basic accessibility settings (enabled by default for native UIKit controls), that can be accessed through the Interface Developer.

When you stop to consider it, the thought of a blind person using a touch screen device might seem a little odd. With a built in screen reader (VoiceOver) now available in all iOS devices, it’s remarkably achievable in fact.

A key part of iOS app accessibility is understanding that the gesture set changes when VoiceOver is enabled. Here’s a quick example: A sighted person will scan the screen and tap an icon to activate it. A blind person will tap an icon to identify it and double tap to activate it.

It’s worth playing around with VoiceOver for a while. It’ll probably confuse you completely at first, but you’ll get a sense of how the interaction really works. Tap Settings > General > Accessibility > VoiceOver to turn it on/off, and head to the Apple website for help getting started.

For an iOS app to be accessible to a blind person, all the User Interface (UI) controls must support the VoiceOver gesture set. There are four simple settings within the Interface Developer to help you make it so.

Step 1: Enable accessibility

Native UIKit controls are enabled for accessibility by default. If you’re creating a custom control you’ll need to put a tick in this checkbox though. Unless a control is accessibility enabled, VoiceOver won’t know it’s there (and neither will the user of course).

Step 2: Assign traits

A control can be assigned a number of traits. These characteristics define what a control is, and make that information available to VoiceOver so it knows what to do with it. Native UIKit controls have their traits pre-selected, but for custom controls you’ll need to choose whether it has the traits of a button, search, image, static text or some other object type.

Step 3: Add a label

The label is a short text description that Voiceover announces when the control is tapped. It’s usually just a single word such as “Play” or “Delete”, and never more than three words as a rule. You’ll need to add a label for your custom controls, but again the standard UIKit controls come ready equipped with labels.

Step 4: Provide a hint

You might also like to provide a hint for your controls. This is spoken by VoiceOver following a short pause after the label is announced. It’s optional, but if you do decide to provide a hint, Apple recommends avoiding phrases that sound like instructions. “Plays music” or “Deletes song” are recommended, rather than “Play music” or “Delete song”.

You can do much more with iOS app accessibility, but this is a good way to get started. If you feel like trying an iOS app that has good accessibility and a creative approach to game play, take a look at Papa Sangre (and enjoy)!

Share this post

About the Author


  1. Joshua Miele says:

    Excellent post. For other accessible apps, and more information on what kinds of things are accessible visit

    Also, Papa Sangre is a fun game, but does not actually provide a great example of OOTB accessibility — you actually have to turn off VO in order to play. For an amazing example of nice accessibility coding, as well as great use of spatial aspects of iOS touch screen, check out Accessible Mine Sweeper

    I am not affiliated in any way with either of these links — just a VO user and accessibility developer/researcher. Enjoy!

  2. Great post. This is really helpful. It’s really wonderful that you can make things work with the use of voice command. This is purely imagination before and it’s nice to see that it finally become reality.

Add a comment

Fields marked with an asterisk (*) are mandatory.

Comment details