Screen readers make digital content usable for people with visual impairments. Among the most widely adopted is NVDA (NonVisual Desktop Access), a free, open-source screen reader for Windows that converts on-screen elements into speech or braille.
NVDA is the most commonly used screen reader among respondents to WebAIM’s Screen Reader User Survey #10, ahead of JAWS, making it one of the most widely relied-on assistive technologies in accessibility testing.
This article covers what NVDA screen reader testing involves, why it matters, and how to perform it effectively.
What is NVDA Screen Reader Testing?
NVDA is a free, open-source screen reader for Microsoft Windows. Developed by Michael Curran in 2006, with James Teh later joining the project, it is now maintained by their nonprofit organization, NV Access.
NVDA converts text, buttons, form fields, and other interface elements into synthesized speech or braille output, enabling blind and low-vision users to navigate digital content by keyboard.
NVDA screen reader testing evaluates how well a website or application supports this interaction and identifies issues such as missing alternative text, unclear heading structures, and unlabelled form controls.
Read More:How to Test Websites with Screen Readers
Why Does NVDA Screen Reader Testing Matter?
NVDA is widely used among Windows users who prefer open-source assistive technology. Skipping NVDA in an accessibility strategy risks poor experiences for these users and gaps against standards like WCAG, ADA, and Section 508.
Testing with NVDA helps teams:
- Meet WCAG 2.1, ADA, and Section 508 requirements by confirming content is exposed correctly to assistive technology.
- Catch usability problems sighted testing misses, such as unlabeled buttons or incorrect focus order.
- Support users who rely on NVDA to navigate content as effectively as sighted users.
Read More: How to Test Websites with Screen Readers
How Does NVDA Work?
NVDA converts on-screen content into speech or braille by reading from the operating system’s accessibility APIs, primarily Microsoft UI Automation, along with IAccessible2 and Microsoft Active Accessibility for older applications. This lets it interpret the structure and behavior of UI elements on a page or in an app.
NVDA is written in Python, licensed under GPL version 2, and available in more than 60 languages. Key features include:
- Text-to-speech output. Converts on-screen text, headings, links, and buttons into spoken audio.
- Keyboard navigation. Lets users move through content with arrow keys, tab, shift-tab, and shortcuts, without a mouse.
- Customizable settings. Users can adjust voice speed, pitch, punctuation level, and verbosity.
Read More: 19 Best Accessibility Testing Tools
NVDA Screen Reader Testing Best Practices
Effective NVDA testing goes beyond simply turning on the screen reader. It requires structured testing based on real user interaction patterns, semantic markup, and accessibility best practices.
- Use Semantic HTML: Tags like h1–h6, nav, main, and section give NVDA a logical reading order and let users navigate by heading and landmark shortcuts.
- Label Everything: Form fields, buttons, and links need aria-label, aria-labelledby, or an associated label element so NVDA announces them accurately.
- Test Dynamic Content: Modals, tabs, and alerts need to be included in testing, with ARIA live regions used to announce updates.
- Test the Way Users Actually Navigate: Keyboard-only, with varied reading settings, across full flows like signup, checkout, or dashboards.
Read More:ADA Standards for Accessible Design
Common NVDA Testing Issues and Fixes
Even well-designed websites can fall short on screen reader accessibility. NVDA testing often uncovers gaps that aren’t obvious during standard QA.
- Missing Alt Text: NVDA announces the word graphic with no context when alt attributes are missing. Add descriptive alt text for meaningful images, and use an empty alt=”” for decorative ones.
- Improper Heading Structure: Skipping levels, such as going from h1 to h4, breaks navigation for users who rely on headings. Keep heading levels sequential.
- Unlabeled Form Fields: Fields without a linked label or aria-label leave users guessing their purpose. Every input needs one or the other.
- Inaccessible Dynamic Content: Pop-ups, alerts, and content updates that aren’t announced by NVDA need ARIA live regions (aria-live=”polite” or aria-live=”assertive”)
Read More:508 Compliance Testing Tools
How to Test NVDA in a Real Device Environment?
Reliable NVDA testing needs conditions that match how real users browse, which includes actual Windows machines, multiple browsers, and both manual and automated coverage.
- Real Device Testing: Testing on actual Windows environments with real browsers produces more reliable results than emulation.
- Cross-Browser Coverage: NVDA behavior can differ across Chrome, Firefox, and Edge, so testing across all three catches browser-specific issues.
- Manual and Automated Testing: Manual testing catches usability and context issues automated scans miss; automated scans catch structural issues at scale and can run in CI/CD.
A signup form, for example, should be tested to confirm NVDA announces each field correctly, that tab order follows a logical sequence, and that errors are communicated clearly.
Read More: Perform NVDA Testing with Screen Readers
Mobile Accessibility Considerations With NVDA Screen Reader
NVDA runs on Windows desktops only, not mobile devices. It can be used to test the mobile view of responsive sites by emulating smaller screen sizes on a Windows browser, but this doesn’t replace testing with mobile-native screen readers like TalkBack (Android) and VoiceOver (iOS).
1. Mobile Accessibility Considerations
NVDA doesn’t run directly on mobile devices, but it can be used to test the mobile view of responsive sites on Windows browsers by emulating smaller screen sizes. This lets testers check how accessible mobile layouts behave with NVDA.
It’s worth complementing NVDA testing with mobile-native screen readers like TalkBack (Android) and VoiceOver (iOS) to verify full accessibility on handheld devices.
2. Challenges of mobile NVDA testing
- Responsive Behavior: Content may collapse or shift in mobile views, which can confuse screen readers if not coded properly.
- Touch Targets vs. Keyboard Navigation: NVDA uses keyboard input, which doesn’t reflect touch behavior, so developers must verify both interaction modes.
- Dynamic Content: Dropdown menus, mobile navs, or modal dialogues can behave differently across viewports and may not announce correctly if not implemented accessibly.
Read More:Accessibility in UX Design
How to Choose Tools for NVDA Screen Reader Testing?
Tool selection should reflect the target platform, browser coverage, test frequency, and level of automation required. Screen readers test the user experience, while automated scanners detect rule-based accessibility issues. Most teams need both.
| Testing requirement | Recommended tool | When to choose it |
|---|---|---|
| Manual screen reader testing on Windows | NVDA | Use NVDA to test keyboard navigation, focus order, accessible names, announcements, forms, dialogs, and dynamic content on Windows. |
| NVDA testing across Windows and browser combinations | BrowserStack Accessibility Testing | Choose BrowserStack when teams need NVDA on real Windows machines without maintaining local test environments. It also supports automated NVDA interactions, captured screen reader output, and validation within test scripts. |
| Comparison with another Windows screen reader | JAWS | Use JAWS when the supported audience or enterprise environment includes it. Comparing JAWS and NVDA can expose differences in announcements and interaction behavior. |
| Basic Windows compatibility checks | Narrator | Choose Narrator when Windows-native screen reader support is part of the product requirement. It should not be treated as a substitute for NVDA or JAWS testing. |
| Testing on Apple platforms | VoiceOver | Use VoiceOver for websites and applications running on macOS, iOS, or iPadOS. NVDA does not run on Apple operating systems. |
| Testing Android experiences | TalkBack | Use TalkBack for Android websites and applications. It covers mobile gestures, focus movement, control announcements, and touch exploration. |
| Automated accessibility checks in CI | axe-core or axe DevTools | Choose axe-core for rule-based checks within automated test pipelines. Axe DevTools adds browser-based testing and guided review features. Neither replaces screen reader testing. |
| Visual inspection during development | WAVE | Use WAVE for quick browser-based review of headings, landmarks, labels, contrast findings, and document structure. |
| General Chrome page auditing | Lighthouse | Choose Lighthouse when accessibility checks need to run alongside performance, SEO, and page-quality audits. Its accessibility audit is narrower than a dedicated accessibility-testing workflow. |
A usual workflow begins with axe-core, WAVE, or Lighthouse to identify rule-based issues. NVDA testing should then cover reading order, focus behavior, announcements, forms, dialogs, and complete keyboard workflows.
Add JAWS, Narrator, VoiceOver, or TalkBack only when those platforms and screen readers fall within the supported audience.
Read More: Perform NVDA Testing with Screen Readers
Conclusion
NVDA testing catches accessibility gaps that automated scans and sighted QA miss. Combining semantic markup, clear labeling, and structured manual testing with NVDA helps teams meet compliance standards and build interfaces that work for the users who rely on them.