Re: use of aria-hidden to provide a text description not visible on the page.

James Craig, Fri, 10 Sep 2010:
>> "That's correct. The label of visible elements should still be 
>> exposed to accessibility APIs (as a computed string), even if the 
>> labeling element (that contained all or some of that string) is 
>> hidden."

Many ARIA supporting ATs doesn't actually seem to support this. :-(  
See below.

James Craig, Fri, 10 Sep 2010 12:25:01 -0700:
> The spec recommends authors always SHOULD update the value of 
> aria-hidden, but in practice, when using visibility:hidden or 
> display:none it's rarely needed since all popular screen readers rely 
> on rendering engine support. Less common AT that is not supported by 
> a rendering engine (I think only FireVox, atm) relies on the DOM 
> being updated correctly, too.

Aria-hidden="true" is probably most useful as a progressive enhancement 
feature for those AT that supports it. Example:

Jaws11+Firefox3.6.9 is a quite common AT: It supports aria-labelledby. 
But fails to expose (to users) labels that have been hidden with CSS 
display:none or visibility:hidden. And Jaws+IE7 at least isn't any 

VoiceOver respects aria-hidden regardless of whether the element is 
actually hidden (via CSS), whereas Jaws+Firefox and NVDA+Firefox seems 
to fail to give any regard to aria-hidden whatsoever. 

Since common AT do not expose hidden labels, it might be best to, for 
maximum compatibility, to hide labels via other means, such as 
off-screen positioning. However, this could cause AT to present labels 
twice. But by setting such labels to aria-hidden="true", one can at 
least make sure that supporting AT, such as VoiceOver, does not read 
the labels twice.
leif halvard silli

Received on Saturday, 11 September 2010 10:10:01 UTC