The complete reference for testing websites with NVDA, JAWS, VoiceOver, and TalkBack. Includes setup instructions, command references, testing procedures, and downloadable checklists.
A screen reader is assistive technology software that converts on-screen content into synthesized speech or refreshable braille output. Screen readers enable people who are blind, have low vision, or have certain cognitive disabilities to perceive and interact with digital content. Rather than simply reading text aloud, screen readers interpret the structure, roles, states, and relationships of interface elements, giving users a comprehensive understanding of a web page without relying on visual presentation.
Screen readers work by accessing the accessibility tree, a structured representation of the page that the browser builds from the HTML DOM. The browser exposes this tree through platform-specific accessibility APIs -- UI Automation on Windows, NSAccessibility on macOS, and AccessibilityService on Android. When your HTML uses proper semantic elements (headings, lists, buttons, form labels) and ARIA attributes where needed, the accessibility tree accurately represents the page. When it does not, the screen reader experience breaks down, sometimes rendering a site completely unusable.
| Screen Reader | Platform | Cost | Market Share |
|---|---|---|---|
| JAWS | Windows | $90/yr or $1,000+ | ~40% |
| NVDA | Windows | Free (open source) | ~30% |
| VoiceOver | macOS / iOS | Free (built-in) | ~15% |
| TalkBack | Android | Free (built-in) | ~10% |
| Narrator | Windows | Free (built-in) | ~5% |
Source: WebAIM Screen Reader User Survey (approximate figures based on primary screen reader usage)
Each screen reader works best with a specific browser. Using the wrong pairing can produce misleading test results.
NVDA (NonVisual Desktop Access) is a free, open-source screen reader for Windows. It is the recommended starting point for developers new to screen reader testing because it costs nothing, receives frequent updates, and pairs excellently with Firefox.
| Action | Shortcut |
|---|---|
| Start / Stop NVDA | Ctrl + Alt + N |
| Stop speaking | Ctrl |
| Read from cursor | NVDA + Down Arrow |
| Read current line | NVDA + Up Arrow |
| Next heading | H |
| Next link | K |
| Next form field | F |
| Next button | B |
| Next landmark | D |
| Elements list | NVDA + F7 |
| Toggle browse / focus mode | NVDA + Space |
| Read page title | NVDA + T |
| Next table | T |
| Navigate table cells | Ctrl + Alt + Arrow keys |
JAWS (Job Access With Speech) by Freedom Scientific is the most widely used commercial screen reader, holding approximately 40% of the desktop screen reader market. It is the industry standard in enterprise and government environments and includes advanced scripting capabilities for customizing behavior on specific applications and websites.
| Action | Shortcut |
|---|---|
| Stop speaking | Ctrl |
| Say current line | Insert + Up Arrow |
| Say all (read from cursor) | Insert + Down Arrow |
| Next heading | H |
| Headings list | Insert + F6 |
| Links list | Insert + F7 |
| Forms list | Insert + F5 |
| Next landmark | ; (semicolon) |
| Toggle virtual cursor | Insert + Z |
| JAWS find | Ctrl + Insert + F |
VoiceOver is Apple's built-in screen reader for macOS. It ships with every Mac and requires no installation. VoiceOver must be used with Safari for the most accurate web testing, as Safari is the only macOS browser that fully exposes accessibility APIs to VoiceOver.
| Action | Shortcut |
|---|---|
| Toggle VoiceOver | Cmd + F5 |
| Stop speaking | Ctrl |
| Read from cursor | VO + A |
| Next element | VO + Right Arrow |
| Previous element | VO + Left Arrow |
| Interact with group | VO + Shift + Down Arrow |
| Stop interacting | VO + Shift + Up Arrow |
| Activate element | VO + Space |
| Open Rotor | VO + U |
| Next heading | VO + Cmd + H |
| Next link | VO + Cmd + L |
The Rotor is VoiceOver's most powerful feature. It opens a navigable list where you can switch between headings, links, landmarks, form controls, tables, and more using the Left and Right arrow keys. Within each category, use the Up and Down arrow keys to select a specific item, then press Enter to navigate to it. Press Escape to close the Rotor.
The Rotor gives you a bird's-eye view of the page structure. Use it to verify that your heading hierarchy is logical, that all landmarks are labeled correctly, and that form controls have proper accessible names. If elements are missing from the Rotor categories, they are likely missing the semantic HTML or ARIA attributes needed for screen reader recognition.
VoiceOver on iOS uses touch-based gestures instead of keyboard commands. It is the dominant screen reader on mobile devices and essential for testing mobile web experiences. Enable it via Settings → Accessibility → VoiceOver, or configure the Accessibility Shortcut (triple-click the Side button) for quick toggling during testing sessions.
| Action | Shortcut |
|---|---|
| Next element | Swipe right |
| Previous element | Swipe left |
| Activate element | Double-tap |
| Read from top | Two-finger swipe up |
| Read from cursor | Two-finger swipe down |
| Pause / Resume speaking | Two-finger tap |
| Scroll | Three-finger swipe up/down |
| Change navigation mode | Rotor (two-finger twist) |
| Navigate by rotor setting | Swipe up/down |
TalkBack is Google's built-in screen reader for Android devices. Enable it via Settings → Accessibility → TalkBack. On many devices, you can also hold both volume keys for three seconds to toggle TalkBack on and off quickly.
| Action | Shortcut |
|---|---|
| Next element | Swipe right |
| Previous element | Swipe left |
| Activate element | Double-tap |
| Next heading | Swipe up then right |
| Next link | Swipe down then right |
| Previous heading | Swipe up then left |
| Scroll forward | Two-finger swipe up |
| Scroll backward | Two-finger swipe down |
| TalkBack menu | Three-finger tap |
| Home / Back | Swipe up then down |
Compare the 10 most common testing tasks across all screen readers. Select a tab to view the commands for each screen reader.
| Action | Shortcut |
|---|---|
| Navigate by headings | H / Shift + H |
| Navigate by links | K / Shift + K |
| Navigate by landmarks | D / Shift + D |
| Navigate by form fields | F / Shift + F |
| Read current element | NVDA + Up Arrow |
| Read all from cursor | NVDA + Down Arrow |
| Stop speaking | Ctrl |
| Open elements list | NVDA + F7 |
| Toggle browse / focus mode | NVDA + Space |
| Activate element | Enter or NVDA + Enter |
Follow these six scenarios to systematically test the most critical accessibility concerns with a screen reader. Each scenario describes what to test, the expected behavior, and the most common failures.
Use this interactive checklist to track your screen reader testing progress. Check off each item as you verify it. Download a PDF version to use offline.
Start with NVDA on Windows or VoiceOver on macOS. NVDA is free, open-source, and widely used, making it an ideal first screen reader for developers. Pair it with Firefox for the best testing experience. If you are on a Mac, VoiceOver is already built in and works best with Safari.
No. Testing with one desktop screen reader (NVDA or JAWS) and one mobile screen reader (VoiceOver on iOS or TalkBack on Android) covers the vast majority of your user base. NVDA plus Firefox is the recommended starting point because it is free and catches the most common issues. Add JAWS and VoiceOver testing when you need higher coverage.
According to the WebAIM Screen Reader Survey, JAWS holds approximately 40% of the desktop screen reader market, followed by NVDA at around 30%. On mobile devices, VoiceOver dominates iOS usage, and TalkBack is the primary screen reader on Android. Overall, JAWS and NVDA together represent roughly 70% of desktop screen reader usage.
Screen readers work by accessing the accessibility tree, a structured representation of the web page that the browser builds from the HTML DOM. The screen reader uses the accessibility APIs provided by the operating system (such as UI Automation on Windows, NSAccessibility on macOS, and AccessibilityService on Android) to read element names, roles, states, and values aloud via text-to-speech or to a refreshable Braille display. Proper semantic HTML and ARIA attributes ensure the accessibility tree accurately represents the page content.
The World Health Organization estimates that at least 2.2 billion people globally have a near or distance vision impairment. While not all of these users require a screen reader, surveys indicate that millions actively use screen readers daily. The WebAIM survey consistently finds that the vast majority of screen reader users are people who are blind or have low vision, though a growing number of users with cognitive and learning disabilities also use screen readers or read-aloud features.
No. While both are called VoiceOver and share the same brand, they have different interfaces and commands. macOS VoiceOver uses keyboard shortcuts with the VO modifier (Control + Option), whereas iOS VoiceOver uses touch gestures such as swipe, double tap, and the rotor (a two-finger twist). The underlying accessibility APIs also differ between macOS and iOS. You should test with both if your site serves desktop and mobile users.
Comprehensive tools, checklists, and guides to help you create inclusive digital experiences