Assistive technology guide, Voice Control on iPhone testing steps
We’ll take you step by step through how to test a component or feature using your voice; with Voice Control, the speech recognition software on iPhone. Test with the latest version available.
How to turn Voice Control on / off
Voice Control for iOS comes already installed on iPhones. It's recommended to use a shortcut to turn Voice Control on or off.
- Go to ‘Settings’, then within the ‘Accessibility’ menu look for ‘Accessibility Shortcut’, make sure Voice Control is selected here. This shortcut will enable you to toggle Voice Control on or off, from any screen or web page, at any time.
- With the Voice Control shortcut enabled, on newer iPhones, you will now be able to triple click the side button to toggle Voice Control on or off at any time. With older style iPhones the shortcut is a triple click of the ‘home’ button.
- When Voice Control is on and ready to use, a microphone will be displayed in the status bar at the top of the screen. If using Voice Control for the first time a required file will be downloaded automatically.
- You can tell Voice Control not to listen by saying 'Go to sleep', say 'Wake up' to toggle listening back on. The microphone in the status bar indicates if Voice Control is listening or not.
- When Voice Control is on and listening, you can speak commands just like you would perform an action by touch. For example, you can say 'Swipe down' or 'Swipe up' to scroll a web page.
- To see a list of voice commands, go to the ‘Accessibility’ menu in ‘Settings’, then under the 'Voice Control' menu read 'Learn more' at the top. There are many Voice Control commands that you can use, though only a few are needed to perform the testing steps, all of which are explained below.
- If you find Voice Control is having difficulty understanding your voice commands, try speaking slower and as clearly as possible. Also make sure there is no background noise, to reduce this, you could use headphones with a microphone.
Testing in a foreign language
When testing with assistive technology it's important to test with content in a language that you can understand and with a language that is supported by the assistive technology. For further information see the assistive technology testing in a foreign language guide.
- Voice Control isn't available in all countries or regions
- Speak voice commands in the OS language
Testing steps
We’ll take you step by step through how to test a component or feature. Following the same steps every time, ensures that everyone is testing using the same methods and using the most common techniques. The steps also enable anyone, in any role, to use Voice Control for the first time.
To become more familiar and proficient using assistive technology, resist the temptation to cheat, always try to navigate like a user would.
As you go, make notes of any bugs you find.
Step 1 - Open Safari
Open Safari, this is the most used browser by Voice Control users.
Note: Voice Control is an Apple product built primarily for other Apple products such as Safari, while Voice Control will work with other browsers you may encounter bugs which aren’t present in Safari; the default Voice Control browser.
Step 2 - Go to the testing url
Navigate to or type in the testing url.
Step 3 - Turn Voice Control on
Triple click the side button to turn Voice Control on via the ‘Accessibility shortcut’.
Step 4 - Get in position to start testing
First check Voice Control is working ok by saying 'Swipe up', the web page should scroll down. Next, get in position to start testing by saying 'Swipe up' or 'Swipe down' until you can see the start of the component you're going to test.
Step 5 - Activate all actionable elements
You are now ready to start testing.
All actionable elements, such as links, buttons and form elements, should be able to be used with a voice command. Go through each actionable element in turn:
- If the element has some visible text, say 'Tap' followed by the text you can see. For example, to activate a link with text of 'Powerful earthquake hits coast' say 'Tap Powerful earthquake hits coast'. If there is more than one link on screen with the same text you will now be presented with a number for each element, say the number of the element you wish to activate, such as '2'.
- If the element has no visible text, a visual affordance for the element should provide a clue to the name of the element. For example, if the element only has an icon, such as a menu icon, try saying 'Tap menu'.
- If you are unable to activate the element by the above methods, say 'Show numbers' or 'Show names', you will now be presented with a number or name for each element. Say 'Tap' followed by the displayed number or name for the element, such as 'Tap 5' or 'Tap Settings'.
- If you are still unable to activate the element, say 'Show grid', a numbered grid will now be displayed over the page. Locate the grid number where you would tap to activate the element, then say 'Tap' plus the grid number, for example 'Tap 3'. The central area of the grid square is used as the tap point, this needs to be over the element, if it is not, say the grid number, for example '3', you will then be presented with a smaller grid to select from. To hide the grid, say 'Hide grid'
- Go through all actionable elements in the component including those within expandable or popup content, activating each element in turn, until you reach the end of the component you're testing.
- If you find Voice Control is having difficulty understanding your voice commands, try speaking slower and as clearly as possible. Also make sure there is no background noise, to reduce this, you could use headphones with a microphone.
After activating a link, to go back to the component you're testing, say 'Tap back' or 'Go back'.
Actionable elements bug examples
- A link or button with no visible text does not have a visual affordance giving a clue to the name of the element
- An actionable element does not have a displayed number or name when saying the voice command 'Show numbers' or 'Show names'
- A button that expands or shows further content cannot be activated
- An actionable element cannot be activated with a voice command
- The name of an actionable element doesn’t match the documented UX
Step 6 - Components with a scrollable or swipeable area
If the component has a horizontal scrollable area, or a horizontal swipeable area such as a carousel, ensure you can view all the content in this area.
- Say 'Show grid', a numbered grid will now be displayed over the page.
- Locate the grid number where you would swipe from by touch to scroll the area, then say 'Swipe right' or 'Swipe left' plus the grid number, for example 'Swipe right 3'. The central area of the grid square is used as the swipe point, this needs to be over the element, if it is not, say the grid number, for example '3', you will then be presented with a smaller grid to select from.
- Ensure you can view all content in the scrollable / swipeable area.
- Go through all actionable elements in the scrollable / swipeable area, activating each element in turn, until you reach the end of the scrollable / swipeable area.
- Follow the steps above to return to the default view of the scrollable / swipeable area.
If the component has any scrollable / swipeable areas which can be navigated vertically, such as an embedded map, follow the steps above replacing 'Swipe right' or 'Swipe left' with 'Swipe up' or 'Swipe down'.
In addition, if the component has a large scrollable or swipeable area, when in view ensure that this area does not interfere with the ability to view content above or below the area. For example, if a scrollable map fills the majority of the viewport, when this is in view can you navigate to the content below this with a voice command? With the large scrollable or swipeable area in view, say 'Swipe up' and 'Swipe down' checking that you can view content above and below any such areas in the component.
Scrollable or swipeable area bug examples
- You cannot view all content in a scrollable / swipeable area with voice commands
- Actionable elements within a scrollable / swipeable area, such as links and buttons, cannot be activated with voice commands
- You cannot return to the default view of the scrollable / swipeable area with voice commands
- When a large scrollable or swipeable area is in view, you cannot view content above / below this area with voice commands
Step 7 - Components with a text field
Check any text fields can be completed and then submitted without any validation errors.
- Say 'Show numbers' or 'Show names', you will now be presented with a number or name for each element. Say 'Tap' followed by the displayed number or name for the text field, such as 'Tap 1' or 'Tap Email'.
- Complete the field by saying the text you are required to enter. If you make a mistake, say 'delete line' to start again. To see a list of commands you can say to dictate and edit text, go to the ‘Accessibility’ menu in ‘Settings’, then under the 'Voice Control' menu read 'Learn more' at the top.
- Go through all text fields in the component, completing each in turn, before then acivating the submit button with a voice command, such as 'Tap sign in'.
Text field bug examples
- You cannot enter the required text with voice commands
- You cannot submit text entered with voice commands
- You cannot submit text entered with voice commands without getting a validation error
Step 8 - Accessibility acceptance criteria
Accessibility acceptance criteria can be used for additional manual testing steps specific to your component and documented UX, specific Voice Control commands maybe needed.
- Read the accessibility acceptance criteria. If the accessibility acceptance criteria is missing, ask your team's business analyst for the criteria before continuing.
- Check that any criteria that is specific to using speech recognition software is met with Voice Control on iPhone.
Step 9 - Document any bugs
Document any accessibility bugs found, include as much information as you can, including information on how to replicate the issue and the bug priority level.
Note, this guide takes one approach, there are other ways you could do this. Back to top