WAI-ARIA Screen reader compatibility

Last updated: April 5, 2016

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

ARIA roles

grid

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (64% average)67% 100% 50% 50% 50% 67% 100% 0%
Works in 50% to 74% Data table with role gridBetterGoodBetterBetterBetterBetterGoodBad

heading

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (82% average)33% 100% 100% 100% 100% 100% 50% 0%
Works in 75% to 99% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBad
Works in 0% to 24% Nested ARIA headingsBadBadBadBadBadBadBadBad

note

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Works in 0% to 24% Data table with role noteBetterBadBadBadBadBadWorseGood

presentation

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (88% average)100% 100% 100% 100% 100% 100% 50% 0%
Works in 75% to 99% Layout table with role presentationGoodGoodGoodGoodGoodGoodBetterBad
Works in 0% to 24% Data table with role presentationBadBadBadBadBadBadWorseGood
Works in 75% to 99% INPUT with aria-labelledby pointing to role=presentation elementGoodGoodGoodGoodGoodGoodBad

row

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (50% average)0% 0% 100% 100% 0% 0% 100% 100%
Works in 50% to 74% Data table with role rowheader headers but no THBadBadGoodGoodBadBadGoodGood

rowgroup

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (50% average)0% 0% 100% 100% 0% 0% 100% 100%
Works in 50% to 74% Data table with role rowheader headers but no THBadBadGoodGoodBadBadGoodGood

rowheader

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (50% average)0% 0% 100% 100% 0% 0% 100% 100%
Works in 50% to 74% Data table with role rowheader headers but no THBadBadGoodGoodBadBadGoodGood

ARIA attributes

aria-describedby

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (84% average)100% 100% 75% 88% 50% 100% 63% 100%
Works in 75% to 99% A "click here" link with aria-describedby attributeGoodGoodBetterBetterBadGoodBadGood
Works in 75% to 99% INPUT type=text with aria-describedby attributeGoodGoodBetterBetterGoodGoodBetterGood
Works in 0% to 24% IMG with aria-describedbyBadBadBadBadGoodBadBetterBad

aria-label

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (63% average)68% 73% 60% 63% 84% 58% 69% 6%
Works in 75% to 99% A "click here" link with aria-label attributeBetterBetterGoodBetterGoodGoodGoodBad
Works in 0% to 24% APPLET with ARIA-LABEL attributeGoodGoodBadBadBadBadBadBad
Works in 25% to 49% AREA with aria-label attributeBadBadBetterBadGoodBadBetterBad
Works in 0% to 24% AUDIO with ARIA-LABEL attributeBadBadBadBadBadBadBadBad
Works in 75% to 99% BUTTON with aria-label wraps IMG with null ALTGoodGoodBadGoodGoodGoodGoodBad
Works in 75% to 99% BUTTON wraps IMG with aria-labelBetterGoodBetterGoodGoodGoodBetterBad
Works in 0% to 24% EMBED with ARIA-LABEL attributeGoodGoodBadBadBadBadBadBad
Works in 75% to 99% IMG with aria-labelBetterGoodGoodGoodGoodGoodGoodBad
Works in 75% to 99% INPUT type=image with aria-label attributeGoodGoodBetterGoodGoodGoodGoodBad
Works in 75% to 99% INPUT type=text with aria-label attributeBadBadGoodGoodGoodGoodGoodBad
Works in 0% to 24% OBJECT with ARIA-LABEL attributeGoodBadBadBadBadBadWorseBad
Works in 0% to 24% VIDEO with ARIA-LABEL attributeGoodBadBadBadBadBadBadBad
Works in 50% to 74% A link with aria-label wraps IMG with no ALTGoodBetterBetterBetterBetterGoodBetterBad
Works in 75% to 99% BUTTON with aria-label wraps IMG with no ALTGoodGoodGoodGoodGoodGoodGoodBad
Works in 0% to 24% IMG with null ALT and non-null aria-label attributesBadBadBadBadBadBadBad

aria-labelledby

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (57% average)53% 78% 59% 49% 67% 54% 53% 27%
Works in 75% to 99% A "click here" link with aria-labelledby attributeWorseBetterBetterGoodGoodGoodGoodBad
Works in 0% to 24% APPLET with ARIA-LABELLEDBY attributeBadGoodBadBadBadBadBad
Works in 25% to 49% AREA with aria-labelledby attributeBadBadBetterBadBadBadBetterBad
Works in 0% to 24% AUDIO with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBad
Works in 50% to 74% BUTTON wraps IMG with aria-labelledbyBadGoodBetterBadGoodGoodBetterBad
Works in 0% to 24% EMBED with ARIA-LABELLEDBY attributeBadGoodBadBadBadBadBad
Works in 75% to 99% IMG with aria-labelledbyBadGoodGoodGoodGoodGoodBetterBad
Works in 75% to 99% INPUT type=image with aria-labelledby attributeWorseGoodBadGoodGoodGoodBetterBad
Works in all INPUT type=text with aria-labelledby attributeGoodGoodGoodGoodGoodGoodGoodGood
Works in 0% to 24% OBJECT with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBad
Works in 0% to 24% VIDEO with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBad
Works in 50% to 74% A link with aria-labelledby wraps IMG with no ALTBadBetterBadBetterBetterGoodBetterBad
Works in 0% to 24% IMG with null ALT and non-null aria-labelledby attributesBadBadBadBadBadBadBad
Works in 0% to 24% IMG with null ALT and non-null aria-labelledby attributesBadBadBadBadBadBadBad
Works in 75% to 99% INPUT with aria-labelledby pointing to role=presentation elementGoodGoodGoodGoodGoodGoodBad

aria-level

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (82% average)33% 100% 100% 100% 100% 100% 50% 0%
Works in 75% to 99% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBad
Works in 0% to 24% Nested ARIA headingsBadBadBadBadBadBadBadBad

role

Screen ReaderNVDAJAWSVoiceOverWin-EyesSaToGo
BrowserIEFFIEFFMaciOSIEIE
Reliability when used correctly (70% average)45% 73% 87% 87% 57% 67% 75% 25%
Works in 75% to 99% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBad
Works in 50% to 74% Data table with role gridBetterGoodBetterBetterBetterBetterGoodBad
Works in 50% to 74% Data table with role rowheader headers but no THBadBadGoodGoodBadBadGoodGood
Works in 75% to 99% Layout table with role presentationGoodGoodGoodGoodGoodGoodBetterBad
Works in 0% to 24% Data table with role noteBetterBadBadBadBadBadWorseGood
Works in 0% to 24% Data table with role presentationBadBadBadBadBadBadWorseGood
Works in 75% to 99% INPUT with aria-labelledby pointing to role=presentation elementGoodGoodGoodGoodGoodGoodBad
Works in 0% to 24% Nested ARIA headingsBadBadBadBadBadBadBadBad

Key

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: