I have had many occasions to “look” at web sites with a screen reader. These informal tests have come at the request of developers to help them understand, in practice, how accessible these web sites may be. In my own experience, and talking with other screen reader users, I have observed some practices that screen reader users routinely do that non-user testers sometimes do not. This document shares some of those practices to give developers and testers a better understanding of how screen reader users interact with web sites and some tips on how to make those interactions easier.
JAWS (Job Access With Speech) is only one of several screen readers available to persons with visual impairments. However, it is the most frequently used—by approximately 50% of the screen reader user population. It’s pricey, so if you cannot purchase your own version, download the demo version. The demo will work for 40 minutes per session, then you’ll have to reboot your computer.
To download the demo go to:
The JAWS web site also has a great page called “Surf’s Up” for learning how to become a power user of JAWS with the web. It can be found at:
There are other screen readers out there. Learn more about them by going to
Nonvisual Desktop Access (NVDA) (free)
System Access to Go
GETTING READY TO TEST
1. Install JAWS on your computer. You’ll be prompted whether you want to have JAWS start when your computer boots up. Unless you plan on having a dedicated computer running a licensed version of JAWS, you probably don’t want it to start at bootup.
2. When you’re ready to test, start JAWS. If it’s your first time using JAWS, you’ll probably want to adjust the speech rate so that it is comfortable for you. You can do that by using Ctrl+Alt+Page Up and Ctrl+Alt+Page Down.
3. Unplug your mouse, or hide it somewhere out of reach.
4. Start your web browser. You’ll hear JAWS starting to speak.
5. If necessary, maximize the window by pressing Alt-Space+x.
6. Load your web page. To get to the address bar, press Use your browsers keyboard commands to get to the address bar and type in the address.
HOW JAWS READS THE PAGE
When JAWS “reads” the web page, it’s not actually reading what is being shown on your screen. It is looking at the HTML file associated with the page and reading that, plus adding other helpful information. Generally that means, JAWS will “say” the following information:
1. How much of the page has loaded. (JAWS does this because when pages load slowly, there’s nothing for JAWS to read yet, and so it’s letting the user know it’s coming – sort of like a progress bar.)
2. The title of the page.
3. Some summary information about the page (e.g., number of regions, landmarks, frames, headings, and links. This is useful for basic orientation to the page).
4. Then the actual page content, generally from upper-left to lower-right.
It’s hard to actually say exactly how a page will be read because it depends on how the page is constructed in the HTML file. JAWS reads through the page in source-code order. To open the web page source code file, press the Alt key to put focus in the menu bar and then use the arrow keys to open the View menu and then choose the page source option.
In general, a page will be read with the top banner area first, then the navigation bar, and then the main content area, from top to bottom.
GENERAL APPROACH OF A SCREEN READER USER
Screen reader users first listen to see if they have arrived at the page they intended. If it’s the right place, few users will sit and listen to the page being read from the top to the bottom, each line, left to right because this would take way too long. They most often silence JAWS by hitting “control.” Their goal is to scan the page, just like people do with their eyes. However, because it’s not as easy to scan a page by listening to it compared to seeing it, they want to find the most useful part of the page. Their next step depends on whether they’re familiar with the page or not.
If they know exactly what they need on the page, they will use Ctrl+F to find an uncommon text string on the page or they’ll use JAWS’s “Link List” (by pressing Insert+F7) to find a specific link for what they want. They may also use headers to jump to the desired section.
If they’re unfamiliar with the page, users first try to determine the layout of the page. This is done in many different ways, but usually involves tabbing or arrowing through the links on the page (the first set of links usually are main navigation groups) and listening to the page’s major headings (which can be skipped to by using the 1 through 6 keys, corresponding to the H1 to H6 HTML attributes). You can also use JAWS’s “Headings List” by pressing Insert+F6. Once they have a good feel for the page, they will keep the general content like the navigation bar in their memory and then they will make an educated guess about what part of the page most likely has the content they want.
HOW TO MOVE AROUND A WEB PAGE USING THE KEYBOARD
Interacting with a web page using a screen reader is not only different because it’s being done with speech, rather than sight, but because you need to use the keyboard for everything, instead of using a mouse. Here are some basic keyboard commands for moving around a web site.
To Do: Most Users:
Move from link to link going down the page Press Tab
Move from link to link going up the page Press Shift+Tab
Follow a link or activate a button Highlight the item and then Press Enter
Stop JAWS from reading Press Ctrl
Move to the top of the page Press Ctrl+Home
Read the page line by line Use the arrow keys
Read from position to end of page Press Insert+Down Arrow
Read first line of each paragraph Press Control+Down Arrow
Check or un-check a checkbox Press Space
Open a dropdown box Press Alt+Down Arrow
Enter Forms Mode Highlight an entry field and then Press Enter
Exit Forms Mode Numpad Plus key
Navigate to next heading Press “h”
Move to the next button Press “b”
Note: JAWS refers to the Insert key on the keyboard as the “JAWS key.” For additional keyboard assistance with JAWS you may activate the keyboard help with Insert+1 to review the functions of each key or key combination using JAWS. Be sure to toggle off keyboard help with Insert+1 when finished.
To put this into practice, pick one or two tasks that any user might do with the web page. These tasks are specific to the purpose of the page and can be anything, from finding the link to take you to an article, filling out a form, adding something to a shopping cart, etc.
As one becomes more and more familiar with a particular page, then one knows how to move around.
To evaluate the page, listen carefully to each line—is all the information you see being spoken? Also, many blind people will not listen all the way through text so make sure the most important information is in the first half of the line.
COMMON PROBLEMS TO LOOK FOR
Another tip, which comes from the “Surf’s Up” page, is that JAWS provides context-sensitive help for many different elements you might encounter in web pages. To read help information for the current web page or element within a web page, press INSERT + F1. For general help withbrowsers, press INSERT + F1 twice quickly while the browser is the active window.
Listen for redundant information. For example—some alt tags say “link to homepage.” JAWS automatically says “link” for links, so one hears “link link to homepage.” That is a lot to listen to when all you want to communicate is “home” –a better choice for an alt tag.
In general, don’t make the alt tags any more wordy than they need to be to convey the intended meaning.
Navigation and Links
Determine if there is a navigation system to allow the user to skip repeated links—either a “skip to” link or use HTML headers or landmarks. Links in the page that skip to another part of the page are especially important for the navigation bars most sites have, that way the user doesn’t have to listen to the same set of links every time they go to a new page. Test and see if it works.
To see if you have links with the same label that go different places, have JAWS list your links by pressing INSERT+F7. Look at and listen to the list—you may see several “more,” “help,” or “click here” links. They don’t mean much out of context. Make sure links have just enough information in them to allow for non-contextual identification.
If there are form fields on the page, test to see if they work well with Jaws. You will hear a tone indicating you have entered a text field and a corresponding one indicating you have exited. Be sure and test form elements involving a calendar as they often are problematic with Jaws.
Some JAWS users use the “B” key to jump to buttons. Sometimes what the text says is a button is coded as a link, not a button, causing confusion for the JAWS user. You may want to search for the word “button” to find where you refer to pressing a button, and then press “B” is the button you referring to coded as a button or as a link—if it is coded correctly, JAWS will jump to that button.
Click a link that opens a pop-up window. Make sure JAWS tells you it’s a new window. If not, the user needs to know about that before the window is opened. Otherwise, they won’t know to close the current window to get back to the previous page. Make sure the pop-up has a Close button, otherwise use Alt+F4 to close the pop-up.
Listen for JAWS to tell you about tables. If the tables are only used to control layout, they should not include any table header elements (th). Additionally, you can further hide these tables from JAWS by setting the summary attribute to summary=””. If the tables are used to present data then it is important to include use table heading elements (th) with the scope attribute set to either row or column to allow JAWS to properly convey table heading information. Test data tables by using the JAWS Table Reading Commands to navigate through the table. Control+Alt+up, down, left or right arrow keys. As you move across a row, JAWS will announce column headings as they change for each data cell. As you move down a column, JAWS will announce the row headings. If you are lost, you can use Control+Alt+Numpad 5 to get JAWS to announce both headings associated with the data cell.
Also be aware that some files posted on Internet sites pose unique challenges. For example, PDF files may take a while to load causing some to believe they are not accessible. Sometimes they take a long while to load only to learn that they are not accessible. Thus many screen reader users avoid opening PDF files because of their experience. Flash presents similar problems unless the file has been created to be accessible.
Note: You may also want to test your web pages without JAWS and without your mouse, doing everything from the keyboard. This is because keyboard operations sometimes react differently when JAWS is loaded and some people with physical disabilities use the menus because they cannot use a mouse, but do not use JAWS.
THE FINAL WORD
If there’s one thing to learn from your testing of web pages with JAWS, it’s that HTML (and even Flash and PDF) are not accessible or inaccessible by itself. It’s all a matter of how they’re implemented. Small changes can make a big difference to users with screen readers. Knowing how someone uses a web page makes it easier to design it.
I wish to thank Aaron Bangor for his contributions to this article
Jaws users are generally careful about updating their software because sometimes accessibility is worse in the update, or Jaws scripts have not been written for the newer version. For this reason one may want to look at browser versions that are less frequently updated. For example you can try the extended support version of Firefox as discussed on the JFW listserve in June, 2013.