HTML attributes Screen reader compatibility

ARIA HTML
Dec 14, 2025

Shows how different HTML attributes 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

alt

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (96% average)100% 98% 99% 100% 95% 100% 99% 90%
100%Heading is img with alt
100%Link containing img with alt
81%area and img with alt attributes
98%area with alt attribute and img with null alt
96%button containing img with alt
96%button with aria-label containing img with null alt
100%button with title containing img with null alt
100%img with alt
100%img with null alt
100%input type=image with alt
Issues when used incorrectly (71% average)67% 68% 69% 71% 70% 71% 70% 71%
98%Definition lists with images as bullets
100%Heading is img alt=filename
100%Heading is img with `alt=
100%Heading is img with no alt
49%Image map with no name attribute
100%Link containing img with null alt
100%Link containing img without alt
7%Link with aria-label containing img with no alt
14%Link with aria-labelledby containing img with no alt
4%Link with title containing img with no alt
30%applet with alt attribute
100%area with no alt
100%area with null alt
100%button containing img with no alt
100%button containing img with null alt
1%button with aria-label containing img with no alt
8%button with title containing img with no alt
88%embed with alt attribute
67%img with alt set to ASCII art smiley
100%img with alt set to src filename
100%img with null alt and non-null title attributes
100%img with null alt and non-null aria-label attributes
100%img with null alt and non-null aria-labelledby attributes
100%img without alt
100%input type=image with no alt
100%input type=image with null alt
61%object with alt attribute

aria-describedby

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (94% average)100% 100% 100% 100% 93% 100% 83% 100%
93%Click Here link with aria-describedby attribute
94%input type=text with aria-describedby attribute
Issues when used incorrectly (87% average)100% 85% 100% 100% 100% 100% 17% 100%
87%img with aria-describedby

aria-label

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (79% average)88% 84% 86% 82% 75% 83% 86% 71%
85%Interactive iframe with role=presentation and aria-label attribute
92%Link text replaced by aria-label attribute
79%applet with aria-label attribute
78%area with aria-label attribute
1%audio with aria-label attribute
96%button containing img with aria-label
96%button with aria-label containing img with null alt
37%embed with aria-label attribute
96%img with aria-label
98%input type=image with aria-label attribute
92%input type=text with aria-label attribute
62%object with aria-label attribute
36%video with aria-label attribute
Issues when used incorrectly (22% average)20% 21% 20% 20% 21% 20% 22% 29%
7%Link with aria-label containing img with no alt
1%button with aria-label containing img with no alt
100%img with null alt and non-null aria-label attributes

aria-labelledby

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (71% average)85% 83% 83% 81% 62% 83% 72% 69%
95%Link text replaced by aria-labelledby attribute
76%applet with aria-labelledby attribute
60%area with aria-labelledby attribute
0%audio with aria-labelledby attribute
81%button containing img with aria-labelledby
31%embed with aria-labelledby attribute
90%img with aria-labelledby
92%input type=image with aria-labelledby attribute
100%input type=text with aria-labelledby attribute
56%object with aria-labelledby attribute
27%video with aria-labelledby attribute
Issues when used incorrectly (26% average)20% 22% 20% 20% 21% 20% 23% 31%
14%Link with aria-labelledby containing img with no alt
100%img with null alt and non-null aria-labelledby attributes
3%input with aria-labelledby pointing to role=presentation element

aria-level

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (95% average)100% 100% 100% 100% 100% 100% 100% 100%
95%ARIA role=heading
Issues when used incorrectly (96% average)100% 100% 100% 100% 100% 100% 100% 67%
96%Nested ARIA headings

for

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (100% average)100% 100% 100% 100% 100% 100% 100% 100%
100%input type=text with label for
Issues when used incorrectly (88% average)75% 75% 75% 96% 89% 97% 100% 100%
100%input type=text with blank label for
75%label elements reference controls with duplicate ids

headers

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (58% average)100% 100% 100% 100% 31% 100% 0% 0%
58%Data table with td headers attribute

href

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Issues when used incorrectly (38% average)25% 24% 25% 25% 34% 25% 24% 48%
24%CSS content: property on link
53%Link with onclick but no href

id

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (92% average)100% 100% 100% 100% 87% 100% 81% 69%
58%Data table with td headers attribute
100%input type=text with aria-labelledby attribute
100%input type=text with label for
Issues when used incorrectly (62% average)50% 51% 50% 64% 64% 65% 69% 71%
100%input type=text with blank label for
3%input with aria-labelledby pointing to role=presentation element
75%label elements reference controls with duplicate ids

ismap

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Issues when used incorrectly (100% average)100% 100% 100% 100% 100% 100% 100% 100%
100%img with server side image map

lang

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (100% average)100% 100% 100% 100% 100% 100% 100% 100%
100%Page with lang set on the html and p elements

media

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Issues when used incorrectly (100% average)100% 100% 100% 100% 100% 100% 100% 100%
100%CSS stylesheet link with media=aural
100%CSS stylesheet link with media=speech

name

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (74% average)100% 67% 100% 100% 56% 100% 76% 14%
81%area and img with alt attributes
98%area with alt attribute and img with null alt
78%area with aria-label attribute
60%area with aria-labelledby attribute
60%area with title attribute
Issues when used incorrectly (83% average)83% 70% 88% 83% 79% 88% 100% 100%
49%Image map with no name attribute
100%area with no alt
100%area with null alt

role

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (78% average)83% 79% 82% 78% 90% 82% 80% 58%
95%ARIA role=heading
29%Data table with role=columnheader headers but no th
83%Data table with role=grid
97%Data table with role=table
86%Interactive iframe with role=presentation and no accessible name
96%Layout table with role=presentation
Issues when used incorrectly (62% average)60% 64% 60% 60% 64% 60% 62% 70%
90%Data table with role=note
96%Data table with role=presentation
96%Nested ARIA headings
3%input with aria-labelledby pointing to role=presentation element

scope

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (66% average)100% 50% 100% 100% 100% 100% 36% 0%
66%Data table with th scope on cell headers
Issues when used incorrectly (29% average)0% 50% 0% 0% 8% 0% 0% 100%
29%Data table th cell headers with no scope

src

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Issues when used incorrectly (87% average)100% 100% 100% 100% 100% 100% 11% 100%
87%iframe where src is a PNG image

summary

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (86% average)100% 100% 100% 100% 85% 100% 91% 18%
86%Data table with summary and th
Issues when used incorrectly (97% average)100% 100% 100% 100% 100% 100% 100% 100%
97%Data table with summary but no th
97%Data table with null summary and no th

tabindex

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Issues when used incorrectly (50% average)50% 50% 50% 50% 50% 50% 75% 0%
47%Interactive iframe with role=presentation and negative tabindex and no accessible name
53%Interactive iframe with negative tabindex and no accessible name

target

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Issues when used incorrectly (84% average)100% 100% 100% 100% 100% 100% 42% 33%
84%Link target opens in new window

title

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (75% average)87% 74% 85% 81% 72% 83% 75% 63%
91%Click Here link with title attribute
85%Interactive iframe with role=presentation and title attribute
100%Link containing img with title
4%abbr with title
70%applet with title attribute
60%area with title attribute
1%audio with title attribute
77%button containing img with title attribute
100%button with title containing img with null alt
27%embed with title attribute
92%iframe with title attribute
100%img with title
99%input type=image with title attribute
93%input type=text with title attribute
58%object with title attribute
35%video with title attribute
Issues when used incorrectly (36% average)38% 43% 39% 30% 34% 30% 46% 31%
4%Link with title containing img with no alt
96%acronym with title
8%button with title containing img with no alt
59%iframe with title matching frame filename
13%iframe with blank title
100%img with null alt and non-null title attributes

usemap

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (74% average)100% 67% 100% 100% 56% 100% 76% 14%
81%area and img with alt attributes
98%area with alt attribute and img with null alt
78%area with aria-label attribute
60%area with aria-labelledby attribute
60%area with title attribute
Issues when used incorrectly (83% average)83% 70% 88% 83% 79% 88% 100% 100%
49%Image map with no name attribute
100%area with no alt
100%area with null alt

xml:lang

Screen ReaderNVDAJAWSVoiceOver
BrowserEdgeFFCrEdgeFFCrMaciOS
Reliability when used correctly (38% average)28% 20% 35% 50% 40% 55% 40% 40%
63%Match lang subtags
13%Page with xml:lang set on the html and p elements
0%application/xhtml+xml page with mismatching lang and xml:lang on the html element
100%text/html page with mismatching lang and xml:lang on the html element

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