Evaluating accessibility with ChromeVox

Google ChromeVox has a very low learning curve and is perhaps the easiest screen reader for web production folks to use for accessibility verification. ChromeVox is intended to be the native screen reader for Chrome OS, but it has the worthwhile side benefit of being available as an extension for the Chrome browser. It has a very simple command set. Basic navigation is as follows:

  • Alt + Control + Down Arrow = Navigate forward
  • Alt + Control + Up Arrrow= Navigate backward
  • Alt + Control + Right Arrow = More detail
  • Alt + Control + Left Arrow = Less detail
  • Enter = Activate current item
  • Space = Force click on current item

There are many other commands at your disposal to navigate particular page elements, but these commands will suffice for most testing. View a list of ChromeVox shortcut keys (PDF).

Because it is brand new, ChromeVox depends on experimental Chrome APIs, and you can’t install ChromeVox without first enabling them in Chrome. To enable the experimental APIs, enter chrome://flags in Chrome and click Enable under Experimental Extension APIs. Or, you can run Chrome from the command line with the --enable-experimental-extension-apis flag.

It would be nice if you could toggle ChromeVox from an icon on the menu bar, but at present, you need to open up the extension window in Chrome and enable or disable the extension from there. A bit clunky but it gets the job done.

The testing procedure

The following is a sample testing sequence using ChromeVox that you can use as a starting point for your evaluation.

  1. Download and install ChromeVox.
  2. Open ChromeVox by enabling the extension in the extensions window. From the wrench menu select Tools > Extensions, and then click the Enable link underneath ChromeVox.
  3. Type in the address you want to check in the address/search field.
  4. Select the “object” parsing granularity (alt+control+right_arrow once). This granularity ensures that links will be read. After you are feeling comfortable, explore the other granularity settings.
  5. Listen to the page from top to bottom (alt+control+down_arrow repeatedly)
  6. Return to the top of the page (command+r)
  7. Listen to the page title. It should be read automatically after reloading the page. Does it uniquely describe the page content?
  8. Tab through links and form inputs (tab). Are they read in an order that makes sense? Does any content receive focus besides links and inputs?
  9. Scan the headings (alt+control+n+h and alt+control+p+h). Does the page have headings? Are the heading levels read?
  10. Scan the link phrases (alt+control+n+l and alt+control+p+l). Do the individual phrases make sense? Are there ambiguous or redundant entries?
  11. Tab through the links:
    • Does each link work? (press alt+control+enter to check)
    • Does each link phrase match the destination page title?
  12. Test any web forms:
    • Go to the next form field (alt+control+n+e for text fields and tab for controls)
    • Are form labels announced with input boxes or operations?
    • Do the forms work?
    • Can data be entered and the form submitted? (alt+control+enter)
  13. Tables (This functionality seems to be flaky at present.):
    • Go to the next table (alt+control+t+e).
    • Are table captions or summaries read?
    • Does the table information make sense navigating between cells? (alt+control+down_arrow and alt+control+up_arrow)
    • See if you can get the headings to be announced for each cell (alt+control+t+h)
  14. Widgets:
    • Is the type of widget (e.g., “drop down list”) announced when it receives focus?
    • Can the widget be manipulated using the keyboard?
    • Is it clear how to use it?
    • If it is not clear how to use the widget, is an explanation provided?
  15. Quit ChromeVox (disable extension in Extensions folder)

(This is list is a modified version from the original JAWS protocol published by the Usability & Accessibility Center, Michigan State University)