WAI-ARIA Screen reader compatibility

Last updated: August 21, 2016

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

ARIA support by user agent

ARIA roles and attributes support in different screen reader / browser combinations.

ComboVersionsReliability
NVDA IENVDA 2016.2 with IE1169%
NVDA FirefoxNVDA 2016.2 with FF4862%
JAWS IEJAWS 17.0.2619 with IE1176%
JAWS FirefoxJAWS 17.0.2619 with FF4869%
WindowEyes IEWindowEyes 9.2 with IE1166%
VoiceOver MacVoiceOver OSX 10.11 with Safari 9.1.259%
VoiceOver iOSVoiceOver iOS 9.1 with Safari iOS 9.155%
Dolphin IEDolphin SR 15.05 with IE1145%
SaToGo IESaToGo 3.4.96.0 with IE1126%
Average Including older versions 64%

ARIA roles

grid

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (71% average)75% 100% 60% 60% 67% 67% 100% 100% 0%
Works in 50% to 74% 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%
Works in 75% to 99% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBadBad
Works in 0% to 24% Nested ARIA headingsBadBadBadBadBadBadBadBadBad

note

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Works in 25% to 49% 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%
Works in 75% to 99% Layout table with role presentationGoodGoodGoodGoodGoodGoodBetterGoodBad
Works in 0% to 24% Data table with role presentationBadBadBadBadBadBadWorseGoodGood
Works in 75% to 99% 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%
Works in 25% to 49% 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%
Works in 25% to 49% 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%
Works in 25% to 49% 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%
Works in 75% to 99% A "click here" link with aria-describedby attributeGoodGoodBadBetterBetterGoodBadBadGood
Works in 75% to 99% INPUT type=text with aria-describedby attributeGoodGoodBetterBetterGoodGoodBetterBadGood
Works in 0% to 24% 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%
Works in 75% to 99% A "click here" link with aria-label attributeBetterBetterGoodBetterGoodGoodGoodGoodBad
Works in 0% to 24% APPLET with ARIA-LABEL attributeGoodWorseBetterBadBadBadBadBadBad
Works in 25% to 49% AREA with aria-label attributeBadBadBetterBadWorseBadBetterBadBad
Works in 0% to 24% AUDIO with ARIA-LABEL attributeBadBadBadBadBadBadBadBadBad
Works in 75% to 99% BUTTON with aria-label wraps IMG with null ALTGoodGoodBetterGoodGoodGoodGoodGoodBad
Works in 75% to 99% BUTTON wraps IMG with aria-labelBetterGoodBetterGoodGoodGoodBetterGoodBad
Works in 0% to 24% EMBED with ARIA-LABEL attributeGoodWorseBetterBetterBadBadBadBadBad
Works in 75% to 99% IMG with aria-labelBetterGoodGoodGoodGoodGoodGoodBadBad
Works in 75% to 99% INPUT type=image with aria-label attributeGoodGoodBetterGoodGoodGoodGoodGoodBad
Works in 75% to 99% INPUT type=text with aria-label attributeBadBadGoodGoodGoodGoodGoodGoodBad
Works in 0% to 24% OBJECT with ARIA-LABEL attributeGoodBadBadBadBadBadWorseBadBad
Works in 0% to 24% VIDEO with ARIA-LABEL attributeGoodBadBadBadBadBadBadBadBad
Works in 75% to 99% A link with aria-label wraps IMG with no ALTGoodBetterBetterBetterBetterGoodBetterGoodBad
Works in 75% to 99% BUTTON with aria-label wraps IMG with no ALTGoodGoodGoodGoodGoodGoodGoodGoodBad
Works in 0% to 24% IMG with null ALT and non-null aria-label attributesBadBadBadBadBadBadBadGood

aria-labelledby

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (56% average)46% 73% 61% 51% 63% 54% 53% 50% 27%
Works in 75% to 99% A "click here" link with aria-labelledby attributeBadBetterBetterGoodGoodGoodGoodGoodBad
Works in 0% to 24% APPLET with ARIA-LABELLEDBY attributeBadWorseBetterBadBadBadBadBad
Works in 25% to 49% AREA with aria-labelledby attributeBadBadBetterBadBadBadBetterBadBad
Works in 0% to 24% AUDIO with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBadBad
Works in 50% to 74% BUTTON wraps IMG with aria-labelledbyBadGoodBetterBadGoodGoodBetterGoodBad
Works in 0% to 24% EMBED with ARIA-LABELLEDBY attributeBadWorseBetterBetterBadBadBadBad
Works in 75% to 99% IMG with aria-labelledbyBadGoodGoodGoodGoodGoodBetterBadBad
Works in 75% to 99% INPUT type=image with aria-labelledby attributeBadGoodBadGoodGoodGoodBetterGoodBad
Works in all INPUT type=text with aria-labelledby attributeGoodGoodGoodGoodGoodGoodGoodGoodGood
Works in 0% to 24% OBJECT with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBadBad
Works in 0% to 24% VIDEO with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBadBad
Works in 50% to 74% A link with aria-labelledby wraps IMG with no ALTBadBetterBadBetterBetterGoodBetterGoodBad
Works in 0% to 24% IMG with null ALT and non-null aria-labelledby attributesBadBadBadBadBadBadBadGood
Works in 75% to 99% 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%
Works in 75% to 99% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBadBad
Works in 0% to 24% Nested ARIA headingsBadBadBadBadBadBadBadBadBad

role

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (72% average)53% 73% 89% 89% 64% 67% 75% 50% 25%
Works in 75% to 99% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBadBad
Works in 50% to 74% Data table with role gridBetterGoodBetterBetterBetterBetterGoodGoodBad
Works in 25% to 49% Data table with role rowheader headers but no THBadBadGoodGoodBadBadGoodBadGood
Works in 75% to 99% Layout table with role presentationGoodGoodGoodGoodGoodGoodBetterGoodBad
Works in 25% to 49% Data table with role noteBetterBadBadBadBadBadWorseGoodGood
Works in 0% to 24% Data table with role presentationBadBadBadBadBadBadWorseGoodGood
Works in 75% to 99% INPUT with aria-labelledby pointing to role=presentation elementGoodGoodWorseGoodGoodGoodBadGood
Works in 0% to 24% Nested ARIA headingsBadBadBadBadBadBadBadBadBad

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: