Assistive technology guide, NVDA for Windows testing steps
We’ll take you step by step through how to test a component or feature with NVDA screen reader for Windows. Test with the latest version available.
How to turn NVDA on / off
NVDA is not installed on Windows devices by default.
- To check if you have NVDA already installed on your device, go to the taskbar and search for 'NVDA', you should see the NVDA app listed in the search results, here you can open NVDA.
- If you can't see NVDA, you can download NVDA free of charge.
- When NVDA opens, you will hear an annoucement. If at any time you would like to stop NVDA while announcing something, press 'Ctrl'.
- To activate an item, once it has focus, press 'Enter'.
- There are many NVDA keyboard commands that you can use, though only a few are needed to perform the testing steps, all of which are explained below.
- The NVDA modifier key is usually 'Caps lock' on a laptop or 'Insert' on a desktop.
- Use NVDA with the default settings.
- To exit and close NVDA, press 'NVDA modifier key (usually 'Caps lock' on a laptop or 'Insert' on a desktop) + N' to open the NVDA menu, then select 'Exit'.
It's speaking too fast
If you are new to NVDA, you may find the rate in which announcements are made too quick to understand. To find a speaking rate that you are comfortable with:
- Press 'NVDA modifier key (usually 'Caps lock' on a laptop or 'Insert' on a desktop) + N' to open the NVDA menu, in the 'Preferences' menu, go to 'Settings', then select the 'Speech' category.
- Select the ‘Rate’ slider to make an adjustedment.
- Press the down arrow key to decrease the speaking rate.
- Press the up arrow key to increase the speaking rate.
- When you have adjusted the rate press 'Enter' to apply it.
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.
NVDA can read content in any language as long as you have a speech synthesizer that can speak the language. See speech synthesizers for NVDA.
Back to page contentsTesting 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 NVDA 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 Firefox
Open Firefox, this is the most used browser by NVDA users. Note, the latest ESR (Extended Support Release) version of Firefox will provide the best compatibility with NVDA.
Note: NVDA will work with other browsers, though always test in the most used browser.
Step 2 - Go to the testing url
Navigate to or type in the testing url.
Step 3 - Turn NVDA on
Go to the taskbar and search for 'NVDA', you should see the NVDA app listed in the search results, here you can open NVDA.
See how to turn NVDA on / off for more detailed instructions.
Step 4 - Get in position to start testing
Return to Firefox and get in position to start testing by navigating as follows, depending on the context on which you are testing your component, either within a page, at the top of a page or in isolation. This will ensure that when you start testing you don’t miss out any elements within the component that you can’t see, such as:
- Semantics for any landmark or sectioning elements
- Visually hidden off screen elements
Testing a component within a page
Navigate as follows, to the last element in the component before the component you're going to test.
- Press the down arrow key until you reach the last element in the component before the component you're going to test.
- If the component you're going to test starts with a heading, you may find it quicker to navigate to that heading using the heading keyboard shortcut, press 'H' to move through headings until you reach the component heading, then press the up arrow key until you reach the last element in the component before the component you're going to test.
Testing a component at the top of a page or in isolation
Ensure you are right at the top of the page.
To move to the top of the page, press 'Ctrl + Fn + Home', you will then hear the first item on the page announced.
Press the down arrow key to move to the next item, press the up arrow key to move to the previous item.
Step 5 - Navigate through all items
You are now ready to start testing.
- Press the down arrow key, you should enter the component.
- Listen to what's announced and check that the semantics and announced content match the screen reader UX. If the documented screen reader UX is missing, ask UX for this before continuing.
- If you need to hear what was announced again, press the up arrow key to move to the previous item, then press the down arrow key again.
- Arrow down through all items in the component, listening to what’s announced, until you reach the first item in the component after the component you're testing, or the bottom of the page if testing in isolation.
Navigating through all items bug examples
- You press the down arrow key and nothing is announced
- What's announced doesn’t match the screen reader UX
- Semantics not announced for any landmark or sectioning elements
- Something is announced twice
Step 6 - Navigate by headings
- Get in position to start testing, using the heading keyboard shortcut, press 'Shift + H' to navigate through headings, until you reach the last heading in the component before the one you're testing, or if testing in isolation (or there are no other headings) move to the top of the page, press 'Ctrl + Fn + Home', you will then hear the first item on the page announced.
- Press 'H' to read the first heading in the component you're testing. Check that the semantics and announced content match the screen reader UX.
- If you need to hear what was announced again, press 'Shift + H' to move to the previous heading, then press 'H' again.
- Use the heading keyboard shortcut, to go through all headings in the component, listening to what’s announced, until you reach the first heading in the component after the component you're testing, or the bottom of the page if testing in isolation (or there are no other headings).
Navigating by headings bug examples
- A heading is defined in the screen reader UX, you press 'H' and nothing is announced
- A heading was announced and none were defined in the screen reader UX
- A heading is announced twice
- What's announced doesn’t match the screen reader UX
Step 7 - Navigate by links and buttons
- Get in position to start testing, navigate through actionable elements, such as links, buttons and form elements, press 'Shift + Tab' until you reach the last actionable element in the component before the one you're testing, or if testing in isolation (or there are no other actionable elements) move to the top of the page, press 'Ctrl + Fn + Home', you will then hear the first item on the page announced.
- Press 'Tab' to read the first link or button in the component you're testing. Check that the semantics and announced content match the screen reader UX.
- If you need to hear what was announced again, press 'Shift + Tab' to move to the previous link or button, then press 'Tab' again.
- Press 'Tab' to go through all links and buttons in the component, listening to what’s announced, until you reach the first link or button in the component after the component you're testing, or the bottom of the page if testing in isolation (or there are no other links or buttons).
To activate a link or button, once it has focus, press 'Enter'.
Navigating by links and buttons bug examples
- A link or button is defined in the screen reader UX, you press 'Tab', focus moves but nothing is announced
- A link or button was announced and none were defined in the screen reader UX
- A link or button is announced twice
- What's announced doesn’t match the screen reader UX
Step 8 - Navigate by landmarks
- Get in position to start testing, using the landmark keyboard shortcut, press 'Shift + D' to navigate through landmarks until you reach a landmark in a component before the one you're testing, or if testing in isolation (or there are no other landmarks) move to the top of the page, press 'Ctrl + Fn + Home', you will then hear the first item on the page announced.
- Press 'D' to read the first landmark in the component you're testing. Check that the semantics and announced content match the screen reader UX.
- If you need to hear what was announced again, press 'Shift + D' to move to the previous landmark, then press 'D' again.
- Press 'D' to go through all landmarks in the component, listening to what’s announced, until you reach the first landmark after the component you're testing, or the bottom of the page if testing in isolation (or there are no other landmarks).
Navigating by landmarks bug examples
- A landmark is defined in the screen reader UX, you press 'D' and nothing is announced
- A landmark was announced and none were defined in the screen reader UX
- A landmark was announced without a label
- What's announced doesn’t match the screen reader UX
Step 9 - Accessibility acceptance criteria
Accessibility acceptance criteria can be used for additional manual testing steps specific to your component and documented screen reader UX, specific NVDA keyboard 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 a screen reader is met with NVDA on Windows.
Step 10 - Components with a table
- Get in position to start testing, using the table keyboard shortcut, press 'Shift + T' to navigate through tables until you reach a table in a component before the one you're testing, or if testing in isolation (or there are no other tables) move to the top of the page, press 'Ctrl + Fn + Home', you will then hear the first item on the page announced.
- Press 'T' to move to the first table in the component you're testing. Check that the number of rows and columns announced is correct, and that a table caption was announced if one was defined in the screen reader UX. If you need to hear what was announced again, press the up arrow key to move to the previous item, then press the down arrow key.
- Navigate the table by cell, reading through each row and column, until all table cells are read. Press 'Alt + Ctrl + right arrow' to move to the next cell, press 'Alt + Ctrl + left arrow' to move to the previous cell, press 'Alt + Ctrl + down arrow' to move to the cell below, and press 'Alt + Ctrl + up arrow' to move to the cell above. Check that the semantics and announced content match the screen reader UX.
- Press 'T' to go through all tables in the component, repeating the above steps, listening to what’s announced, until you reach the first table after the component you're testing, or the bottom of the page if testing in isolation (or there are no other tables).
Navigating by tables bug examples
- You press 'T' and nothing is announced
- Number of rows and columns announced isn't correct
- A table was announced without a caption
- Table headings aren't announced when moving through table data
- A table was announced and none where defined in the screen reader UX
- What's announced doesn’t match the screen reader UX
Step 11 - 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