Practical Guides

Screen Reader Testing: A Complete Guide to Accessibility Testing with Screen Readers

Accessibility Team
14 min read
Screen ReadersAccessibility TestingNVDAJAWSVoiceOverWCAG
Share:

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:

  1. The browser parses HTML into the Document Object Model (DOM).
  2. 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.
  3. The operating system exposes this tree through a platform accessibility API (UIA on Windows, NSAccessibility on macOS, AT-SPI on Linux).
  4. 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 ReaderPlatformCostBrowser PairingApproximate Market Share
NVDAWindowsFree (open source)Firefox, Chrome~30%
JAWSWindows$95/year (licensed)Chrome, Edge, Firefox~40%
VoiceOvermacOS / iOSFree (built-in)Safari~15%
TalkBackAndroidFree (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

  1. Download NVDA for free from nvaccess.org.
  2. Run the installer. You can also choose "Create portable copy" to run from a USB drive.
  3. Open Firefox or Chrome and navigate to your test page.
  4. NVDA starts automatically after installation. Press Insert (the NVDA modifier key) to begin using commands.
  5. Use Insert + Q to quit NVDA when finished.

JAWS on Windows

  1. Download the JAWS trial from Freedom Scientific's website.
  2. Install and restart your computer.
  3. JAWS launches at startup. The modifier key is Insert.
  4. Pair JAWS with Chrome or Edge for the best compatibility.

VoiceOver on macOS

  1. No installation needed — VoiceOver is built into macOS.
  2. Press Cmd + F5 to toggle VoiceOver on and off.
  3. The VoiceOver modifier is Control + Option (referred to as VO).
  4. Open Safari and navigate to your test page.

TalkBack on Android

  1. Go to Settings > Accessibility > TalkBack and toggle it on.
  2. Use swipe gestures to navigate: swipe right for next element, swipe left for previous.
  3. 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

ActionShortcut
Start/Stop readingInsert + Down Arrow
Next headingH
Next heading at level (1-6)1, 2, 3, 4, 5, or 6
Next landmarkD
Next linkK
Next form fieldF
Next tableT
Navigate table cellsCtrl + Alt + Arrow Keys
Next listL
Elements list (headings, links, landmarks)Insert + F7
Toggle forms/focus modeInsert + Space

VoiceOver (macOS) Keyboard Shortcuts

ActionShortcut
Toggle VoiceOverCmd + F5
Read next itemVO + Right Arrow
Read previous itemVO + Left Arrow
Interact with elementVO + Shift + Down Arrow
Stop interactingVO + Shift + Up Arrow
Open RotorVO + U
Next headingVO + Cmd + H
Next linkVO + Cmd + L
Read from cursorVO + A
Activate elementVO + 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 alt text
  • 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 scope or headers attributes
  • Layout tables are avoided or marked with role="presentation"

Dynamic Content

  • Status messages use aria-live regions
  • 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

  1. 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.

  2. 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.

  3. 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 Scan

Related Articles

© 2025 Accessibility Checker. Built for WCAG compliance.