The 21st of May is Global Accessibility Awareness Day (#gaad) so I thought I'd write a quick blog post about one of my favorite accessibility features on iOS—Switch Control. Switch Control was introduced in iOS 7 and enables users with physical/motor impairments to use iPhones and iPads though the use of switches. My mom had ALS and if this had been out when she was alive, it would have made an immense difference for her.

This truly amazing feature is still relatively unknown by most iOS developers. In the spirit of Global Accessibilty Awareness Day, I thought I'd provide a quick guide on how to test your app with Switch Control. 

Setting up switches

There are three options for switches: external bluetooth switches, the front-facing camera and the screen of the device. I was doing a demo of Switch Control for a talk, and I wanted to to use an external switch so the audience could see just how usable Switch Control makes an iOS device. I was chatting with an Apple engineer during the accessibility lab at WWDC last year, explaining how I wanted to use an external switch but I didn't know where I could get one on short notice. She told me about how you can use a wireless keyboard as a switch, which was perfect to demo with, and is something I'd highly recommend to other developers to build empathy with Switch Control users.  

The first step is to set up a switch. For this tutorial, I'll be using an Apple wireless keyboard.

To start, pair your keyboard with your iPhone or iPad.

  • Go into the Settings app, then choose Bluetooth.
  • Your keyboard should appear in the list of available devices, tap on it in the list.
  • Enter the four digit code that shows up.

Screenshots from pairing a keyboard

Now that your keyboard is paired, go back to the main Settings screen.

Switch Control settings

Next, we'll add a switch! 

To access the Switch Control settings choose General > Accessibility. Scroll down to the section titled 'Interaction' and tap on 'Switch Control'. 

Before turning on Switch Control, we'll need to add a switch.

  • Tap on the 'Switches' row, then select 'Add New Switch'.
  • From here you can choose between External, Screen and Camera. For those of you who have paired your wireless keyboard, select 'External'.
  • You should now see a screen that asks for you to activate your external switch. Press whichever key on the keyboard you want to use as a switch.
  • You'll then get a list of actions that switch can perform, go ahead and choose 'Tap' from this list.  

If you don't have a wireless keyboard, you can choose Screen from the list of sources, then choose 'Full Screen' and then 'Tap' from the list of actions.

Screenshots from adding an external switch

Congratulations, you've just set up a switch!

You can set up some more switches if you'd like, I personally like to set up a second switch that performs the 'Home Button' action so I can use the iPhone completely hands free.

You can adjust the speed of Switch Control, I recommend starting with a slower speed then increase it as you get more confident with it.

With your switch(es) set up, you can now turn on Switch Control.

Testing your app

When you turn Switch Control on, it will start cycling though the items on the screen. Items are grouped together to speed up navigation. When the group your item belongs to it highlighted, tap the key on the keyboard you set up as the 'Tap' action. If you make a mistake and go into a group of items you didn't want, don't worry. Wait until it cycles around and before it returns to the first element, it will show a highlight with a dotted line. Performing the 'Tap' action at this point will back you out of that group.

Using Switch Control, open your app and try to use it. Go through any test plans or user stories you might have and see how you get on.

I've made a short video showing what it looks like to compose a tweet in Tweetbot using Switch Control:


Thank you so much for reading this post, I hope you found it informative :)


I'm trying to make testing app accessibility easier - check out The Inclusive Toolkit on Kickstarter!