VoiceOver Keyboard Commands for iOS 4.1 and Later
As many of you are already aware, Apple just released iOS 4.1 yesterday. One of the new features with this version is the ability to fully control both iPhone and VoiceOver (the built-in screen for blind users) from a Bluetooth keyboard connected to iPhone. This also applies to the iPod Touch, though not having used a Touch, I cannot speak directly to its capabilities.
There are numerous new commands one can issue from a Bluetooth keyboard to control the device, so much so that there is no longer any need to touch the device’s screen when using a keyboard. Apple unfortunately has very little documentation when it comes to accessibility (strange for a company who is so actively pursuing it); therefore, I wanted to put together this list of keyboard commands. I won’t go so far as to claim this is a comprehensive list, but I am pretty sure it covers almost everything, if not everything. It took me a long time to play around and figure out these commands, so I hope to save other blind users time by posting them here.
Update on March 9, 2011 (iOS 4.3)
Today Apple released iOS 4.3, and there are a couple of changes to the gestures. The list of commands below have been updated to reflect these changes.
A Few Important Notes
Before I go into the various keyboard commands, there are a few things I would like to mention. First, for Windows users, there are a couple noteworthy differences between a traditional PC keyboard and an Apple keyboard. Instead of the control, Windows, and alt modifiers, Apple devices use control, command, and option. Control maps to control, Windos maps to command, and alt maps to option.
Second, in the list of keyboard commands below, you will see references to a “VO” modifier. In the world of Apple, the “VO” (or VoiceOver) key is control + option. That is, if the keystroke says, for example, “VO + down arrow”, you perform this keystroke by holding down control and option, then pressing the down arrow.
Third, when listing keys, I use both a + (plus) and * (asterisk) connectors. A + indicates which modifiers (such as control, command, or option) are to be used. The * indicates the keys are to be pressed simultaneously. For example, “left arrow * right arrow” means you press the left and right arrow keys at the exact same time.
Fourth, if you find some of the keys with multiple modifiers do not seem to work with your Bluetooth keyboard, try using the other modifier. For example, my Bluetooth keyboard has control, command, and option keys to the left of the spacebar, but it also has an option key to the right of the spacebar. When performing any commands that require holding down all three modifiers, such as to increase the VoiceOver volume (VO + command + up arrow), I have to use the right option key; if I use the left option key, the command does not work. This is no doubt a limitation of my keyboard, not iOS 4.1, but it is good to keep it in mind.
Fifth, most of the text navigation commands that make use of the command key can also be performed by substituting the control key for the command key (many thanks to Esther for this tip). This is especially useful for some Windows-based Bluetooth keyboards.
Sixth, iOS 4.1 has something called quick nav. Quick nav, when turned on, allows for easier navigation between elements using the keyboard. To turn quick nav on and off, you hit the left and right arrows simultaneously.
Seventh, I have broken the following 57 keyboard commands into four categories: general navigation, VoiceOver controls, text navigation, and Unix-style text navigation. For each action, I have listed the corresponding keystroke when quick nav is on and when quick nav is off. Some commands can only be performed with quick nav either on or off, so the corresponding entry in the table states N/A if the command does not apply. I have also listed the corresponding VoiceOver screen gesture (where applicable) for reference and ease of transition.
Eighth, I would like to thank Esther for her excellent comment, with which I was able to expand this list to include even more commands. I am now quite certain this list is about as comprehensive as possible.
Finally, if you think I have missed any keystroke or have any questions, please leave a comment, and I will address it.
And now for the commands…
General Navigation
Action | Keystroke (quick nav on) | Keystroke (quick nav off) | Equivalent Gesture |
Toggle quick nav | left arrow * right arrow | left arrow * right arrow | N/A |
Previous element | left arrow | VO + left arrow | flick left |
Next element | right arrow | VO + right arrow | flick right |
Previous element by roter | up arrow | VO + up arrow | flick up |
Next element by roter | down arrow | VO + down arrow | flick down |
Previous roter setting | up arrow * left arrow | N/A | rotate counterclockwise |
Next roter setting | up arrow * right arrow | N/A | rotate clockwise |
Activate selected element | up arrow * down arrow | VO + spacebar | double tap |
Previous text field | shift + tab | shift + tab | N/A |
Next text field | tab | tab | N/A |
Read page from selected item | VO + a | VO + a | 2 finger flick down |
Read page from top | VO + b | VO + b | 2 finger flick up |
Move to first element | control + up arrow | N/A | 4 finger tap near top of screen |
Move to last element | control + down arrow | N/A | 4 finger tap near bottom of screen |
Scroll up 1 page | option + up arrow | N/A | 3 finger flick down |
Scroll down 1 page | option + down arrow | N/A | 3 finger flick up |
Scroll left 1 page | option + left arrow | N/A | 3 finger flick right |
Scroll right 1 page | option + right arrow | N/A | 3 finger flick left |
Move to status bar | VO + m | VO + m | N/A |
Activate back button | escape | escape | 2 finger scrub |
Activate home button | VO + h | VO + h | N/A |
Start/stop current action | VO + – | VO + – | 2 finger double tap |
VoiceOver Controls
Action | Keystroke (quick nav on) | Keystroke (quick nav off) | Equivalent Gesture |
Previous VO setting | VO + command + left arrow | VO + command + left arrow | N/A |
Next VO setting | VO + command + right arrow | VO + command + right arrow | N/A |
Increment selected VO setting | VO + command + up arrow | VO + command + up arrow | N/A |
Decrement selected VO setting | VO + command + down arrow | VO + command + down arrow | N/A |
Pause/resume speech | control | control | 2 finger single tap |
Toggle speech | VO + s | VO + s | 3 finger double tap |
Toggle screen curtain | VO + shift + s | VO + shift + s | 3 finger triple tap |
VoiceOver help | VO + k | VO + k | N/A |
Exit VoiceOver help | escape | escape | N/A |
Text Navigation
Action | Keystroke (quick nav on) | Keystroke (quick nav off) | Equivalent Gesture |
Previous character | N/A | left arrow | N/A |
Next character | N/A | right arrow | N/A |
Previous word | N/A | option + left arrow | N/A |
Next word | N/A | option + right arrow | N/A |
Previous line | N/A | up arrow | N/A |
Next line | N/A | down arrow | N/A |
Start of line | N/A | command + left arrow | N/A |
End of line | N/A | command + right arrow | N/A |
Top of document | N/A | command + up arrow | N/A |
End of document | N/A | command + down arrow | N/A |
Select text | N/A | shift + navigation keystroke | N/A |
Select all | N/A | command + a | N/A |
Cut | N/A | command + x | N/A |
Copy | N/A | command + c | N/A |
Paste | N/A | command + v | N/A |
Undo | N/A | command + z | N/A |
Redo | N/A | shift + command + z | N/A |
Previous int. keyboard | N/A | shift + command + spacebar | N/A |
Next int. keyboard | N/A | command + spacebar | N/A |
Unix-Style Text Navigation
Action | Keystroke (quick nav on) | Keystroke (quick nav off) | Equivalent Gesture |
Previous character | N/A | control + b | N/A |
Next character | N/A | control + f | N/A |
Start of line | N/A | control + a | N/A |
End of line | N/A | control + e | N/A |
Backspace | N/A | control + h | N/A |
Delete to end of line | N/A | control + k | N/A |
Return (new line) | N/A | control + m | N/A |