ARIA-Describedby and Labelledby Test Page
Summary
- JAWS only reads the
<label>,<legend>, andaria-describedbywhen<fieldset>hasaria-describedby, but notaria-labelledby, and then only in Firefox. - JAWS never reads the
aria-describedbybit whenaria-describedby/aria-labelledbyare applied to the<legend>except in Opera. - NVDA never reads the
aria-describedbybit whenaria-describedby/aria-labelledbyare applied to the<legend>or<fieldset>Except in Firefox and Opera whenaria-labelledbyare applied to the<fieldset>. - Applying
aria-labelledbyto an<input>prevents its<label>from being read, except on iOS VoiceOver. - Applying
aria-describedbyto the<input>works on everything except Opera + JAWS and Opera Mini + iOS VoiceOver. - Applying
aria-describedbyoraria-labelledbyto the<label>never works (ie: it never reads both). - If using iOS and VoiceOver, it makes almost no difference if you use Safari, Chrome, or Firefox.
- If using VoiceOver on OS X, Firefox reads a lot of stuff twice, and Safari leaves a lot out.
- Adding
tabindex="-1"to the Extra Text makes no appreciable difference. (Seetabindex-"-1"test results.)
Conclusion
Dos and don'ts:
- Don't put
aria-describedbyoraria-labelledbyin a<label>,<fieldset>, or<legend>. - Do use
aria-describedbyin<input>s to supplement the<label>. - Don't use Safari on OS X with VoiceOver. If using VoiceOver on OS X, Firefox gives a slight advantage, even if it reads stuff out twice sometimes.
- Don't use Opera Mini on iOS if you go blind or require a screen reader.