[Skip navigation links]
Login

HTML attributes Screen reader compatibility

Last updated: April 7, 2019

Shows how different HTML attributes behave in commonly used screen readers.

The results include two types of test:

alt

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (92% average)90% 95% 93% 90% 99% 89% 93% 100% 80%
Should work. Works in 100% A link containing only an IMG with ALTGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Fails in 26% - 50% AREA and IMG with ALT attributesBadBetterGoodBadBetterBadBetterGoodGood
Should work. Fails in 1% - 25% AREA with ALT attribute and IMG with null ALTBadGoodGoodBadGoodGood
Should work. Works in 100% BUTTON with TITLE containing only an IMG with null ALTGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Fails in 1% - 25% BUTTON with aria-label containing only an IMG with null ALTGoodGoodBetterGoodGoodGoodGoodGoodBad
Should work. Works in 100% Heading is IMG with ALTGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% IMG with ALTGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% IMG with null ALT attributeGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% INPUT type=image with ALT attributeGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Fails in 1% - 25% `button` element containing only an `img` with an `alt` attributeBetterGoodBetterGoodGoodGoodBetterGoodBad
Should fail. Fails in 76% - 100% A link containing only an IMG with null ALTBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% A link containing only an IMG without ALTBadBadBadBadBadBadBadBadBad
Should fail. Fails in 1% - 25% A link with TITLE containing only an IMG with no ALTGoodBetterGoodWorseBetterGoodBetterGoodGood
Should fail. Fails in 26% - 50% A link with aria-labelledby containing only an IMG with no ALTBadBetterBetterBadBetterGoodBetterGoodBad
Should fail. Fails in 76% - 100% APPLET with ALT attributeBadBetterBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% AREA with no ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% AREA with null ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% BUTTON containing only an IMG with no ALTBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% BUTTON containing only an IMG with null ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 1% - 25% BUTTON with TITLE containing only an IMG with no ALTGoodGoodBadGoodGoodGoodGoodGoodGood
Should fail. Fails in 1% - 25% BUTTON with aria-label containing only an IMG with no ALTGoodGoodGoodGoodGoodGoodGoodGoodBad
Should fail. Fails in 76% - 100% Definition lists with images as bulletsBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% EMBED with ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% Heading is IMG ALT=""BadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% Heading is IMG ALT=filenameBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% Heading is IMG with no ALTBadBadBadBadBadBadBadBadBad
Should fail. Fails in 51% - 75% IMG with ALT set to ASCII art smileyBadBadBadBadGoodGoodBadBadGood
Should fail. Fails in 76% - 100% IMG with ALT set to SRC filenameBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% IMG with null ALT and non-null TITLE attributesBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% IMG with null ALT and non-null aria-label attributesBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% IMG with null ALT and non-null aria-labelledby attributesBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% IMG without ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% INPUT type=image with no ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% INPUT type=image with null ALTBadBadBadBadBadBadBadBadBad
Should fail. Fails in 26% - 50% Image MAP with no NAME attributeBadBetterGoodBadBadBadBetterGoodGood
Should fail. Fails in 1% - 25% Link with an `aria-label`, and containing only an `img` with no `alt`GoodBetterBetterBadBetterGoodBetterGoodBad
Should fail. Fails in 76% - 100% OBJECT with ALT attributeBadBadBadBadBadBadBadBadBad

aria-describedby

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

