← Accessibility Insights & Resources

Screen Reader Testing: How to Test Your Website with NVDA and VoiceOver

Which screen readers and browsers to use, the keys you need to get started, and a page test script you can run this afternoon.

Get a manual WCAG audit

Screen reader testing means using your website the way a blind or low-vision visitor does: with the screen reader announcing each element and the keyboard (or touch gestures) doing the navigating. It's the most direct way to check whether your headings, links, images, forms and custom controls make sense when they're heard instead of seen.

To start, you need one free screen reader and one browser. On Windows, install NVDA and use it with Chrome or Firefox. On a Mac or iPhone, VoiceOver is built in; use it with Safari. Learn about ten commands, then work through a page with a short script: page title, headings, landmarks, images, links, forms, error messages and anything that opens or updates. This guide gives you all three: the pairings, the commands and the script.

Screen reader testing finds problems automated tools can't, because a scanner never hears the page. Our article on automated vs manual accessibility testing explains where that line falls.

Which screen readers and browsers to test with

The best data on what people actually use comes from WebAIM's Screen Reader User Survey #11, conducted in July and August 2026 with 1,780 valid responses. Among respondents:

  • Primary desktop or laptop screen reader: JAWS 55.0%, NVDA 32.9%, VoiceOver 6.5%.
  • Most common screen reader and browser combinations: JAWS with Chrome 31.2%, NVDA with Chrome 17.3%, JAWS with Edge 17.0%, NVDA with Firefox 9.1%.
  • Mobile screen readers commonly used: VoiceOver 72.2%, TalkBack 29.5%.

WebAIM notes the sample was not controlled and may not represent all screen reader users, and 54.1% of respondents were in North America. Shares also move between surveys: in Survey #10 (December 2023 to January 2024), JAWS was at 40.5% and NVDA at 37.7%. Use the numbers to choose pairings, not to predict your own audience.

For most teams, this gives a practical test matrix:

Screen readerPlatformBrowserWhy test it
NVDA (free)WindowsChrome, then FirefoxFree, widely used, and the easiest way to start on Windows
VoiceOver (built in)iPhone and iPadSafariThe dominant mobile screen reader in the survey
VoiceOver (built in)macOSSafariFree on every Mac; Safari is the browser most VoiceOver users pair it with
JAWS (commercial)WindowsChrome or EdgeThe most-used desktop screen reader; common in workplaces
TalkBack (built in)AndroidChromeIf your audience is heavily Android

If you can only do one, NVDA with Chrome on Windows covers a large share of desktop use at no cost. If you can do two, add VoiceOver on an iPhone. Different screen readers interpret the same code differently, so testing more than one helps you separate a bug in your site from a quirk in one product.

Before you start

  • Learn how to stop it talking first. On NVDA and VoiceOver for Mac, press Control. On iPhone, tap with two fingers.
  • Set an exit route on iPhone. Before turning VoiceOver on, go to Settings > Accessibility > Accessibility Shortcut and choose VoiceOver. Then a triple-click of the side button (or Home button) turns it on and off. Otherwise the gestures change, and new testers get stuck.
  • Use a visual transcript. NVDA's Speech Viewer (NVDA menu, then Tools) shows everything NVDA says as text, which makes notes and screenshots much easier.
  • Know the two modes. Screen readers read web pages in a browse or reading mode, where single letters jump between elements, and switch to a focus or forms mode for typing into fields. Most confusion in early testing comes from not knowing which mode you're in.
  • Don't look at the screen for the first pass. Or at least don't trust it. The point is to hear what the code says, not what the layout shows.

NVDA testing on Windows: the commands you need

Download NVDA free from NV Access. The NVDA key is Insert by default. These commands come from the NVDA command quick reference; in browse mode, add Shift to any single-letter key to move backwards.

