Techniques for WCAG 2.0 and 2.1 Screen reader compatibility

WCAG
Nov 26, 2024

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

The results include two types of test:

  • Expected to work - these tests show support when accessibility features are used correctly
  • Expected to fail - these tests show what happens when accessibility features are used incorrectly

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.

ComboVersionsReliabilityTest Changes
JAWS ChromeJAWS 2024.2409.2 with Chrome 131
1 better
JAWS EdgeJAWS 2024.2409.2 with Edge 131
1 better
JAWS FirefoxJAWS 2024.2409.2 with FF 128
23 better
JAWS IEJAWS 2019.1912.1 with IE11
21 better
NVDA ChromeNVDA 2024.4 with Chrome 131
1 better 1 worse
NVDA EdgeNVDA 2024.4 with Edge 131
4 better
NVDA FirefoxNVDA 2024.4 with FF 128
26 better
NVDA IENVDA 2019.2 with IE11
4 better
VoiceOver MacVoiceOver macOS 14.6 with Safari 17.6
21 better
VoiceOver iOSVoiceOver iOS 17.7 with Safari iOS 17.7
11 better
WindowEyes IEWindowEyes 9.2 with IE11
14 better 1 worse
Dolphin IEDolphin SR 15.05 with IE11
SaToGo IESaToGo 3.4.96.0 with IE11
Average Including older versions

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%201474%201573%201673%201776%201877%201978%202081%202181%202281%202382%202484%

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 ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (100% average)100% 100% 100% 100% 100% 100% 100% 100%
100%ARIA16 input type=text with aria-labelledby attribute
100%H30 Link containing img with alt
100%H36 input type=image with alt
100%H37 img with alt
100%H44 input type=text with label for
100%H67 img with null alt
100%WCAG 3.1.1 Page with lang set on the html and p elements
100%WCAG 3.1.1 text/html page with mismatching lang and xml:lang on the html element

WCAG sufficient techniques - reliable in recent versions

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

  • Works reliably in all versions of this combination of screen reader and browser
  • Works reliably in the latest version of this combination of screen reader and browser (improved support)

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 12% of the tested combinations.

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (88% average)100% 90% 100% 98% 86% 98% 92% 88%
93%ARIA1 Click Here link with aria-describedby attribute
79%ARIA10 button containing img with aria-labelledby
89%ARIA10 img with aria-labelledby
74%ARIA10 applet with aria-labelledby attribute
52%ARIA10 object with aria-labelledby attribute
94%ARIA12 ARIA role=heading
98%ARIA14 input type=image with aria-label attribute
92%ARIA14 input type=text with aria-label attribute
92%ARIA16 input type=image with aria-labelledby attribute
77%ARIA6 applet with aria-label attribute
58%ARIA6 object with aria-label attribute
95%ARIA6 button with aria-label containing img with null alt
96%ARIA6 img with aria-label
95%ARIA7 Link text replaced by aria-labelledby attribute
92%ARIA8 Link text replaced by aria-label attribute
90%H33 Click Here link with title attribute
81%H35 applet with fallback content
93%H39 Data table with caption and th
97%H51 Data table with th cell headers
56%H53 object with fallback content
91%H64 iframe with title attribute
99%H65 input type=image with title attribute
92%H65 input type=text with title attribute
95%H71 Yes/No radio buttons inside fieldset element
84%H73 Data table with summary and th

WCAG sufficient techniques - not fully reliable

These are WCAG sufficient techniques, and are expected to work, but don't work in the latest versions of some screen readers.

  • Works reliably in all versions of this combination of screen reader and browser
  • Works reliably in the latest version of this combination of screen reader and browser (improved support)
  • Don't work in the latest version of this combination of screen reader and browser, but used to work in older versions (regression)
  • Don't work in any version of this combination of screen reader and browser

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 43% of the tested combinations.

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (57% average)60% 64% 55% 59% 55% 59% 58% 43%
94%ARIA1 input type=text with aria-describedby attribute
59%ARIA10 area with aria-labelledby attribute
28%ARIA10 embed with aria-labelledby attribute
0%ARIA10 audio with aria-labelledby attribute
23%ARIA10 video with aria-labelledby attribute
35%ARIA6 embed with aria-label attribute
1%ARIA6 audio with aria-label attribute
33%ARIA6 video with aria-label attribute
76%ARIA6 area with aria-label attribute
95%G196 button containing img with alt
80%H24 area and img with alt attributes
0%H28 abbr with title
57%H43 Data table with td headers attribute
63%H63 Data table with th scope on cell headers
87%H64 Example 2 iframe with fallback content
82%H91 fieldset containing links
52%PDF1 PDF1 Image with alt text
20%PDF16 PDF16 Document default language set to French
68%PDF18 PDF18 Document with doc title
30%PDF19 PDF19 Phrase language set to German
55%PDF4 PDF4 Decorative image marked as artifact
34%PDF6 PDF6 Table with header markup
34%PDF6 PDF6 Table with header markup and alt text
46%PDF9 PDF9 Document with headings
14%WCAG 3.1.1 Page with xml:lang set on the html and p elements
0%WCAG 3.1.1 application/xhtml+xml page with mismatching lang and xml:lang on the html element
63%WCAG 3.1.1 Match lang subtags
92%placeholder links a element placeholder link with no event handler or href attribute

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 ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
8%ARIA8 Link with aria-label containing img with no alt
85%F22 Link target opens in new window
58%F30 iframe with title matching frame filename
100%F30 img with alt set to src filename
100%F32 Space separated words
100%F34 Space separated tables
53%F42 Link with onclick but no href
33%F43 fieldset used to put border round text
100%F65 input type=image with no alt
100%F65 input type=image with null alt
100%F65 img without alt
100%F65 Link containing img without alt
100%F71 Look alike unicode chars
68%F72 img with alt set to ASCII art smiley
75%F77 label elements reference controls with duplicate ids
26%F87 CSS content: property on link
12%F87 CSS content: property on div
100%F89 Link containing img with null alt
97%F91 Data table with no th elements
96%F92 Data table with role=presentation

Key

  • Stable - works, or doesn't cause problems, in all versions of a specific combination of screen reader and browser
  • Better - works, or doesn't cause problems, in the most recent version of a specific combination of screen reader and browser (improvement)
  • Worse - causes problems in the most recent version of a specific combination of screen reader and browser, but used to work in older versions (regression)
  • Broken - causes problems in all versions of a specific combination of screen reader and browser

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:

  • Reading Content read using the “read next” command in a screen reader
  • Tabbing Content read using the “tab” key in a screen reader
  • Heading Content read using the “next heading” key in a screen reader
  • Touch Content read when touching an area of screen on a mobile device

In the “What the user hears” column:

  • Commas represent short pauses in screen reader voicing
  • Full Stops represent places where voicing stops, and the “read next” or “tab” or “next heading” command is pressed again
  • Ellipsis … represent a long pause in voicing
  • (Brackets) represent voicing that requires a keystroke to hear