WAI-ARIA Screen reader compatibility

Last updated: September 5, 2016

Shows how different WAI-ARIA attributes behave in commonly used screen readers.

The results include two types of test:

ARIA support by user agent

ARIA role and attribute support in different screen reader / browser combinations. Expected failures (marked with Expected to Fail) 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 17.0.2619 with IE1179%
JAWS FirefoxJAWS 17.0.2619 with FF4871%
NVDA IENVDA 2016.2 with IE1164%
NVDA FirefoxNVDA 2016.2 with FF4867%
VoiceOver MacVoiceOver OSX 10.11 with Safari 9.1.267%
VoiceOver iOSVoiceOver iOS 9.1 with Safari iOS 9.155%
WindowEyes IEWindowEyes 9.2 with IE1174%
Dolphin IEDolphin SR 15.05 with IE1152%
SaToGo IESaToGo 3.4.96.0 with IE1125%
Average Including older versions 64%

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).

ARIA roles

grid

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (71% average)75% 100% 60% 60% 67% 67% 100% 100% 0%
Should work. Fails in 26% - 50% Data table with role gridBetterGoodBetterBetterBetterBetterGoodGoodBad

heading

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (82% average)50% 100% 100% 100% 100% 100% 50% 0% 0%
Should work. Fails in 1% - 25% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBadBad
Should fail. Fails in 76% - 100% Nested ARIA headingsBadBadBadBadBadBadBadBadBad

note

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Should fail. Fails in 51% - 75% Data table with role noteBetterBadBadBadBadBadWorseGoodGood

presentation

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (91% average)100% 100% 100% 100% 100% 100% 50% 100% 0%
Should work. Fails in 1% - 25% Layout table with role presentationGoodGoodGoodGoodGoodGoodBetterGoodBad
Should fail. Fails in 76% - 100% Data table with role presentationBadBadBadBadBadBadWorseGoodGood
Should fail. Fails in 1% - 25% INPUT with aria-labelledby pointing to role=presentation elementGoodGoodWorseGoodGoodGoodBadGood

row

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (46% average)0% 0% 100% 100% 0% 0% 100% 0% 100%
Should work. Fails in 51% - 75% Data table with role rowheader headers but no THBadBadGoodGoodBadBadGoodBadGood

rowgroup

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (46% average)0% 0% 100% 100% 0% 0% 100% 0% 100%
Should work. Fails in 51% - 75% Data table with role rowheader headers but no THBadBadGoodGoodBadBadGoodBadGood

rowheader

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (46% average)0% 0% 100% 100% 0% 0% 100% 0% 100%
Should work. Fails in 51% - 75% Data table with role rowheader headers but no THBadBadGoodGoodBadBadGoodBadGood

ARIA attributes

aria-describedby

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (85% average)100% 100% 75% 90% 67% 100% 63% 50% 100%
Should work. Fails in 1% - 25% A "click here" link with aria-describedby attributeGoodGoodBadBetterBetterGoodBadBadGood
Should work. Fails in 1% - 25% INPUT type=text with aria-describedby attributeGoodGoodBetterBetterGoodGoodBetterBadGood
Should fail. Fails in 76% - 100% IMG with aria-describedbyBadBadBadBadGoodBadBetterBadBad

aria-label

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (65% average)72% 69% 64% 64% 78% 58% 69% 56% 6%
Should work. Fails in 1% - 25% A "click here" link with aria-label attributeBetterBetterGoodBetterGoodGoodGoodGoodBad
Should work. Fails in 76% - 100% APPLET with ARIA-LABEL attributeGoodWorseBetterBadBadBadBadBadBad
Should work. Fails in 51% - 75% AREA with aria-label attributeBadBadBetterBadWorseBadBetterBadBad
Should work. Fails in 76% - 100% AUDIO with ARIA-LABEL attributeBadBadBadBadBadBadBadBadBad
Should work. Fails in 1% - 25% BUTTON with aria-label wraps IMG with null ALTGoodGoodBetterGoodGoodGoodGoodGoodBad
Should work. Fails in 1% - 25% BUTTON wraps IMG with aria-labelBetterGoodBetterGoodGoodGoodBetterGoodBad
Should work. Fails in 76% - 100% EMBED with ARIA-LABEL attributeGoodWorseBetterBetterBadBadBadBadBad
Should work. Fails in 1% - 25% IMG with aria-labelBetterGoodGoodGoodGoodGoodGoodBadBad
Should work. Fails in 1% - 25% INPUT type=image with aria-label attributeGoodGoodBetterGoodGoodGoodGoodGoodBad
Should work. Fails in 1% - 25% INPUT type=text with aria-label attributeBadBadGoodGoodGoodGoodGoodGoodBad
Should work. Fails in 76% - 100% OBJECT with ARIA-LABEL attributeGoodBadBadBadBadBadWorseBadBad
Should work. Fails in 76% - 100% VIDEO with ARIA-LABEL attributeGoodBadBadBadBadBadBadBadBad
Should fail. Fails in 1% - 25% A link with aria-label wraps IMG with no ALTGoodBetterBetterBetterBetterGoodBetterGoodBad
Should fail. Fails in 1% - 25% BUTTON with aria-label wraps IMG with no ALTGoodGoodGoodGoodGoodGoodGoodGoodBad
Should fail. Fails in 76% - 100% IMG with null ALT and non-null aria-label attributesBadBadBadBadBadBadBadBad

