Screen Reader Testing
Using a screen reader is very different than using a monitor and mouse. Testing with a screen reader can be challenging for individuals who have sight, and well-intentioned testers sometimes get it all wrong. The following guidelines can help:
Use the Right Screen Reader
JAWS is the most widely-used screen reader, but it is expensive. NVDA is a free, open-source screen reader that is similar to JAWS and a good option for testing on a budget. On Mac and iOS, VoiceOver is built in, but beware that it works a differently that the others. We usually don't recommend testing with less full-featured screen readers like Narrator or ChromeVox.
Put Down Your Mouse!
While testing with a screen reader, NEVER use a mouse. Since users who are blind cannot use a mouse, using one invalidates screen reader testing. To avoid the inevitable temptation, move your mouse out of reach. It's also cheating to look at the screen to fill in gaps in what you're hearing. To avoid this temptation, at least when you're getting started, turn off your monitor.
Using a screen reader should not be a passive experience. While a screen reader will often start reading screens automatically, it's more effective if you tell it what to read. Take control!
- Ctrl: Pressing the Ctrl (Control) key will temporarily silence your screen reader and put you in charge of what it reads next. Do it often!
- Insert + J (for JAWS) or Insert + N (for NVDA): Before you get started testing, you may need to adjust the screen reader's speech rate. Use these key combinations to open its settings and adjust the speech rate. But remember, but don't change anything else, or you may end up missing -- or causing -- problems that most users won't have!
Learn to Read
Open a web browser and go to a simple web page, preferably one that you know is accessible. Use the following commands to get started reading:
- Ctrl + Home: After the screen reader begins reading the page, interrupt it and re-start at the top of the page. JAWS will read the page title to help confirm you're where you meant to be.
- Down Arrow: Read down the page a "line" at a time. Down Arrow will move to and read the next element, which may be a heading, paragraph, list item, link, form field, table cell, etc. (and may span multiple visible "lines" on the screen). Note that the screen reader may say more than is visible on the screen, for example, indicating a heading level or number of items in a list. You may also hear it say "blank" but that's OK -- screen reader users get used to ignoring this. If the sceen reader only reads part of a line, that's OK too -- there's a setting that controls how much it will read at one time -- just press Down Arrow again to continue.
- Up Arrow: If you need to back up and re-read something, use Up Arrow to re-read the previous line.
Skip to Headings
Get an overview of a web page by reading its headings using any of the following commands
- H: Read the next heading (of any level),
- Number key (e.g., 1, 2, 3): read the next heading at that level, or
- Insert + F6 (JAWS) or Insert + F7, Alt + H (NVDA): Bring up a list of all the headings and skip to the one you're interested in. Move between controls in this (or any) dialog box by using Tab and Shift + Tab, use the Arrow keys to move between options, and press Spacebar to click buttons.
Move to and use links with the following commands:
- Tab: Move to the next link (or form field)
- Shift + Tab: Move back to the previous link (or form field)
- Enter: Activate the current link
- Insert + F7 (JAWS or NVDA): Bring up the "Links List" to quickly find, move to, and/or activate a specific link.
Filling web forms requires the use of a special "Forms Mode" so keyboard commands enter data rather than performing special functions (like reading a heading when you press "H"). JAWS and NVDA will automatically switch in and out of forms mode -- you will hear a "pop", "chime", or other tone when forms mode turns on and off. Get used to recognizing these sounds and keeping track of what mode you're in. While in Forms Mode, some keyboard commands do different things:
- Tab: Move to the next form field (or link).
- Insert + Tab: Re-read the name of the current form field (or link).
- Shift + Tab: Move back to the previous form field (or link).
- Alt + Down Arrow: Open a combo box drop down list.
- Up/Down Arrow: Move between items in a list box, combo box, or radio button group.
- Right/Left Arrow: Move horizontally in a menu bar, tab list, or grid.
- Spacebar: Check or uncheck a checkbox or press a button. (Enter may also work on buttons, but Spacebar is safer.) Note that you don't need to be in Forms Mode to click checkboxes or buttons.
- Enter: Forms Mode should automatically turn on when needed, but if you ever need to turn it on manually, Enter may do it. This is most likely to happen with comboboxes (i.e., drop downs).
- Esc: If you ever seem to be stuck in forms mode, Esc will usually turn it off. (If you're really stuck, try the "+" key on the number pad.)
For other types of controls, look up and use the Keyboard Interactions in the ARIA Authoring Practices Guide (APG)
JAWS and NVDA have powerful, but somewhat complicated, tools for reading tables of data. When they encounter a table, they will say "table with x columns and y rows". After hearing that announcement, press Down Arrow to enter the table and then use the following commands:
- Alt + Ctrl + Right Arrow to read across the row. If you are in the body of the table, the screen reader should say the header of each column so you know what you're reading (assuming the table headers are coded correctly!) When the screen reader says it's at the end of the row, press Down Arrow to move to the first cell of the next row and repeat the process.
- Alt + Ctrl + NumPad 5 (JAWS) or Insert + NumPad 5 (NVDA) will read the current cell with associated row and column headers. Try this periodically to confirm that the table headers have been coded correctly.
- Alt + Ctrl + Up/Down/Left/Right Arrows : Move around the table in any direction. The screen reader will read the associated header of the new column or row (if it has been coded correctly).
- Alt + Ctrl + Home: Move to the beginning of the table.
- Alt + Ctrl + End: Move to the end of the table.
With practice, sighted users can learn to test with a screen reader. The most important thing is to resist the temptation to cheat: Avoid looking at the screen during testing (better yet, turn it off). Don't even try to remember what the screen looks like to fill in information you can't get by listening. And never, ever use the mouse.
Remember that, behind the scenes, a screen reader is performing a complex technical task. Glitches, flukes, and even crashes happen. Learning to use a screen reader requires learning the patience and persistence to re-group from these errors and continue on.
Finally, you will discover that screen readers have many powerful, advanced features; but, remember, just like other computer users, most users are only familiar with the basics. We want to test like a typical user, not find ways to use advanced features to get around problems.