- From: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
- Date: Sat, 11 Sep 2010 12:09:23 +0200
- To: James Craig <jcraig@apple.com>
- Cc: Steven Faulkner <faulkner.steve@gmail.com>, W3C WAI-XTECH <wai-xtech@w3.org>, HTML Accessibility Task Force <public-html-a11y@w3.org>
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 better. 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:09:57 UTC