ARIA-Describedby and Labelledby Test Page
Summary
- JAWS only reads the
<label>
,<legend>
, andaria-describedby
when<fieldset>
hasaria-describedby
, but notaria-labelledby
, and then only in Firefox. - JAWS never reads the
aria-describedby
bit whenaria-describedby
/aria-labelledby
are applied to the<legend>
except in Opera. - NVDA never reads the
aria-describedby
bit whenaria-describedby
/aria-labelledby
are applied to the<legend>
or<fieldset>
Except in Firefox and Opera whenaria-labelledby
are applied to the<fieldset>
. - Applying
aria-labelledby
to an<input>
prevents its<label>
from being read, except on iOS VoiceOver. - Applying
aria-describedby
to the<input>
works on everything except Opera + JAWS and Opera Mini + iOS VoiceOver. - Applying
aria-describedby
oraria-labelledby
to 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-describedby
oraria-labelledby
in a<label>
,<fieldset>
, or<legend>
. - Do use
aria-describedby
in<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.