This is part one of a series of articles that will take you through the basics of mobile accessibility for Android and iPhone, and help you conduct an accessibility assessment on the mobile device of your choice. This week, we’ll start off by comparing TalkBack and VoiceOver screen reader software. Next, we’ll cover the basics of mobile accessibility for fonts and colours, then mobile switch controls, followed by a testing method for mobile for each popular operating system. Welcome aboard, and we hope you enjoy the ride!

Part 1: mobile screen readers

TalkBack vs. VoiceOver

It has been several years since sales of smartphones and other mobile devices first surpassed sales of traditional desktop computers. More than half of global Internet traffic comes from mobile devices.

Apple iOS started to implement out-of-the-box accessibility features fairly early on, and VoiceOver was introduced with the iPhone 3GS in 2009. Google lagged behind a bit when it came to including its own screen reader, TalkBack, in the Android operating system by default. Because of the early accessibility features on iPhones, as well as the fact that the hardware is very consistent (versus the multitude of devices that could run various versions of the Android operating system), iOS became an early leader in mobile accessibility. Not surprisingly, it became the go-to platform for most people interested in accessibility features.

I started to explore mobile usability both out of personal interest and as an extension of the work I was already doing to learn and implement accessibility on desktops. At the time, I wasn’t a Mac user at all, so I thought it made more sense to go with Android rather than iOS. Even though I had played around with (other people’s) iPhones and seen other people using VoiceOver, my first smartphone was an Android.

When I first started to use TalkBack, I felt pretty awkward. I would slowly follow the green focus outline around the page and fumble my way through the different gestures. It took me a little while to find the proper rhythm, to differentiate between a “slide” and a “swipe,” and to learn the multipart gestures. For me, some of the difficulty was in mastering the timing, since a slide and a swipe are functionally the same, and the only difference between them is the speed of the gesture. (This is analogous to “slide”/”swipe” vs “flick” on iOS with VoiceOver.)  Even so, I still fail to get the proper result for some of the more complicated ones about 30% of the time.

Image depicting the tap gesture for TalkBack Image depicting the L-shaped gesture for TalkBack Image depicting the flick gesture for TalkBack

These images for tap, flick, and right-angle gestures are from the Gestureworks open source gesture library.

What helped me most was learning that when using TalkBack, most of the gestures involve a single-finger tap, flick, or right-angle L-shaped movement. All standard multi-finger smartphone gestures still work while TalkBack is running, but some of the usual single-finger gestures now are performed with multiple fingers. Take scrolling, for example. With TalkBack on, scrolling a web page is a two-finger touch and slide, upgraded from the familiar single-finger gesture. Pinch gestures, because they already use two fingers, work the same regardless of whether or not TalkBack is running. This gave me an easy pattern to follow.

In addition, TalkBack’s focus on single-finger gestures makes it easier to use than VoiceOver by those who are using a single hand to hold and operate the phone, as well as by people with reduced manual mobility or dexterity who might have issues with gestures involving multiple fingers.

Getting started with TalkBack

The TalkBack global context menu (list view)To turn on TalkBack, go to the “Accessibility” option under “Settings.” There’s also an option you can enable to toggle TalkBack on and off, along with a lot of other accessibility options.

If you are familiar with iOS, you might expect to see something here that will allow you to adjust the TalkBack settings. The TalkBack settings are actually available from the Global Context menu, which you can access while TalkBack is on by making an L-shaped gesture down and to the right.

From the TalkBack settings, you can access a tutorial for learning and practicing the gestures, which I found very useful.

TalkBack/Android gestures

Gesture Action
Touch/single tap Read element
Double-tap Activate element
Swipe-right Move to next element
Swipe-left Move to previous element
Two-finger slide up or down Scroll
Triple-tap Zoom
Slide up-down Jump to the first item on the screen
Slide down-up Jump to the last item on the screen
Slide left-right Scroll up one screen
Slide right-left Scroll down one screen
Slide up-left Return to the home screen (from anywhere)
Slide down-left Activate the back button (browser only), close app (apps only)
Slide up-right Opens the local context menu (options depend on where you are)
Slide down-right Opens the global context menu (includes TalkBack settings)

Of all of the TalkBack gestures, the L-shaped gestures are the ones that I have the most difficulty with. I tend to make them too large and slow, so I inevitably “select” a screen element rather than return to the home screen or open one of the context windows.

When I finally got an iOS device, these habitual gesture patterns I relied on actually made it a little bit harder for me to learn and remember the VoiceOver gestures. Only the most basic gestures are the same on both platforms: single-finger gestures to select, activate, and move one element to the right or left.

VoiceOver makes extensive use of multi-touch and multi-fingered flicks, taps, and twists for its interface, as opposed to the single-finger TalkBack gestures, which means a wider variety of commands can be accessed quickly. However, the variety comes with a price, as it might limit what people are able to do with VoiceOver if they have mobility or dexterity issues.

Getting started with VoiceOver

You can turn VoiceOver on by going to “Settings” > “General” > “Accessibility” > “VoiceOver”. You can also access the VoiceOver tutorial, as well as the VoiceOver settings, from there as well.

iOS accessibility settings iOS VoiceOver settings

VoiceOver/iOS gestures

Gesture Action
Touch/single tap Select and read the element
Double-tap Activate the selected element
Swipe-right Move to next the element
Swipe-left Move to previous the element
Swipe up or down On an adjustable element like a slider, this increments or decrements the value. In text view, this moves the insertion point backwards or forwards.
Double press: with one finger, perform a double tap. During the second tap, continue to hold your finger against the screen. Drag the selected item
Two-finger tap Pause/resume reading
Two-finger swipe up Read all accessible items from the top of the screen
Two-finger swipe down Read all accessible items from the current position
Two-finger pinch open/closed Select/deselect text
Three-finger swipe up/down Scroll screen up/down
Three-finger swipe left/right Navigate to the next/previous page
Three-finger double tap (if zoom is enabled, this becomes a three-finger triple tap) Toggle speech
Three-finger triple tap (if zoom is enabled, this becomes a three-finger quadruple tap) Toggle screen curtain
Four-finger tap at the top or bottom of the screen Select the first or last accessible element on the screen

Both TalkBack and VoiceOver allow people to open menus that offer shortcuts to various settings and controls. TalkBack has two: the local context menu and the global context menu. The global context menu is available across all applications and contains commands that work everywhere, as well as general TalkBack settings. The contents of the local context menu vary, and are specific to whatever application is currently active.

TalkBack's local context menu, shown in list form. TalkBack's local context menu, shown in circular form.

VoiceOver has the rotor, a circular single context-sensitive menu of commands. (The VoiceOver rotor is also available on the Mac desktop.) You can open the rotor by placing two fingers on the screen and twisting slightly, like turning a knob. You can also place one finger on the screen and drag another finger around it, though this method requires the use both hands. I find this easier, by far, than opening the local or global context menus. And I like that there is only a single rotor, from which you can access all of your selected shortcuts.

Once the rotor is open, you click through the available options by continuing to twist. I haven’t yet found a way to avoid making this feel awkward when operating with one hand, though the split-tapping option available in VoiceOver does allow both hands to be used, which makes things easier for me.

There are two viewing options for the TalkBack context menus; a circular display, which is very reminiscent of the VoiceOver rotor, and a list display. I prefer the list display, where I can read the full list of available options and easily swipe from one to the other. For sighted users, the rotor has a visual display, but it only displays the current active rotor option, so you won’t know what you can get to until you actually rotate through all of the options.

iPhone's rotor menu

Something that iOS offers screen reader users that Android does not is the ability to blank out the screen for privacy and security reasons. The Screen Curtain option with VoiceOver completely blanks out the screen without impacting the user interaction at all. Up until recently, Android didn’t offer anything this, and while users could reduce the screen brightness, this was not really a substitute for something like Screen Curtain, since the screen brightness on a phone or tablet will never reach 0%.

However, recently Android has introduced Dark Screen, which is their equivalent of Screen Curtain. While I’ve tried both Screen Curtain and Dark Screen, I haven’t used either very much; as a sighted user I don’t feel confident enough using solely a screen reader, so I rely on being able to see the screen and what I am doing.

TalkBack vs. VoiceOver

Having used both TalkBack on Android and VoiceOver on iOS, which is better? In my opinion, both are good options.

VoiceOver gestures are fixed and universal, so moving from one device to another is seamless. The same applies to TalkBack out of the box, but there you also have some control with regards to assigning specific gestures to various commands. All iOS devices have the same basic layout, while Android devices are much more varied, depending on the manufacturer. However, because of this, Android devices do have greater potential for expansion and upgrade options.

In my case, I tend to prefer TalkBack on Android for the simple reason that I’ve used it the longest and it’s most familiar to me. Everyone will have their own unique needs and preferences when it comes to working with mobile accessibility options—but taking the time to learn about what’s available will help you design and create mobile experiences that work for all of us.

I’d love to hear about your experiences working with VoiceOver and TalkBack. Share your thoughts in the comments below.

2 thoughts on “A smartphone accessibility primer; or, how I learned to stop worrying and master mobile accessibility”

Read comments

  1. Mark L says:

    Nice write up! I’ve done something similar for our internal teams.

    Not sure it’s available on all Android devices, but on my Galaxy S6 you can choose “Dim Screen” from the local context menu. Maybe this is what you’re referring to as “Dark Screen” but wasn’t sure.

    1. Kara Van Roekel says:

      Hi Mark,

      My primary Android device is Samsung Galaxy S7 phone running Android 7.0 (Nougat), and I also have a Nexus 7 tablet running Android 6.0.1 (Marshmallow).

      Both the Samsung S7 and the Nexus 7 have the Dim Screen option available from the global context menu as you describe. This gets the screen pretty dark, but not quite 100% so.

      But on the S7, if you look under Settings > Accessibility > Vision You will also see an option called “Dark screen”. When this is enabled (and while you have the screen reader running) you can activate it by pressing the power button twice quickly, and turn the screen off completely. It is pretty neat, and also a lot easier for me to use than the Dim Screen option.

      I don’t really know why the accessibility options on the S7 are more extensive than those on the Nexus 7.
      It could be because of the different devices, or the different Android versions, or a combination of the two.

      This was a great comment, and an excellent illustration of how the wide variety of different devices running all kinds of different versions of Android can make things… interesting. I should have specified what device and Android version I was working with in the post, and will certainly do so for the rest of the series.

      Thanks for keeping me honest!

Hi there! We've closed the comments after a week of spirited discussion on this post. If there's something we've missed, please reach out and let us know.