Re: additional sentence for 204

Comments on James's variant of the text.

]]
 Note: Only hidden="" elements that are referenced indirectly by a 
 unique identifier (ID) reference

[What about @name for <map>?]

 or valid hash-name reference may 
 have their structure and content exposed upon user request. Authors 
 desiring to prevent user-initiated viewing of hidden="" elements 
 should remove identifier (ID) or hash-name references to the element.
[[

So now I want to defend HTML: This sounds much too ARIA like in its 
logic.

When it comes to aria-describedby/-labelledby then they do not imply a 
particular semantic relationship between the two connected elements: 
labelledby could refer to a <caption> but it could also refer to a 
<div> - even a <script>.  By contrast, take for instance the @usemap 
attribute. If you remove it, then you remove the entire image map 
functionality. For all users. Even AT users.

For the @headers attribute your logic could seem simpler to accept as a 
hidden <th> element does not affect anyone. However: It would be 
possible to use @headers to create some CSS or JavaScript that 
highlights the referenced headers. And @headers do define which the 
connected header cells are *even if they are hidden*. So by removing 
@headers, one would be changing the semantics of the table.

I am of course not opposed to *inform* the spec readers that hidden 
elements are not revealed to anyone if either the referenced attributes 
( @id, @name) or the referencing attributes (@headers, @usemap and 
others) are removed. But I am opposed to "informing" readers that this 
is a method they can use in order to prevent hidden text from being 
read. To say that, is a much too simplistic.

Ultimately, what you say here is that if someone uses @longdesc to 
point to somewhere in the same page, then the spec should inform 
authors that they can prevent the referenced text from being presented 
by removing the @longdesc. Is there really a point in saying such a 
thing?

I am afraid that we cannot 100% solve this dilemma without counting on 
ARIA. For example, imagine that the <map> element contained some ASCII 
art. Then, remember that we are talking about a situations where the 
"full semantics" are present. So then it would be possible to use 
role=img on the child element containing the ASCII art. One could also, 
I suppose use aria-hidden="true" inside e.g. a <map>. If the text "must 
not" talk about this, then it should say that "HTML has no means for 
hiding such content, but that authors may use ARIA attributes, see 
ARIA". 

I am not sure that we even need to talk about id references - it sounds 
like language that has been placed there to prevent something in the 
future or whatever. But what about the <object> element. Or <canvas> ? 
Is the fallback/subdom of <canvas> considered hidden? If you add 
hidden="" to an element inside <canvas>, does that change anything? If 
that change anything, then I agree that the subdom of <canvas> is not 
hidden and as such falls outside the subject. But what about <object>? 
Remember that <object> can be image maps. And that the <map hidden="" 
name="map" > element then can be placed as child of <object>. Is it 
only when <object usmap="map"> contains a <map> that its fallback will 
be rendered with full semantics?
-- 
leif halvard silli

Received on Friday, 14 September 2012 00:46:14 UTC