TaskNVDA keys
Start NVDACtrl + Alt + N
Stop speechCtrl
Read from current position (say all)NVDA + Down Arrow
Read the window titleNVDA + T
Switch between browse and focus modeNVDA + Space
Next heading / heading at level 1 to 6H / 1 to 6
Next landmarkD
Next link / button / form fieldK / B / F
Next graphic / list / tableG / L / T
Move between table cellsCtrl + Alt + Arrow keys
Elements list (headings, links, landmarks)NVDA + F7
Move through interactive elementsTab / Shift + Tab
Quit NVDANVDA + Q

VoiceOver testing on macOS and iOS

VoiceOver on a Mac

The VoiceOver modifier, written "VO," is Control + Option, or Caps Lock. Commands below are from Apple's VoiceOver User Guide. To test keyboard access in Safari without VoiceOver, also turn on "Press Tab to highlight each item on a webpage" in Safari's Advanced settings.

TaskVoiceOver keys (Mac)
Turn VoiceOver on or offCommand + F5
Pause or resume speechControl
Read from the VoiceOver cursorVO + A
Next / previous itemVO + Right Arrow / VO + Left Arrow
Activate a link or buttonVO + Space
Open the rotor (lists of headings, links, landmarks, form controls) VO + U, then Left/Right Arrow to pick a list, Up/Down Arrow to move, Return to go
Next heading / link / tableVO + Command + H / L / T
Interact with a group / stop interactingVO + Shift + Down Arrow / VO + Shift + Up Arrow
VoiceOver helpVO + H

VoiceOver on iPhone and iPad

Turn it on in Settings > Accessibility > VoiceOver, or with the Accessibility Shortcut set up above. Apple's guide to VoiceOver gestures on iPhone lists them all; these are enough for a first test.

TaskGesture
Next / previous itemSwipe right / swipe left with one finger
Activate the selected itemDouble-tap
Read from the top / from the selected itemTwo-finger swipe up / two-finger swipe down
Pause or resume speechTwo-finger tap
Choose a rotor setting (for example Headings or Links)Rotate two fingers on the screen
Move by the rotor settingSwipe down (next) / swipe up (previous)
Go back or dismiss an alertTwo-finger scrub (a quick "z" shape)

A screen reader testing checklist for any page

Run this script on each page template and on the key journeys (contact form, booking, checkout). For each step, note what you heard, what you expected, and the WCAG criterion involved.

  1. Page title. On load, does the announced title identify the page and the site? (2.4.2 Page Titled)
  2. Language. Is the content read in the right voice and pronunciation? A French page read with English pronunciation points to a missing or wrong lang attribute. (3.1.1)
  3. Headings. Open the elements list or rotor. Is there one H1 that names the page? Do the headings outline the content, at levels that reflect the structure? (1.3.1, 2.4.6)
  4. Landmarks. Can you jump to the header, navigation, main content and footer? (1.3.1)
  5. Skip link. Press Tab once from the top. Is there a "skip to main content" link, and does it move you there? (2.4.1 Bypass Blocks)
  6. Reading order. Use say all from the top. Does the content come out in an order that makes sense? Is anything hidden on screen still being read, or anything visible being skipped? (1.3.2)
  7. Images. Do informative images announce useful alt text, and do decorative images stay silent? Do you hear any file names? (1.1.1)
  8. Links. Open the links list. Would each link make sense with only its text, or at least with its surrounding sentence? (2.4.4)
  9. Buttons and custom controls. Does every button have a name? Do menus, accordions and tabs announce their state, such as "expanded" or "collapsed," and update when you activate them? (4.1.2)
  10. Form fields. Tab through each form. Is every field's label read, along with whether it's required and any instructions? (1.3.1, 3.3.2)
  11. Form errors. Submit the form empty or with a mistake. Is the error announced or easy to find, and does it say which field and how to fix it? (3.3.1, 3.3.3)
  12. Dialogs and pop-ups. When a modal opens, does focus move into it, stay in it, and return to the trigger when it closes? Can you close it with Escape? (2.4.3, 2.1.2)
  13. Dynamic updates. When something changes without a page load, such as search results, an "added to cart" message or a loading spinner, is it announced? (4.1.3, a WCAG 2.1 criterion)
  14. Data tables. When moving between cells, are the column and row headers read? (1.3.1)
  15. Mobile pass. Repeat the key steps with VoiceOver on an iPhone, swiping through the whole page. Is anything unreachable, or reached in a confusing order?