aria-label

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (67% average)74% 70% 70% 65% 76% 56% 67% 56% 0%
Should work. Fails in 51% - 75% APPLET with ARIA-LABEL attributeGoodBetterBetterBetterBadBadBadBadBad
Should work. Fails in 26% - 50% AREA with aria-label attributeBadBetterBetterBadBetterBadBetterBadBad
Should work. Fails in 76% - 100% AUDIO with ARIA-LABEL attributeBadBadBadBadBadBadBadBadBad
Should work. Fails in 1% - 25% BUTTON containing only an IMG with aria-labelBetterGoodBetterGoodGoodGoodBetterGoodBad
Should work. Fails in 1% - 25% BUTTON with aria-label containing only an IMG with null ALTGoodGoodBetterGoodGoodGoodGoodGoodBad
Should work. Fails in 51% - 75% EMBED with ARIA-LABEL attributeGoodBetterBetterBadBadBadBadBadBad
Should work. Fails in 1% - 25% IMG with aria-labelBetterGoodGoodGoodGoodGoodGoodBadBad
Should work. Fails in 1% - 25% Link text replaced by `aria-label` attributeBetterBetterGoodBadGoodGoodBetterGoodBad
Should work. Fails in 76% - 100% OBJECT with ARIA-LABEL attributeGoodBadBadBadBadBadWorseBadBad
Should work. Fails in 76% - 100% VIDEO with ARIA-LABEL attributeGoodBadBadBadBetterBetterBadBadBad
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` attributeBadBetterGoodGoodGoodGoodGoodGoodBad
Should fail. Fails in 1% - 25% BUTTON with aria-label containing only an IMG with no ALTGoodGoodGoodGoodGoodGoodGoodGoodBad
Should fail. Fails in 76% - 100% IMG with null ALT and non-null aria-label attributesBadBadBadBadBadBadBadBad
Should fail. Fails in 1% - 25% Link with an `aria-label`, and containing only an `img` with no `alt`GoodBetterBetterBadBetterGoodBetterGoodBad

aria-labelledby

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (57% average)40% 74% 67% 51% 61% 52% 53% 50% 27%
Should work. Fails in 76% - 100% APPLET with ARIA-LABELLEDBY attributeBadBetterBetterBetterBadBadBadBad
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 containing only an IMG with aria-labelledbyBadGoodBetterBadGoodGoodBetterGoodBad
Should work. Fails in 76% - 100% EMBED with ARIA-LABELLEDBY attributeBadBetterBetterBadBadBadBadBad
Should work. Fails in 1% - 25% IMG with aria-labelledbyBadGoodGoodGoodGoodGoodBetterBadBad
Should work. Works in 100% INPUT type=text with aria-labelledby attributeGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Fails in 1% - 25% Link text replaced by `aria-labelledby` attributeBadBetterBetterGoodGoodGoodGoodGoodBad
Should work. Fails in 76% - 100% OBJECT with ARIA-LABELLEDBY attributeBadBadBadBadBadBadBadBad
Should work. Fails in 76% - 100% VIDEO with ARIA-LABELLEDBY attributeBadBadBadBadBetterBetterBadBad
Should work. Fails in 1% - 25% `input type=image` with `aria-labelledby` attributeBadGoodBetterGoodGoodGoodBetterGoodBad
Should fail. Fails in 26% - 50% A link with aria-labelledby containing only an IMG with no ALTBadBetterBetterBadBetterGoodBetterGoodBad
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 elementGoodGoodBetterGoodGoodGoodBadGood

aria-level

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (88% average)67% 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

for

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (100% average)100% 100% 100% 100% 100% 100% 100% 100% 100%
Should work. Works in 100% INPUT type=text with LABEL FORGoodGoodGoodGoodGoodGoodGoodGoodGood
Should fail. Fails in 76% - 100% INPUT type=text with blank LABEL FORBadBadBadBadBadBadBadBadBad
Should fail. Fails in 51% - 75% LABELs reference controls with duplicate idsBadBadBadBadBadBadBadBadBad

headers

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (50% average)0% 100% 83% 67% 0% 0% 100%
Should work. Fails in 26% - 50% Data table with TD HEADERS attributeBadGoodBetterBadBadBadGood

href

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Should fail. Fails in 51% - 75% A element with ONCLICK but no HREFBadBadBadBadBadBadBadBadGood

id

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (91% average)83% 100% 97% 94% 83% 71% 100% 100% 100%
Should work. Fails in 26% - 50% Data table with TD HEADERS attributeBadGoodBetterBadBadBadGood
Should work. Works in 100% INPUT type=text with LABEL FORGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% INPUT type=text with aria-labelledby attributeGoodGoodGoodGoodGoodGoodGoodGoodGood
Should fail. Fails in 76% - 100% INPUT type=text with blank LABEL FORBadBadBadBadBadBadBadBadBad
Should fail. Fails in 1% - 25% INPUT with aria-labelledby pointing to role=presentation elementGoodGoodBetterGoodGoodGoodBadGood
Should fail. Fails in 51% - 75% LABELs reference controls with duplicate idsBadBadBadBadBadBadBadBadBad

ismap

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Should fail. Fails in 76% - 100% IMG with server side image mapBadBadBadBadBadBadBadBadBad

lang

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (100% average)100% 100% 100% 100% 100% 100%
Should work. Works in 100% Page with lang set on the HTML and P elementsGoodGoodGoodGoodGoodGood

media

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Should fail. Fails in 76% - 100% CSS stylesheet link with `media=aural`BadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% CSS stylesheet link with `media=speech`BadBadBadBadBadBadBadBadBad

name

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (52% average)40% 50% 93% 28% 69% 5% 69% 25% 50%
Should work. Fails in 26% - 50% AREA and IMG with ALT attributesBadBetterGoodBadBetterBadBetterGoodGood
Should work. Fails in 1% - 25% AREA with ALT attribute and IMG with null ALTBadGoodGoodBadGoodGood
Should work. Fails in 51% - 75% AREA with TITLE attributeBadBadGoodBadBetterBadBetterBadGood
Should work. Fails in 26% - 50% AREA with aria-label attributeBadBetterBetterBadBetterBadBetterBadBad
Should work. Fails in 51% - 75% AREA with aria-labelledby attributeBadBadBetterBadBadBadBetterBadBad
Should fail. Fails in 76% - 100% AREA with no ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% AREA with null ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 26% - 50% Image MAP with no NAME attributeBadBetterGoodBadBadBadBetterGoodGood

role

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (74% average)61% 74% 93% 93% 68% 62% 67% 50% 25%
Should work. Fails in 1% - 25% ARIA role=headingBetterGoodGoodGoodGoodGoodBetterBadBad
Should work. Fails in 51% - 75% Data table with role columnheader headers but no THBadBadGoodGoodBadBad BadGood
Should work. Fails in 1% - 25% Data table with role gridBetterGoodBetterBetterBetterBetterGoodGoodBad
Should work. Fails in 1% - 25% Layout table with role presentationGoodGoodGoodGoodGoodWorseBetterGoodBad
Should fail. Fails in 76% - 100% 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 elementGoodGoodBetterGoodGoodGoodBadGood
Should fail. Fails in 76% - 100% Nested ARIA headingsBadBadBadBadBadBadBadBadBad

scope

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (41% average)0% 0% 100% 100% 0% 0% 50%
Should work. Fails in 51% - 75% Data table with TH row/columns headers with SCOPEBadBadGoodGoodBadBadBetter
Should fail. Fails in 51% - 75% Data table with TH row/columns headers without SCOPEBadBadBetterBetterBadBadWorse

summary

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (91% average)100% 100% 83% 67% 100% 100% 100% 100%
Should work. Fails in 1% - 25% Data table with SUMMARY and THGoodGoodBetterBadGoodGoodGoodGood
Should fail. Fails in 76% - 100% Data table with SUMMARY but no THBadBadBadBadBadBadGoodBadGood
Should fail. Fails in 76% - 100% Data table with null SUMMARY but no THBadBadBadBadBadBadGoodBadGood

target

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Should fail. Fails in 76% - 100% A link TARGET opens in new windowBadBadBadBadBadBetterBadBad

title

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (80% average)71% 74% 91% 83% 80% 68% 88% 78% 83%
Should work. Fails in 1% - 25% A "click here" link with TITLE attributeBadGoodBetterBetterBetterWorseBadBadGood
Should work. Works in 100% A link containing only an IMG with TITLEGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Fails in 76% - 100% ABBR with titleBadBadBadBadBadBad BadBad
Should work. Fails in 51% - 75% AREA with TITLE attributeBadBadGoodBadBetterBadBetterBadGood
Should work. Fails in 26% - 50% BUTTON containing only an IMG with TITLE attributeBetterGoodBetterGoodBadBadBetterGoodGood
Should work. Works in 100% BUTTON with TITLE containing only an IMG with null ALTGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Works in 100% IMG with TITLEGoodGoodGoodGoodGoodGoodGoodGoodGood
Should work. Fails in 1% - 25% INPUT type=image with TITLE attributeGoodGoodGoodGoodGoodGoodGoodGoodBad
Should work. Fails in 1% - 25% `iframe` with `title` attributeBadBadGoodBetterGoodGoodGoodGoodGood
Should work. Fails in 1% - 25% `input type=text` with `title` attributeBadBetterGoodGoodGoodGoodGoodGoodBad
Should fail. Fails in 1% - 25% A link with TITLE containing only an IMG with no ALTGoodBetterGoodWorseBetterGoodBetterGoodGood
Should fail. Fails in 76% - 100% ACRONYM with titleBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% APPLET with TITLE attributeBadBetterBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% AUDIO with TITLE attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 1% - 25% BUTTON with TITLE containing only an IMG with no ALTGoodGoodBadGoodGoodGoodGoodGoodGood
Should fail. Fails in 76% - 100% EMBED with TITLE attributeBadBetterBadBadBadBadBadBadBad
Should fail. Fails in 1% - 25% IFRAME with blank titleGoodBadGoodBetterBadGoodBetterGoodGood
Should fail. Fails in 26% - 50% IFRAME with title matching frame filenameBadBadGoodBadBadGoodBadGoodGood
Should fail. Fails in 76% - 100% IMG with null ALT and non-null TITLE attributesBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% OBJECT with TITLE attributeBadBadBadBadBadBadWorseBadBad
Should fail. Fails in 76% - 100% VIDEO with TITLE attributeGoodBadBadBadBetterBetterBadBadBad

usemap

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (52% average)40% 50% 93% 28% 69% 5% 69% 25% 50%
Should work. Fails in 26% - 50% AREA and IMG with ALT attributesBadBetterGoodBadBetterBadBetterGoodGood
Should work. Fails in 1% - 25% AREA with ALT attribute and IMG with null ALTBadGoodGoodBadGoodGood
Should work. Fails in 51% - 75% AREA with TITLE attributeBadBadGoodBadBetterBadBetterBadGood
Should work. Fails in 26% - 50% AREA with aria-label attributeBadBetterBetterBadBetterBadBetterBadBad
Should work. Fails in 51% - 75% AREA with aria-labelledby attributeBadBadBetterBadBadBadBetterBadBad
Should fail. Fails in 76% - 100% AREA with no ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 76% - 100% AREA with null ALT attributeBadBadBadBadBadBadBadBadBad
Should fail. Fails in 26% - 50% Image MAP with no NAME attributeBadBetterGoodBadBadBadBetterGoodGood

xml:lang

Screen ReaderNVDAJAWSVoiceOverWin-EyesDolphinSaToGo
BrowserIEFFIEFFMaciOSIEIEIE
Reliability when used correctly (25% average)0% 0% 0% 0% 0% 0%
Should work. Fails in 51% - 75% Page with xml:lang set on the HTML and P elementsBadBadBadBadBadBad

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: