NVDA
NonVisual Desktop Access — a free, open-source Windows screen reader from NV Access. The most-tested screen reader by web developers; close to JAWS in market share.
NVDA — NonVisual Desktop Access — is the free, open-source Windows screen reader maintained by NV Access, a not-for-profit founded by Michael Curran and James Teh. First released in 2006, NVDA has grown from a hobbyist project into one of the two dominant desktop screen readers worldwide.
Why NVDA matters more than its age suggests
Three properties combine to make NVDA the de facto screen reader for accessibility QA work:
- It is free. No licensing budget, no SMA, no employer-pays discount required. Anyone — disabled users, developers, auditors, QA teams — can install it instantly.
- It is open-source. Source on GitHub, Python-based, with a public issue tracker. Developers debugging screen-reader-specific bugs can read the code that produces the behaviour.
- It tracks the modern web closely. The NV Access maintainers ship roughly four updates per year, and the project moves fast on browser-engine and ARIA-spec changes.
In WebAIM’s screen-reader user surveys, NVDA has steadily closed the gap with JAWS — particularly among users outside enterprise contexts and in regions where JAWS pricing is prohibitive. Among accessibility professionals doing daily QA work, NVDA is often the primary screen reader tested.
Browser pairings
NVDA is most reliable with Firefox and Chromium-based browsers (Chrome, Edge). Internet Explorer is no longer supported (and is end-of-life regardless). The historical “best pairing for spec-correct behaviour” was NVDA + Firefox; modern Chromium versions have closed most of the gap and NVDA + Chrome is now a perfectly reasonable default.
Features worth knowing for accessibility QA
- Speech viewer — a window that displays what NVDA is speaking, in real time. Invaluable for screen-recording bug reports without needing the audio.
- Logging — NVDA exposes structured logs of what it sees in the accessibility tree, including ARIA properties as parsed. The logs often surface mismatches between what the developer wrote and what the screen reader actually receives.
- Browse mode vs focus mode — analogous to JAWS’s virtual cursor vs forms mode. NVDA switches between them automatically based on whether the focused element is in editable / interactive content. Bugs in custom widgets often manifest as NVDA refusing to enter focus mode when it should, or staying stuck in focus mode after the widget closes.
Testing protocol
A reasonable baseline for NVDA-based accessibility QA on web content:
- Install latest stable NVDA + latest stable Firefox or Chrome.
- Disable speech-rate boost (set rate to a normal listening speed, not the speedrun developers tend to leave on for testing).
- Tab through every interactive element on the page. Listen for what the screen reader announces — name, role, state.
- Use NVDA’s elements list (
Insert+F7) to inspect the page’s landmarks, headings, links, and form fields. This is a fast way to audit structure. - Activate every interactive control with Enter or Space. Verify the announcement matches the actual outcome.