aria-labelledby

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (56% average)46% 73% 61% 51% 63% 54% 53% 50% 27%
Should work. Fails in 1% - 25% A "click here" link with aria-labelledby attributeBadBetterBetterGoodGoodGoodGoodGoodBad
Should work. Fails in 76% - 100% APPLET with ARIA-LABELLEDBY attributeBadWorseBetterBadBadBadBadBad
Should work. Fails in 51% - 75% AREA with aria-labelledby attributeBadBadBetterBadBadBadBetterBadBad
Should work. Fails in 76% - 100% AUDIO with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBadBad
Should work. Fails in 26% - 50% BUTTON wraps IMG with aria-labelledbyBadGoodBetterBadGoodGoodBetterGoodBad
Should work. Fails in 76% - 100% EMBED with ARIA-LABELLEDBY attributeBadWorseBetterBetterBadBadBadBad
Should work. Fails in 1% - 25% IMG with aria-labelledbyBadGoodGoodGoodGoodGoodBetterBadBad
Should work. Fails in 1% - 25% INPUT type=image with aria-labelledby attributeBadGoodBadGoodGoodGoodBetterGoodBad
Should work. Works in 100% INPUT type=text with aria-labelledby attributeGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Fails in 76% - 100% OBJECT with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBadBad
Should work. Fails in 76% - 100% VIDEO with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBadBad
Should fail. Fails in 26% - 50% A link with aria-labelledby wraps IMG with no ALTBadBetterBadBetterBetterGoodBetterGoodBad
Should fail. Fails in 76% - 100% IMG with null ALT and non-null aria-labelledby attributesBadBadBadBadBadBadBadBad
Should fail. Fails in 1% - 25% INPUT with aria-labelledby pointing to role=presentation elementGoodGoodWorseGoodGoodGoodBadGood

aria-level

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (82% average)50% 100% 100% 100% 100% 100% 50% 0% 0%
Should work. Fails in 1% - 25% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBadBad
Should fail. Fails in 76% - 100% Nested ARIA headingsBadBadBadBadBadBadBadBadBad

role

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (72% average)53% 73% 89% 89% 64% 67% 75% 50% 25%
Should work. Fails in 1% - 25% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBadBad
Should work. Fails in 26% - 50% Data table with role gridBetterGoodBetterBetterBetterBetterGoodGoodBad
Should work. Fails in 51% - 75% Data table with role rowheader headers but no THBadBadGoodGoodBadBadGoodBadGood
Should work. Fails in 1% - 25% Layout table with role presentationGoodGoodGoodGoodGoodGoodBetterGoodBad
Should fail. Fails in 51% - 75% Data table with role noteBetterBadBadBadBadBadWorseGoodGood
Should fail. Fails in 76% - 100% Data table with role presentationBadBadBadBadBadBadWorseGoodGood
Should fail. Fails in 1% - 25% INPUT with aria-labelledby pointing to role=presentation elementGoodGoodWorseGoodGoodGoodBadGood
Should fail. Fails in 76% - 100% Nested ARIA headingsBadBadBadBadBadBadBadBadBad

Key

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

Test notes

The threshold for inclusion in these results is 5% usage in the most recent WebAIM screen reader survey. Chrome and Android still fall below the 5% threshold.

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: