Link with aria-label
containing img
with no alt
Screen reader compatibility
Expected Result: causes problems in some screen readers
Actual Result: causes problems in 13 screen reader / browser combinations
For expected failures, the results show which AT combos the failures affect. Results are recorded from the user's viewpoint, so describe the user impact of authoring errors.
For best compatibility with lazy load polyfills and other scripts which hide offscreen images add `aria-label` on the link with `alt=""` on the `img` inside the link. That means offscreen links have accessible names even if the image is hidden, because `alt` on hidden images is ignored by the ARIA Accessible Name Computation.
WCAG Failure: ARIA8
Code used for this test:
<a href='4567.html' aria-label='this is an aria label'><img src='1234.png'></a>
Change History
Last updated: September 11, 2022
NVDA with Chrome Stable - OK from NVDA 2018.4 to NVDA 2022.2
NVDA with IE Stable - OK from NVDA 2012.3 to NVDA 2019.2
NVDA with FF Better - caused problems in NVDA 2012.1, but now OK in NVDA 2022.2
JAWS with Chrome Stable - OK from JAWS 2018.1811.2 to JAWS 2022.2207.25
JAWS with IE Causes problems in JAWS 2019.1912.1
JAWS with FF Better - caused problems in JAWS 2018.1811.2, but now OK in JAWS 2022.2207.25
VoiceOver macOS Better - caused problems in VoiceOver macOS 10.9, but now OK in VoiceOver macOS 12.5
VoiceOver iOS Stable - OK from VoiceOver iOS 7.1 to VoiceOver iOS 15.6
WindowEyes with IE Better - caused problems in WindowEyes 8.4, but now OK in WindowEyes 9.2
Dolphin with IE OK in Dolphin SR 15.05
SaToGo with IE Causes problems in SaToGo 3.4.96.0
Screen reader | Browser | Mode | Notes | What the user hears |
---|---|---|---|---|
![]() | Chrome 105 | Reading | Link, this is an aria label | |
![]() | Chrome 105 | Tabbing | This is an aria label, link | |
![]() | FF102 | Reading | Link, this is an aria label | |
![]() | FF102 | Tabbing | This is an aria label, link | |
![]() | Edge 105 | Reading | Link, this is an aria label | |
![]() | Edge 105 | Tabbing | This is an aria label, link | |
![]() | Chrome 94 | Reading | Link, this is an aria label | |
![]() | Chrome 94 | Tabbing | This is an aria label, link | |
![]() | FF91 | Reading | Link, this is an aria label | |
![]() | FF91 | Tabbing | This is an aria label, link | |
![]() | Edge 94 | Reading | Link, this is an aria label | |
![]() | Edge 94 | Tabbing | This is an aria label, link | |
![]() | Chrome 86 | Reading | Link, this is an aria label | |
![]() | Chrome 86 | Tabbing | This is an aria label, link | |
![]() | FF78 | Reading | Link, this is an aria label | |
![]() | FF78 | Tabbing | This is an aria label, link | |
![]() | Edge 92 | Reading | Link, this is an aria label | |
![]() | Edge 92 | Tabbing | This is an aria label, link | |
![]() | Chrome 79 | Reading | Link, this is an aria label | |
![]() | Chrome 79 | Tabbing | This is an aria label, link | |
![]() | FF68 | Reading | Link, this is an aria label | |
![]() | FF68 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | Chrome 73 | Reading | Link, this is an aria label | |
![]() | Chrome 73 | Tabbing | This is an aria label, link | |
![]() | FF60 | Reading | Link, this is an aria label | |
![]() | FF60 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | FF60 | Reading | Link, this is an aria label | |
![]() | FF60 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | FF48 | Reading | Link, this is an aria label | |
![]() | FF48 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | FF40 | Reading | Link, this is an aria label | |
![]() | FF40 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | FF28 | Reading | Link, this is an aria label | |
![]() | FF28 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | FF28 | Reading | nothing read, and no indication of link | Blank |
![]() | FF28 | Tabbing | Skipped by tabbing - unreachable with tab key | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | Chrome 105 | Reading | Link, this is an aria label | |
![]() | Chrome 105 | Tabbing | This is an aria label, link | |
![]() | FF102 | Reading | Link, this is an aria label | |
![]() | FF102 | Tabbing | This is an aria label, link | |
![]() | Edge 105 | Reading | Link, this is an aria label | |
![]() | Edge 105 | Tabbing | This is an aria label, link | |
![]() | Chrome 94 | Reading | Link, this is an aria label | |
![]() | Chrome 94 | Tabbing | This is an aria label, link | |
![]() | FF91 | Reading | Link, this is an aria label | |
![]() | FF91 | Tabbing | This is an aria label, link | |
![]() | Edge 94 | Reading | Link, this is an aria label | |
![]() | Edge 94 | Tabbing | This is an aria label, link | |
![]() | Chrome 86 | Reading | Link, this is an aria label | |
![]() | Chrome 86 | Tabbing | This is an aria label, link | |
![]() | FF78 | Reading | Link, this is an aria label | |
![]() | FF78 | Tabbing | This is an aria label, link | |
![]() | Edge 92 | Reading | Link, this is an aria label | |
![]() | Edge 92 | Tabbing | This is an aria label, link | |
![]() | Chrome 79 | Reading | Link, this is an aria label | |
![]() | Chrome 79 | Tabbing | This is an aria label, link | |
![]() | FF68 | Reading | Link, this is an aria label | |
![]() | FF68 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Image filename read instead of aria-label | Link graphic twelve thirty four |
![]() | IE11 | Tabbing | This is an aria label, link graphic | |
![]() | Chrome 73 | Reading | Link, this is an aria label | |
![]() | Chrome 73 | Tabbing | Tab, this is an aria label, link | |
![]() | FF60 | Reading | Image filename read instead of aria-label | Link graphic twelve thirty four |
![]() | FF60 | Tabbing | Tab, this is an aria label, link graphic | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | Tab, this is an aria label, link | |
![]() | FF52 | Reading | Link, this is an aria label | |
![]() | FF52 | Tabbing | Tab, this is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | Tab, this is an aria label, link | |
![]() | FF48 | Reading | Link, this is an aria label | |
![]() | FF48 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | FF40 | Reading | Link, this is an aria label | |
![]() | FF40 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | FF29 | Reading | Link, this is an aria label | |
![]() | FF29 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | FF29 | Reading | Link, this is an aria label | |
![]() | FF29 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | FF29 | Reading | ignores aria-label and reads out img filename | Link graphic twelve thirty four |
![]() | FF29 | Tabbing | ignores aria-label and reads out img filename | Twelve thirty four link graphic |
![]() | IE11 | Reading | ignores aria-label and reads out img filename | Link Graphic test slash twelve thirty four |
![]() | IE11 | Tabbing | ignores aria-label and reads out img filename | Test slash twelve thirty four, link graphic |
![]() | IE11 | Reading | Link, this is an aria label | |
![]() | IE11 | Tabbing | Link, this is an aria label | |
![]() | IE11 | Reading | reads out path of link | Link test slash forty five sixty seven dot html |
![]() | IE11 | Tabbing | Link, this is an aria label | |
![]() | Safari 15.6 | Reading | Link image, this is an aria label | |
![]() | Safari 15.6 | Tabbing | Link image, this is an aria label | |
![]() | Safari 15.0 | Reading | Link image, this is an aria label | |
![]() | Safari 15.0 | Tabbing | Link image, this is an aria label | |
![]() | Safari 14.1 | Reading | Link image, this is an aria label | |
![]() | Safari 14.1 | Tabbing | Link image, this is an aria label | |
![]() | Safari 13.0 | Reading | Link image, this is an aria label | |
![]() | Safari 13.0 | Tabbing | Link image, this is an aria label | |
![]() | Safari 12.1 | Reading | Link image, this is an aria label | |
![]() | Safari 12.1 | Tabbing | Link image, this is an aria label | |
![]() | Safari 10.1.2 | Reading | Link image, this is an aria label | |
![]() | Safari 10.1.2 | Tabbing | Link image, this is an aria label | |
![]() | Safari 9.1.2 | Reading | Link image, this is an aria label | |
![]() | Safari 9.1.2 | Tabbing | Link image, this is an aria label | |
![]() | Safari 8.0.6 | Reading | Link image, this is an aria label | |
![]() | Safari 8.0.6 | Tabbing | Link image, this is an aria label | |
![]() | Safari 7.0.3 | Reading | Reads out filename of image | Link image one two three four PNG, this is an aria label |
![]() | Safari 7.0.3 | Tabbing | Reads out filename of image | Link image one two three four PNG, this is an aria label |
![]() | Safari iOS 15.6 | Touch | This is an aria label, link image, logo other, test image | |
![]() | Safari iOS 14.7 | Touch | This is an aria label, link image | |
![]() | Safari iOS 13.3 | Touch | This is an aria label, link image | |
![]() | Safari iOS 12.4 | Touch | This is an aria label, link image | |
![]() | Safari iOS 11.4 | Touch | This is an aria label, link image | |
![]() | Safari iOS 10.3 | Touch | This is an aria label, link image | |
![]() | Safari iOS 9.1 | Touch | This is an aria label, link image | |
![]() | Safari iOS 8.4 | Touch | This is an aria label, link image | |
![]() | Safari iOS 7.1 | Touch | This is an aria label, link image | |
![]() | IE11 | Reading | This is an aria label, link | |
![]() | IE11 | Tabbing | This is an aria label, link | |
![]() | IE11 | Reading | ignores label and just reads blank link | link |
![]() | IE11 | Tabbing | ignores label and just reads blank link | link |
SortSite rules: AccHtmlLinkTextBlank
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