[Skip navigation links]
Login

Techniques for WCAG 2.0 and 2.1 Screen reader compatibility

Last updated: April 7, 2019

Shows how WCAG sufficient techniques and failures behave in commonly used screen readers.

The results include two types of test:

WCAG sufficient techniques - reliability by user agent

Reliability of WCAG sufficient techniques in different screen reader / browser combinations. Expected failures (e.g. missing ALT on an IMG) are not included in the reliability graph.

The solid area in the graph shows percentage of tests that pass in all tested interaction modes. The cross hatched area shows partial passes that only work in some interaction modes. An example of a partial pass is when form labels are read when tabbing, but ignored in browse mode.

ComboVersionsReliability
JAWS IEJAWS 2018.1811.2 with IE1187%
JAWS FirefoxJAWS 2018.1811.2 with FF6075%
NVDA IENVDA 2018.4 with IE1167%
NVDA FirefoxNVDA 2018.4 with FF6083%
VoiceOver MacVoiceOver macOS 10.13 with Safari 12.177%
VoiceOver iOSVoiceOver iOS 11.4 with Safari iOS 11.466%
WindowEyes IEWindowEyes 9.2 with IE1181%
Dolphin IEDolphin SR 15.05 with IE1164%
SaToGo IESaToGo 3.4.96.0 with IE1145%
Average Including older versions 73%

The average includes all versions, but some browser/AT combinations have tests for multiple versions (NVDA / JAWS / VoiceOver), while others only have tests for a single version (SaToGo and Dolphin).

WCAG sufficient techniques - reliability trend

This graph shows reliability over time for WCAG techniques in NVDA, JAWS and Voiceover. Other screen readers don't have enough historical data yet to plot trends.

100%80%60%40%20%0%201374%201474%201572%201673%201776%201876%

WCAG sufficient techniques - very reliable

These are WCAG sufficient techniques, and work reliably across all tested screen readers, including older versions.

These work in 100% of the tested screen reader / browser combinations.

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (100% average)100% 100% 100% 100% 100% 100% 100% 100% 100%
Should work. Works in 100% ARIA16 INPUT type=text with aria-labelledby attributeGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% H30 A link containing only an IMG with ALTGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% H36 INPUT type=image with ALT attributeGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% H37 IMG with ALTGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% H44 INPUT type=text with LABEL FORGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% H67 IMG with null ALT attributeGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% WCAG 3.1.1 Page with lang set on the HTML and P elementsGoodGoodGoodGoodGoodGood

WCAG sufficient techniques - reliable in recent versions

These are WCAG sufficient techniques, and are expected to work, and work in the latest versions of screen readers, but not in older versions marked with Better

100% of these techniques are not accessibility supported (i.e. cause failures) in one or more of the tested screen reader / browser combinations. On average they cause failures in 9% of the tested combinations.

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (93% average)100% 100% 85% 92% 100% 78% 100% 100% 100%
Should work. Fails in 1% - 25% H39 Data table with CAPTION and THGoodGoodBetterBetterGoodGoodGoodGood
Should work. Fails in 1% - 25% H51 Data table with TH cell headersGoodGoodBetterGoodGoodBetterGoodGoodGood

WCAG sufficient techniques - poorly supported

These are WCAG sufficient techniques, and are expected to work, but don't work in the latest versions of some screen readers. Screen readers where support got worse in the latest version are marked with Worse

