[A11ybok] Clarrification (was RE: What the community really needs (at least I do :-))

Thierry Koblentz thierry.koblentz at gmail.com
Fri Mar 16 03:33:26 EDT 2012


Hi John,

> However, if you place content outside of the standard viewport or create a
> situation when content remains in the DOM, but is not shown on screen, then
> by rights it should still be read aloud by screen readers. 

I'd really like to buy that explanation, but it does not really make sense to me (I may be missing something though). 
DOM-wise, I do not see a difference between a box styled with "position:absolute" and one with "visibility:hidden". Both are "in the DOM", but only the content of one will be read aloud by SR. 
What we need is the rational behind that, it would help us make a educated guess. 
For example, even if I think RS should not read CSS generated content, I can understand the logic behind it. And I'm fine with that. 
But when it comes to find out what's considered hidden and what's not we can't rely on any doc that would state this clearly.  

> We have examples of that from the CSS family, where "display:none" and
> "visibility:hidden" removes content from the DOM and so is not spoken by the
> SR. Yet off screen content (such as our 'beloved' skip-nav links <grin>)
> *IS* read aloud as it remains in the DOM, but off screen. I've not tested
> font-size:0 but suspect that it would fall into the second category. 

visibility:hidden does not remove the element from the DOM in any way. Actually, authors use this styling over display:none to be able to query specifics about the box (dimensions, etc.). So I don't think we can rely on this explication to find out what SR are supposed to do according to the styling of the element.

> 
>> 
>> How is "hidden" defined? In my first example, one UA behaves
>> differently and it is said to be buggy.
> 
> Window Eyes is, sadly, fairly buggy still.

I'm not saying it's not, I'm asking if it is wrong or right in this particular instance. Even a super buggy UA could get things right once in a while.

> 
>> But in this other example:
>> https://twitter.com/#!/johnfoliot/status/179952058001133568 one UA
>> differs from the group, but it is said that it is the one that does the
>> right thing...
> 
> Hang on, take that in context. Steve is reporting what is being transmitted
> to the Accessibility API, and the processing rules for the AAPI state that
> if text is "hidden" (using aria-hidden, @hidden or CSS "hiding" techniques
> that take content out of the DOM) then *if* that content is to be processed
> by the AAPI, it must be done so as string text (and not 'rich' text) - thus
> if you hide a URL in IE8  the AAPI processing renders that URL string as
> string text: it is doing what the processing rules state (although, by
> rights it should be reporting @longdesc as a ROLE_SYSTEM_LINK.) 

Once again, I'm not sure considering "hiding techniques that take content out of the DOM" is a reliable way to find out about the behavior of UAs.
If I recall, "overflow:hidden;height:0" hides content from VoiceOver even though it does not remove anything from the DOM. 

> Fair enough, and to be honest it took me more than 5 minutes to get the
> above all sorted out, and it took me actually calling Rich Schwerdtfeger
> directly to  get the skinny before *I* got it. 

I'm glad *you* got it, because it's still very unclear to me ;-)

Thanks!

--
Thierry




More information about the A11ybok mailing list