AT for iPhone: Full Keyboard Access

Your iPhone comes with powerful assistive technology (AT) built in—useful for checking how well your mobile app is supporting accessibility. When mobile apps don’t work well with one AT, they often don’t work with others.

What is Full Keyboard Access?

On iOS and iPadOS devices, people can use a Bluetooth keyboard to interact with the device by enabling Full Keyboard Access (FKA). FKA allows a person to navigate the UI with a keyboard only if the app has been configured properly with interactive elements.

Supporting FKA means ensuring all buttons and controls in mobile apps gain keyboard focus in a logical order, have a visible indication of keyboard focus and can be activated with the keyboard. iOS has some limitations on scrolling content that is not interactive. FKA users must be able to perform all the same actions as tap users without FKA enabled.

Enabling Full Keyboard Access on iOS

Settings app > Accessibility > Keyboards & Typing > Full Keyboard Access > Toggle the Full Keyboard Access switch on or off

FKA is a setting you can leave on all the time once enabled. You can also add it to the Accessibility Shortcut menu to turn it on and off quickly. Pair a Bluetooth keyboard with the device to use it with iOS. By default, a blue keyboard focus indicator will appear around active groups. Active controls will have a light blue overlay.

Screenshot of the iOS Full Keyboard Access screen with the Full Keyboard Access toggle switched on.
Full Keyboard Access settings
Screenshot of the USAA app landing screen with a blue focus indicator around the content pane indicating that a keyboard is active with the device. The "Log on" button is currently in focus.
Keyboard focus active

Using a keyboard

Using a keyboard with iOS/iPadOS is very similar to using a keyboard with a desktop machine. When in doubt, try navigating with arrow keys. For more information on using a keyboard, check out these common keyboard shortcuts.

Keyboard strokeAction
tab / shift tabMoves keyboard focus forwards and backwards
arrow keysMove focus around the active group
spaceActivates buttons, links, controls

Keyboard navigation example

A keyboard user opens the USAA app to the landing screen. She uses the TAB key to move focus from the USAA logo to the content area. She then uses the DOWN arrow key to move focus through several buttons and links on the screen. She lands on the “Log On” button and presses the SPACE key to activate the button.

The screen switches to the Products screen with a heading, close button and four products to choose from. She use the TAB key to move focus from the “close” button into the content area. She then uses the DOWN arrow key to move focus between the four buttons. She moves focus back to the “close” button and uses the SPACE key to return to the landing screen.

AT for iPhone: Voice Control speech input

Your iPhone comes with powerful assistive technology (AT) built in—useful for checking how well your mobile app is supporting accessibility. When mobile apps don’t work well with one AT, they often don’t work with others.

What is Voice Control?

All iOS and iPadOS devices include Voice Control (VC) speech input functionality. Enabling VC allows a person to speak commands to interact with the screen instead of tapping on the screen directly. VC users can say, “Tap $Name” to activate interactive controls without speech flags enabled. To see speech flag hints, VC users can say, “Show names” to display the first word of the accessible name. They can say, “Show numbers” to display a numbered speech flag next to each interactive control instead. For greater control on tight screens, VC users can also say, “Show grid” to display a grid from 1 to 36 squares and say, “Tap $Number” to tap on a square.

Supporting VC means ensuring all buttons and controls in mobile apps have accessible names and that the accessible name contains the visible text label. Speech flags should not appear next to text that is not interactive. VC users must be able to perform all the same actions as screen tap users without VC enabled.

Enabling Voice Control on iOS

Be cautious when enabling any AT on a mobile device. Make sure you understand how to disable it again so you don’t get stuck, unable to navigate the device.

  1. Settings app > Accessibility > Voice Control > Toggle Voice Control switch on/off
  2. Settings app > Accessibility > Accessibility Shortcut > Select Voice Control from the list
  3. Ask Siri, “Enable/disable Voice Control”

My preferred way to turn VC on and off is to ask Siri to “enable/disable Voice Control”. Once VC is enabled, a circle icon appears to the right of the phone time in the upper left of the screen. When this icon is blue, VC is listening for commands. When this icon is gray, VC is sleeping but the microphone is still on which is displayed with a tiny orange dot above the cellphone strength indicator.