Many of these overlap with keyboard checks, so it's worth running our keyboard accessibility tests first. Problems with forms are common enough to have their own guide: form field accessibility.

Want an expert to run the script for you?

Our manual WCAG audits include screen reader testing on your key templates and journeys, with every finding mapped to the criterion it breaks and a recommended fix.

See the manual audit

Common screen reader findings and what they mean

What you hearLikely causeWCAG
"Button" with no nameIcon-only button with no text or accessible name4.1.2
"Link, graphic, IMG_4032.jpg"Missing alt text, so the file name is read instead1.1.1
A clickable item read as plain text, or skipped by Tab A div or span with a click handler instead of a button 2.1.1, 4.1.2
"Edit, blank" with no labelPlaceholder used instead of a label, or label not associated1.3.1, 3.3.2
"Read more, link" ten times in the links listLink text that doesn't describe the destination2.4.4
Nothing after submitting a form with errorsErrors shown visually but not announced or linked to fields3.3.1
Page content read behind an open dialogFocus not moved into the modal or not contained2.4.3
Menu items read while the menu looks closedContent visually hidden but not hidden from assistive technology2.4.3 (when the items take focus)
No headings found, or every heading at the same levelHeadings styled with CSS instead of heading elements1.3.1

Several of these come from ARIA used incorrectly, or not at all where custom components need it. Our guide to ARIA best practices covers when to use it and when native HTML does the job better.

The limits of testing it yourself

Sighted testers using a screen reader for the first time navigate differently from someone who uses one every day. Experienced users rely on shortcuts, quick lists and their own settings, and they have workarounds you won't think of. That cuts both ways: you'll trip over things that wouldn't bother them, and miss things that would.

Not every difference between screen readers is your bug, either. If something works in NVDA but not in VoiceOver, check whether your code follows the standard before rewriting it for one product. WCAG doesn't require testing with any particular screen reader; it requires outcomes, and screen reader testing is how you check several of them in practice. For evidence you can rely on, such as for an AODA compliance question or a procurement requirement, combine your own testing with an expert audit and, where you can, testing by people who use assistive technology every day.

Frequently asked questions

Which screen reader should I test with first?

NVDA with Chrome on Windows is a good first choice: it's free and widely used. If you're on a Mac, start with VoiceOver and Safari. Add VoiceOver on an iPhone next, since it's the most used mobile screen reader in WebAIM's survey.

Is NVDA free?

Yes. NVDA is a free, open-source screen reader for Windows from NV Access, a non-profit. VoiceOver is built into Apple devices and TalkBack into most Android devices.

Can I do all my screen reader testing on a Mac?

You can do a useful pass, but most desktop screen reader users in WebAIM's survey use Windows with JAWS or NVDA. If you only have a Mac, consider testing NVDA in a Windows virtual machine.

Do I need to test with JAWS?

If your users are likely to be in workplaces, government or education, JAWS is worth including, since it's the most-used primary desktop screen reader in the latest WebAIM survey. It's commercial software, so many teams start with NVDA and add JAWS for key journeys.

Is screen reader testing required for WCAG or AODA compliance?

Neither WCAG nor the AODA names a testing method. They require that your content meets the success criteria. Several criteria, such as name, role and value, reading order and status messages, are hard to verify any other way, so screen reader testing is a standard part of a credible audit.

How long does screen reader testing take?

It depends on the page. Once you know the commands, a simple content page is quick to check; a long form or an interactive tool takes much longer, and each extra screen reader adds another pass. Budget extra time for your first few pages while you learn.