New accessibility techniques in iOS6

iOS6 introduces some new accessibility techniques to help make your apps more accessible. In doing so Apple have also addressed a bug of mine which makes me happy. So without further ado here’s a super-quick overview.

Magic Tap

When using Voiceover you can use the two-finger double-tap to carry out a key action depending on the context you are in. Currently, with Voiceover running, if you’re listening to music you can two-finger double-tap to pause it or if the phone rings you can answer it and if you’re using the camera it will take a picture.

You can now add this to your own applications giving users a quick shortcut to perform key actions such as triggering play/pause in a view with video. Just bare in mind that MagicTap should be considered an enhancement rather than a sole means to perform an action as not all users have iOS6 plus not all users will know about this interaction. As such you would always have a clearly labeled  ‘Play’ /’Pause button.

This is done using: accessibilityPerformMagicTap

Note: MagicTap is not an appropriate technique for some interactions such as escaping/closing dialogue or pop up boxes, for this you should use accessibilityPerformEscape.


Something I filed a bug for was the lack of support for coding headings within apps. If a view is given a title (across the top of the screen) it is picked up as a heading by Voiceover but nothing else could be coded in such a way so it could be identified as a heading. This seemed strange as Web Rotor offers the option to navigate via headings in apps but, up until now, not the means.

Just remember to not over do it. Apps in general tend to lend themselves to less headings so only use them around visible headings and not around content you want to give emphasis to. Headings in popovers should also be marked up.

This is done using: UIAccessibilityTraitHeader


Sometimes you want to force focus to a specific area of the app. For example you may want to force focus not to the first element in a view, which is typically the first item at the top left of a view, but to key content. This is handy as more often than not the first focusable item in the top left is a ‘Done’ or ‘Back button’ which is disorientating to hear when you open a view.

This is done using:




then signposting what button you wish focus to move to:
UIButton *moveToButton = …


This allows you to tell Voiceover to speak something when an action is complete. It’s great for announcing changes on the screen that may not otherwise be evident to a Voiceover user such as a panel opening within the view or an area revealing more content.

This is done using: UIAccessibilityAnnouncement


You can now more easily group items together to control the content order and therefore the reading order for Voiceover. This could be useful for schedules, and other data laid out in rows or columns.

This is done using: shouldGroupAccessibilityChildren


For further information on how to implement these see the WWDC 2012 presentation iOS Accessibility raising the bar, slides and video from Chris Fleizach which also includes live coding demos. These are all available from iTunes U (you will need an Apple Developer login to view these).

There’s also a really useful Apple accessibility dev mailing list for API accessibility related questions that a number of Apple Engineers contribute to and answer questions in.

8 thoughts on “New accessibility techniques in iOS6

  1. Great to see this, but I don’t understand the signposting of focus part (and can’t find anything via Googling). I guess I will have to devote an hour to the video, but maybe you can give a little more of a hint?

  2. Pingback: Some links for light reading (31/10/12) | Max Design

  3. Pingback: Some links for light reading (6/11/12) | Max Design

  4. Pingback: Bruce Lawson’s personal site  : Reading List

  5. Pingback: 모바일 접근성 관련 주요 가이드라인 등 – Henny Swan 블로깅 의역을 중심으로 « 삐돌이의 웹 접근성 & IT Transformation

  6. Pingback: Accessibility Related Reading List – March 26 2013 | Recreate Web

Comments are closed.