100% of these techniques are not accessibility supported (i.e. cause failures) in one or more of the tested screen reader / browser combinations. On average they cause failures in 33% of the tested combinations.

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (67% average)60% 73% 74% 68% 70% 61% 66% 56% 34%
Should work. Fails in 1% - 25% ARIA1 INPUT type=text with aria-describedby attributeGoodGoodBetterBetterWorseGoodBetterBadGood
Should work. Fails in 1% - 25% ARIA1 A "click here" link with aria-describedby attributeGoodGoodBetterBetterBetterGoodBadBadGood
Should work. Fails in 26% - 50% ARIA10 BUTTON containing only an IMG with aria-labelledbyBadGoodBetterBadGoodGoodBetterGoodBad
Should work. Fails in 1% - 25% ARIA10 IMG with aria-labelledbyBadGoodGoodGoodGoodGoodBetterBadBad
Should work. Fails in 51% - 75% ARIA10 AREA with aria-labelledby attributeBadBadBetterBadBadBadBetterBadBad
Should work. Fails in 76% - 100% ARIA10 APPLET with ARIA-LABELLEDBY attributeBadBetterBetterBetterBadBadBadBad
Should work. Fails in 76% - 100% ARIA10 EMBED with ARIA-LABELLEDBY attributeBadBetterBetterBadBadBadBadBad
Should work. Fails in 76% - 100% ARIA10 OBJECT with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBadBad
Should work. Fails in 76% - 100% ARIA10 AUDIO with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBadBad
Should work. Fails in 76% - 100% ARIA10 VIDEO with ARIA-LABELLEDBY attributeBadBadBadBadBetterBetterBadBad
Should work. Fails in 1% - 25% ARIA12 ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBadBad
Should work. Fails in 1% - 25% ARIA14 `input type=image` with `aria-label` attributeGoodGoodBetterGoodGoodGoodGoodGoodBad
Should work. Fails in 1% - 25% ARIA14 `input type=text` with `aria-label` attributeBadBetterGoodGoodGoodGoodGoodGoodBad
Should work. Fails in 1% - 25% ARIA16 `input type=image` with `aria-labelledby` attributeBadGoodBetterGoodGoodGoodBetterGoodBad
Should work. Fails in 51% - 75% ARIA6 APPLET with ARIA-LABEL attributeGoodBetterBetterBetterBadBadBadBadBad
Should work. Fails in 51% - 75% ARIA6 EMBED with ARIA-LABEL attributeGoodBetterBetterBadBadBadBadBadBad
Should work. Fails in 76% - 100% ARIA6 OBJECT with ARIA-LABEL attributeGoodBadBadBadBadBadWorseBadBad
Should work. Fails in 76% - 100% ARIA6 AUDIO with ARIA-LABEL attributeBadBadBadBadBadBadBadBadBad
Should work. Fails in 76% - 100% ARIA6 VIDEO with ARIA-LABEL attributeGoodBadBadBadBetterBetterBadBadBad
Should work. Fails in 1% - 25% ARIA6 BUTTON with aria-label containing only an IMG with null ALTGoodGoodBetterGoodGoodGoodGoodGoodBad
Should work. Fails in 1% - 25% ARIA6 IMG with aria-labelBetterGoodGoodGoodGoodGoodGoodBadBad
Should work. Fails in 26% - 50% ARIA6 AREA with aria-label attributeBadBetterBetterBadBetterBadBetterBadBad
Should work. Fails in 1% - 25% ARIA7 Link text replaced by `aria-labelledby` attributeBadBetterBetterGoodGoodGoodGoodGoodBad
Should work. Fails in 1% - 25% ARIA8 Link text replaced by `aria-label` attributeBetterBetterGoodBadGoodGoodBetterGoodBad
Should work. Fails in 1% - 25% G196 `button` element containing only an `img` with an `alt` attributeBetterGoodBetterGoodGoodGoodBetterGoodBad
Should work. Fails in 26% - 50% H24 AREA and IMG with ALT attributesBadBetterGoodBadBetterBadBetterGoodGood
Should work. Fails in 76% - 100% H28 ABBR with titleBadBadBadBadBadBad BadBad
Should work. Fails in 1% - 25% H33 A "click here" link with TITLE attributeBadGoodBetterBetterBetterWorseBadBadGood
Should work. Fails in 26% - 50% H35 APPLET with fallback contentBadBetterGoodBetterBadGoodGoodBadBad
Should work. Fails in 26% - 50% H43 Data table with TD HEADERS attributeBadGoodBetterBadBadBadGood
Should work. Fails in 51% - 75% H53 OBJECT with fallback contentBadBadBadBadBetterGoodBetterBadBad
Should work. Fails in 51% - 75% H63 Data table with TH row/columns headers with SCOPEBadBadGoodGoodBadBadBetter
Should work. Fails in 1% - 25% H64 `iframe` with `title` attributeBadBadGoodBetterGoodGoodGoodGoodGood
Should work. Fails in 1% - 25% H64 Example 2 IFRAME with fallback contentGoodBadGoodBetterBadGoodBetterGoodGood
Should work. Fails in 1% - 25% H65 INPUT type=image with TITLE attributeGoodGoodGoodGoodGoodGoodGoodGoodBad
Should work. Fails in 1% - 25% H65 `input type=text` with `title` attributeBadBetterGoodGoodGoodGoodGoodGoodBad
Should work. Fails in 1% - 25% H71 Yes/No radio buttons inside `fieldset` elementGoodGoodGoodGoodBetterBetterBetterBadBad
Should work. Fails in 1% - 25% H73 Data table with SUMMARY and THGoodGoodBetterBadGoodGoodGoodGood
Should work. Fails in 26% - 50% H91 FIELDSET containing linksBadBetterBadGoodBetterBadBadBadBad
Should work. Fails in 51% - 75% WCAG 3.1.1 Page with xml:lang set on the HTML and P elementsBadBadBadBadBadBad
Should work. Fails in 1% - 25% placeholder links `a` element placeholder link with no event handler or `href` attributeGoodGoodGoodGoodBadGood Bad

