I've maintained for a long time that great apps should have great accessibility support, but today I learned of another reason that might also be of particular interest to developers.
If you don't know, VoiceOver is the name of Apple's accessibility technology to help users with visual or motor impairments use their iPhones. It's most well-known for its screen reader capabilities, but it also supports controlling your iPhone or iPad entirely with the keyboard.
This is great to avoid reaching over to your phone all the time, and it's also much easier to enter your test account's password on a physical keyboard.
First, connect a Bluetooth Keyboard to your phone. I use the amazing 1Keyboard to share my computer's keyboard with my iPhone with the touch of a button.
Next, enable VoiceOver. On iOS 7, you'll find it under the Accessibility entry under General in your Settings app. I also recommend adding VoiceOver to the Accessibility Shortcut menu for convenient access to by triple-clicking the Home Button 1 .
VoiceOver allows you navigate through the visible items both by dragging your finger across the screen and by swiping left and right over the screen.
Only that, instead of swiping, you can now use your keyboards arrow keys.
Make sure to have Quick Nav enabled by pressing ← → (The left and right arrow keys) in quick succession. While Quick Nav is enabled, you can iterate over all accessibility items on the screen using ← and →. Quick Nav makes using VoiceOver with a keyboard much easier and the rest of the article assumes you have it running.
Press any of ⌥↑, ⌥↓, ⌥←, or ⌥→ to scroll the currently active scroll view.
Use ⎋ (Escape) to leave the current screen, that is, to quickly select and tap the back button.
To interact with a selected element, press ↑ and ↓ in quick succession. When you're not using the keyboard, you can double-tap anywhere on the screen for the same effect.
Adjusting sliders, page controls or steppers however requires a different key command.
Navigate to the element you want to interact with and select Adjust Value in the Rotor by pressing ↑ and then one of ← or →.
The Rotor is a secondary menu that allows you to chose what happens if you press ↑ or ↓ or swipe up or down on the screen. Once you set it to Adjust Value, you'll be able to use ↑ or ↓ down to adjust values.
There are a couple of other useful settings for the Rotor, such as Vertical Navigation that can be enabled in the Rotor menu in the VoiceOver settings.
Unfortunately, most of the VoiceOver keyboard commands use the awkward combination of the Control and Options keys. If someone knows a way to map that to something easier to reach, such as Caps Lock, please let me know!
To press the Home Button, press ⌃⌥H. If you have good eye-sight or share and office with co-workers, press ⌃⌥S to mute or unmute VoiceOver.
To quickly change VoiceOver settings, such as Speech Rate or Typing Echo, select a setting using ⌃⌥⌘← or ⌃⌥⌘→ and change the selecting settings with ⌃⌥⌘↑ or ⌃⌥⌘↓.
For reference, here's a complete list of all the keyboard shortcuts supported by VoiceOver:
VoiceOver keyboard commands
|Turn on VoiceOver help||⌃⌥K|
|Turn off VoiceOver help||⎋|
|Select the next or previous item||⌃⌥→ or ⌃⌥←|
|Double-tap to activate the selected item||⌃⌥Space|
|Press the Home button||⌃⌥H|
|Move to the status bar||⌃⌥M|
|Read from the current position||⌃⌥A|
|Read from the top||⌃⌥B|
|Mute or unmute VoiceOver||⌃⌥S|
|Open Notification Center||Fn⌃⌥↑|
|Open Control Center||Fn⌃⌥↓|
|Open the Item Chooser||⌃⌥I|
|Double-tap with two fingers (usually toggles playback)||⌃⌥-|
|Adjust the rotor||See Quick Nav|
|Swipe up or down||⌃⌥↑ or ⌃⌥↓|
|Adjust the speech rotor||⌃⌥⌘← or ⌃⌥⌘→|
|Adjust the setting specified by the speech rotor||⌃⌥⌘↑ or ⌃⌥⌘↓|
|Turn the screen curtain on or off||⌃⌥⇧S|
|Return to the previous screen||⎋|
Quick Nav keyboard commands
Turn on Quick Nav to control VoiceOver using the arrow keys.
|Turn Quick Nav on or off||← →|
|Select the next or previous item||→ or ←|
|Select the next or previous item specified by the rotor||↑ or ↓|
|Select the first or last item||⌃↑ or ⌃↓|
|Double-tap to activate the selected item||↑ ↓|
|Scroll up, down, left, or right||⌥↑, ⌥↓, ⌥←, or ⌥→|
|Adjust the rotor||↑ ← or ↑ →|
I hope that this neat trick helps you avoid some arm strain from repeatedly reaching over to your phones. If you'd like to read more about accessibility, check out sessions 200 & 202 from this year's WWDC.
- You may also want to enable Invert Colors for reading in bed, while you're at it.