screenshot of the iOS Voice Control screen with Voice Control switched on. There is a blue icon next to the phone time indicating that Voice Control is listening.
Voice Control settings
Screenshot of the iOS USAA app login screen with name speech flags displaying next to 7 interactive elements.
Say: Show names
Screenshot of the iOS USAA app login screen with numbered speech flags displaying next to 7 interactive elements.
Say: Show numbers
Screenshot of the iOS USAA app login screen with a grid of 36 numbers displaying over the entire screen.
Say: Show grid

Using Voice Control

  • Say: Show names
  • Say: Tap $Name
  • Say: Show numbers
  • Say: Tap $Number
  • Say: Show grid
  • Say: Stop listening to keep Voice Control enabled but not active
  • Say: Start listening to wake up Voice Control

Video: Voice Control navigation example

A Voice Control user opens the USAA iOS app to the landing screen and says, “Start listening”. The command appears on the screen and numbered speech flags appear next to the interactive controls like a “Log on” button. Next the user says, “Tap 4”. The number 4 speech flag is on a button labeled “Browse USAA Products”. The Products screen opens with numbered speech flags next to the interactive controls. The user says, “Tap 1” to active the close button and return to the previous screen.

The user says, “Show names” and the first word of the accessible names of interactive controls appear as speech flags. Next the user says, “Tap log on” and the login form screen appears with speech flags with words next to the interactive controls. The user says, “Tap Close” to active the close button and return to the previous screen.

The user says, “Show grid” and a grid from 1 to 36 numbered squares appears on top of the screen content. Next, the user says, “Tap 22” to activate one of the grid squares overlaying the “Join USAA” button. The Join USAA screen appears with a grid of numbers. The user says, “Tap close” to activate the close button and return to the previous screen.

AT for iPhone: VoiceOver screen reader

Your iPhone comes with powerful assistive technology (AT) built in—useful for checking how well your mobile app is supporting accessibility. When mobile apps don’t work well with one AT, they often don’t work with others.

What is VoiceOver?

All iOS and iPadOS devices include the VoiceOver (VO) screen reader. Enabling VO allows a person to tap on the screen or drag their finger to hear the contents announced audibly. Many VO users are blind but other people use screen readers too. With VO enabled, swipe right to move sequentially through the content, and swipe left to move backwards through the content. Double-tap anywhere on the screen to activate buttons and controls. The Rotor allows for more advanced screen reader options, like browsing by headings.

Supporting VO means ensuring all buttons and controls in mobile apps have accessible names and that the focus order of the content makes sense when swiping. Content in native mobile apps should be structured with headings and grouped into logical swipe stops. VO users must be able to perform the same actions and reach the same content as sighted users without VO enabled.

Enabling VoiceOver on iOS

Be cautious when enabling any AT on a mobile device. Make sure you understand how to disable it again so you don’t get stuck, unable to navigate the device.

  1. Settings app > Accessibility > VoiceOver > Toggle VoiceOver switch on/off
  2. Settings app > Accessibility > Accessibility Shortcut > Select VoiceOver from the list

My preferred method of enabling VO on iOS is to add “VoiceOver” to the Accessibility Shortcut menu. This allows you to triple-click the (right) side button to turn VO on and off quickly. You can also add other assistive technologies and settings to choose from the menu that appears when you triple-click the side button, including Voice Control and Full Keyboard Access.

screenshot of the iOS VoiceOver screen with the VoiceOver toggle switched on and the caption panel displayed at the bottom announcing that VoiceOver is on.
VoiceOver settings
Screenshot of the iOS Accessibility Shortcut screen with a list of accessibility features to choose from. The VoiceOver option is selected.
Accessibility Shortcut list

Using VoiceOver

  • Triple-click the side button to turn VO on or off
  • Single tap to select an item on the screen
  • Double-tap to activate buttons and controls
  • Swipe right to move forwards in the reading order
  • Swipe left to move backwards in the reading order
  • More VoiceOver gestures for iPhone

Video: VoiceOver navigation example

A VoiceOver user swipes sequentially through the content on the USAA app landing screen starting with the USAA image which announces “USAA image”. Swipe right and VoiceOver announces “Log on button”. Swipe right again and VoiceOver announces “Join USAA button”. Swipe right to the content grouping and VoiceOver announces “Browse USAA Products For insurance, banking, life insurance and advise, let us serve you. button”. Double-tap to activate the “Browse USAA Products” button to go to the Products screen. VoiceOver announces “Close button” and “Products heading”. Swiping through the four buttons available on the screen, VoiceOver announces the visible text and the button role of each swipe stop.