WCAG failures

These are WCAG failures, and are expected to fail.

100% of these techniques fail in one or more of the tested screen reader / browser combinations. On average they cause failures in 74% of the tested combinations.

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Should fail. Fails in 1% - 25% ARIA8 Link with an `aria-label`, and containing only an `img` with no `alt`GoodBetterBetterBadBetterGoodBetterGoodBad
Should fail. Fails in 76% - 100% F22 A link TARGET opens in new windowBadBadBadBadBadBetterBadBad
Should fail. Fails in 26% - 50% F30 IFRAME with title matching frame filenameBadBadGoodBadBadGoodBadGoodGood
Should fail. Fails in 76% - 100% F30 IMG with ALT set to SRC filenameBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% F32 Space separated wordsBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% F34 Space separated tablesBadBadBadBadBadBadBadBadBad
Should fail. Fails in 51% - 75% F42 A element with ONCLICK but no HREFBadBadBadBadBadBadBadBadGood
Should fail. Fails in 1% - 25% F43 FIELDSET used to put border round textGoodGoodGoodGoodGoodBetterBetterGoodGood
Should fail. Fails in 76% - 100% F65 INPUT type=image with no ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% F65 INPUT type=image with null ALTBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% F65 IMG without ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% F65 A link containing only an IMG without ALTBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% F71 Look alike unicode charsBadBadBadBadBadBadBadBadBad
Should fail. Fails in 51% - 75% F72 IMG with ALT set to ASCII art smileyBadBadBadBadGoodGoodBadBadGood
Should fail. Fails in 51% - 75% F77 LABELs reference controls with duplicate idsBadBadBadBadBadBadBadBadBad
Should fail. Fails in 51% - 75% F87 CSS content: propertyBadGoodBadBetterGoodGoodBadBadBad
Should fail. Fails in 76% - 100% F89 A link containing only an IMG with null ALTBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% F91 Data table with no TH elementsBadBadBadBadBadBadGoodBadGood
Should fail. Fails in 76% - 100% F92 Data table with role presentationBadBadBadBadBadBadWorseGoodGood

Key

Tests expected to fail (due to authoring errors) are marked with Expected to Fail.

Test notes

All tests were carried out with screen reader factory settings. JAWS in particular has a wide variety of settings controlling exactly what gets spoken.

Screen readers allow users to interact in different modes, and can produce very different results in each mode. The modes used in these tests are:

In the «What the user hears» column: