Screen Reader Testing: A Complete Guide to Accessibility Testing with Screen Readers
Reading time: 9 minutes
Introduction: Why Screen Reader Testing Matters
Automated accessibility scanners can catch roughly 30-40% of WCAG issues. The rest — particularly problems related to content meaning, reading order, and interactive behavior — require manual screen reader testing to uncover. If your website has never been tested with a screen reader, there is a strong chance that blind and low-vision users are encountering barriers you do not even know exist.
Screen reader testing is the single most effective way to experience your website the way assistive technology users do. It reveals broken form labels, nonsensical link text, missing landmark regions, and inaccessible dynamic content that no automated tool can fully evaluate. Whether you are a developer building components or a QA tester validating releases, understanding how to test screen reader accessibility is a core professional skill in 2026.
This guide walks you through everything you need: how screen readers work under the hood, which tools to use, essential keyboard shortcuts, a hands-on testing checklist, common pitfalls with code fixes, and how to integrate screen reader accessibility testing into your QA workflow.
What Is a Screen Reader and How Do Screen Readers Work?
A screen reader is assistive technology software that converts on-screen content into synthesized speech or braille output. But what is a screen reader used for beyond simply reading text aloud? Screen readers give blind, low-vision, and some cognitively disabled users full control over their computer — they navigate, interact with forms, read documents, browse the web, and operate applications entirely without a visual display.
Understanding how screen readers work is essential for effective testing. Here is a simplified overview of the process:
- The browser parses HTML into the Document Object Model (DOM).
- The browser builds an accessibility tree — a parallel structure derived from the DOM that strips out visual presentation and retains semantic meaning: roles, names, states, and properties.
- The operating system exposes this tree through a platform accessibility API (UIA on Windows, NSAccessibility on macOS, AT-SPI on Linux).
- The screen reader queries the accessibility API to build its own internal model of the page, which it presents to the user through speech and/or braille.
This chain means that every semantic decision you make in HTML — using a <button> instead of a <div>, providing alt text on images, associating labels with form controls — directly shapes what the screen reader announces. When the accessibility tree is incomplete or inaccurate, the user experience breaks down.
The Virtual Buffer
Desktop screen readers like NVDA and JAWS maintain a "virtual buffer," a linearized text representation of the page that users navigate with arrow keys. This buffer is refreshed when the page loads and updated when ARIA live regions fire. Understanding the virtual buffer helps explain why reading order, heading structure, and landmark regions matter so much during testing.
Popular Screen Readers for Testing
Choosing the right screen reader tester tool depends on your operating system and target audience. Here is a comparison of the four most widely used screen readers:
| Screen Reader | Platform | Cost | Browser Pairing | Approximate Market Share |
|---|---|---|---|---|
| NVDA | Windows | Free (open source) | Firefox, Chrome | ~30% |
| JAWS | Windows | $95/year (licensed) | Chrome, Edge, Firefox | ~40% |
| VoiceOver | macOS / iOS | Free (built-in) | Safari | ~15% |
| TalkBack | Android | Free (built-in) | Chrome | ~10% |
For most teams, testing with NVDA + Firefox on Windows and VoiceOver + Safari on macOS covers the largest share of real-world assistive technology users. If your audience skews toward enterprise or government, adding JAWS screen reader testing to your matrix is strongly recommended, as JAWS remains the most popular screen reader in professional environments.
Getting Started with Screen Reader Testing
NVDA on Windows
- Download NVDA for free from nvaccess.org.
- Run the installer. You can also choose "Create portable copy" to run from a USB drive.
- Open Firefox or Chrome and navigate to your test page.
- NVDA starts automatically after installation. Press
Insert(the NVDA modifier key) to begin using commands. - Use
Insert + Qto quit NVDA when finished.
JAWS on Windows
- Download the JAWS trial from Freedom Scientific's website.
- Install and restart your computer.
- JAWS launches at startup. The modifier key is
Insert. - Pair JAWS with Chrome or Edge for the best compatibility.
VoiceOver on macOS
- No installation needed — VoiceOver is built into macOS.
- Press
Cmd + F5to toggle VoiceOver on and off. - The VoiceOver modifier is
Control + Option(referred to asVO). - Open Safari and navigate to your test page.
TalkBack on Android
- Go to Settings > Accessibility > TalkBack and toggle it on.
- Use swipe gestures to navigate: swipe right for next element, swipe left for previous.
- Double-tap to activate the focused element.
Essential Keyboard Shortcuts for Screen Reader Testing
Memorizing a core set of shortcuts dramatically speeds up your screen reader testing workflow. Below are the most critical commands for the two most commonly used desktop screen readers.
NVDA Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| Start/Stop reading | Insert + Down Arrow |
| Next heading | H |
| Next heading at level (1-6) | 1, 2, 3, 4, 5, or 6 |
| Next landmark | D |
| Next link | K |
| Next form field | F |
| Next table | T |
| Navigate table cells | Ctrl + Alt + Arrow Keys |
| Next list | L |
| Elements list (headings, links, landmarks) | Insert + F7 |
| Toggle forms/focus mode | Insert + Space |
VoiceOver (macOS) Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| Toggle VoiceOver | Cmd + F5 |
| Read next item | VO + Right Arrow |
| Read previous item | VO + Left Arrow |
| Interact with element | VO + Shift + Down Arrow |
| Stop interacting | VO + Shift + Up Arrow |
| Open Rotor | VO + U |
| Next heading | VO + Cmd + H |
| Next link | VO + Cmd + L |
| Read from cursor | VO + A |
| Activate element | VO + Space |
Tip: In NVDA, pressing a single letter key (like H for heading) only works in browse mode. If you are stuck in focus mode, press Insert + Space to switch back.
Screen Reader Testing Checklist
Use this checklist every time you perform screen reader accessibility testing on a page. It covers the most critical areas that affect assistive technology users.
Headings and Document Structure
- Heading hierarchy is logical (H1 followed by H2, not jumping to H4)
- Every page has exactly one H1
- Headings accurately describe the content that follows
Landmark Regions
- Page has
<header>,<nav>,<main>, and<footer>landmarks - Duplicate landmarks are labeled with
aria-label(e.g., two<nav>elements) - You can navigate between landmarks using the screen reader
Links and Buttons
- Link text is descriptive (no "click here" or "read more" without context)
- Buttons are coded as
<button>, not<div onclick> - Links and buttons have distinguishable accessible names
Forms
- Every input has a programmatically associated label
- Required fields are announced as required
- Error messages are associated with their fields and announced
- Form instructions are announced before the user reaches the input
Images
- Informative images have descriptive
alttext - Decorative images have empty
alt=""and are hidden from the accessibility tree - Complex images (charts, infographics) have extended descriptions
Tables
- Data tables use
<th>for headers and<td>for data cells - Complex tables use
scopeorheadersattributes - Layout tables are avoided or marked with
role="presentation"
Dynamic Content
- Status messages use
aria-liveregions - Modal dialogs trap focus and return focus on close
- Content loaded via AJAX is announced to screen readers
Common Screen Reader Accessibility Issues (and How to Fix Them)
Here are the most frequently encountered problems found during screen reader testing, along with code examples showing the wrong and right approach.
Missing Form Labels
Bad — screen reader announces "edit text, blank":
<input type="email" placeholder="Enter your email">
Good — screen reader announces "Email address, edit text":
<label for="email">Email address</label>
<input type="email" id="email" placeholder="Enter your email">
Non-Descriptive Link Text
Bad — screen reader announces "link, click here":
<p>To read our accessibility policy, <a href="/policy">click here</a>.</p>
Good — screen reader announces "link, read our accessibility policy":
<p><a href="/policy">Read our accessibility policy</a>.</p>
Clickable Divs Instead of Buttons
Bad — screen reader does not announce as interactive:
<div class="btn" onclick="submitForm()">Submit</div>
Good — screen reader announces "Submit, button":
<button type="submit" onclick="submitForm()">Submit</button>
Images Without Alt Text
Bad — screen reader announces the file name, "IMG_3847.jpg, image":
<img src="IMG_3847.jpg">
Good — screen reader announces "Team celebrating product launch, image":
<img src="IMG_3847.jpg" alt="Team celebrating product launch">
Missing Live Region for Dynamic Updates
Bad — screen reader says nothing when the cart count updates:
<span id="cart-count">3 items</span>
Good — screen reader announces "5 items" when the count changes:
<span id="cart-count" aria-live="polite">5 items</span>
Screen Reader Testing for Mobile
Mobile usage now accounts for over half of all web traffic, making mobile screen reader testing essential. Both major mobile platforms include built-in screen readers.
VoiceOver on iOS
VoiceOver is deeply integrated into iOS. To enable it, go to Settings > Accessibility > VoiceOver. You can also add it to your Accessibility Shortcut (triple-click the side button) for quick toggling during testing. Key gestures include:
- Swipe right/left — move to next/previous element
- Double-tap — activate the focused element
- Two-finger swipe up — read all from the top
- Rotor (two-finger twist) — choose a navigation method (headings, links, form controls)
TalkBack on Android
TalkBack is Android's built-in screen reader. Enable it via Settings > Accessibility > TalkBack. Core gestures mirror VoiceOver: swipe to navigate, double-tap to activate.
Mobile Accessibility Testing Tools
Several mobile accessibility testing tools can supplement your manual screen reader testing on phones and tablets:
- Accessibility Scanner (Android) — Google's free app that scans your screen for accessibility issues like small touch targets and low contrast.
- Accessibility Inspector (Xcode) — Built into Apple's development tools, it lets you inspect the accessibility properties of any element on iOS.
- achecker.ca — Run your live URLs through our automated scanner to catch code-level issues before you begin manual mobile screen reader testing.
Combining automated scans from tools like achecker.ca with hands-on mobile accessibility testing tools and real device screen reader testing gives you the most complete coverage.
Integrating Screen Reader Testing into QA
Making screen reader testing part of your standard QA accessibility testing workflow ensures that accessibility does not get treated as an afterthought. Here is a practical approach to integration:
Build a Layered Testing Strategy
-
Automated scanning first. Run every page through an automated accessibility checker like achecker.ca during CI/CD or as part of sprint review. This catches the low-hanging fruit — missing alt text, empty buttons, contrast failures, broken ARIA.
-
Keyboard-only testing second. Tab through every interactive element on the page without touching the mouse. Verify that focus order is logical, all controls are reachable, and focus indicators are visible. Keyboard testing catches a different class of bugs than automated scanning and is faster than full screen reader testing.
-
Screen reader testing third. Using your testing checklist, navigate the page with NVDA or VoiceOver. Focus on the areas that automated tools cannot evaluate: reading order, announcement quality, dynamic content behavior, and overall usability.
Assign Ownership
Designate at least one person on your QA team as the screen reader tester specialist. This person builds expertise in NVDA and VoiceOver, maintains the testing checklist, and trains other team members. Rotating this role every quarter prevents knowledge silos.
Define Pass/Fail Criteria
Write concrete acceptance criteria for testing accessibility in your user stories. Instead of vague requirements like "must be accessible," specify:
- "All form fields must announce their label and required state in NVDA."
- "The modal dialog must trap focus and return focus to the trigger button on close."
- "The notification banner must be announced by screen readers without requiring manual navigation."
Track Defects with Context
When logging screen reader bugs, include: the screen reader and version, the browser and version, the exact announcement heard, and the expected announcement. This context makes bugs reproducible and actionable for developers.
Frequently Asked Questions
Do I need to test with every screen reader?
No. Testing with NVDA on Windows and VoiceOver on macOS covers approximately 80-85% of screen reader users. Add JAWS screen reader testing if you serve enterprise or government audiences, and TalkBack if mobile Android is a significant part of your traffic.
Can automated tools replace screen reader testing?
Automated tools like achecker.ca are essential for catching code-level issues at scale, but they cannot replace manual screen reader testing. Automated scans verify that attributes exist in the code; screen reader testing verifies that the actual user experience is coherent and usable. The two approaches are complementary.
How often should I do screen reader testing?
At minimum, test with a screen reader during each major release or whenever significant UI changes are made. For teams practicing continuous delivery, incorporate screen reader spot-checks into your sprint review or demo process as part of your QA accessibility testing cycle.
What is the difference between browse mode and focus mode?
In browse mode (also called virtual buffer mode), the screen reader intercepts keystrokes and lets you navigate using single-letter shortcuts like H for headings. In focus mode, keystrokes pass through to the web page directly, which is necessary for typing in form fields. NVDA toggles between these modes with Insert + Space, and it switches to focus mode automatically when you enter a form field.
Is screen reader testing only for blind users?
While blind users are the primary audience for screen readers, many other people benefit from accessible content. People with low vision may use screen readers alongside magnification. People with learning disabilities may use text-to-speech. Screen reader testing improves the experience for all of these groups and also tends to improve SEO and overall code quality.
Conclusion
Screen reader testing is not optional if you are serious about web accessibility. It is the only reliable way to verify that your website actually works for people who depend on assistive technology. Start with NVDA and VoiceOver, use the checklist and shortcuts in this guide, and build screen reader testing into your regular QA workflow.
For the best results, combine manual screen reader testing with automated scanning. Run your pages through achecker.ca to catch structural and code-level WCAG violations automatically, then follow up with hands-on screen reader testing to evaluate the real-world user experience. Together, these two approaches give you comprehensive accessibility coverage that neither can achieve alone.
Test Your Website's Accessibility
Use our free accessibility checker to identify and fix issues on your website.
Start Free ScanRelated Articles
The 10 Most Common Accessibility Errors (and How to Avoid Them)
Learn to fix the 10 most common accessibility mistakes that affect 80% of websites. Practical examples and immediate solutions included.
The Complete Section 508 Compliance Checklist for Websites (2025)
A comprehensive Section 508 compliance checklist for websites. Learn what 508 compliance requires, how to test for it, and ensure your site meets federal accessibility standards.
Beyond Contrast: How to Master Accessible Design Without Sacrificing Style
Accessible websites don't have to be ugly. Learn how to create stunning, WCAG-compliant designs with proper focus states, color contrast, click targets, and inclusive UX patterns.
