Re: function and impacts (was: @scope and @headers reform)

Henri Sivonen wrote:
> On Sep 25, 2008, at 10:58, Joshue O Connor wrote:
<snip>
>> It's not a desired stance /against/ native enabling semantics at all. 
>> It's a distilled realization that this may be needed in order to make 
>> more complex tables accessible in a way that will practically work. 
>> Again, the semantic ideal vs the real world. Supporting this behavior 
>> in the spec until UAs can deal with the improved algorithm (and you 
>> make very valid points about the need to improve it) would mean that 
>> HTML 5 will support older AT "out of the box". On this issue anyway.
> 
> Why is making headers to point to td relevant to supporting legacy UAs? 
> (See my previous email for an elaboration.)

Allowing headers to reference a td would allow more complex tables to be 
made accessible to users of assistive technology. The suggested method 
works in current and older AT as support for header/id combinations is 
rather good. [1] [2] [3] [4]

> I should have checked the current draft first, so to clarify:
> headers/id is already in the draft for pointing to th elements but the concept of chained header cells isn't and pointing to td is not allowed.
> http://www.whatwg.org/specs/web-apps/current-work/#headers 

Yes, what we are suggesting is that pointing to a td should be allowed 
and this is possible by allowing a id referencing, with only a simple 
amendment to the current wording of the existing draft of the spec. Our 
solution is on line with current WG principles of accessibility, 
supporting Existing Content, degrading gracefully, not reinventing the 
wheel, evolution Not Revolution, solving real problems etc. [5]

Recommendation

Extend the definition of the headers attribute to allow it to reference 
a td. This would make it possible for complex data tables to be marked 
up accessibly.

Only pure headings should be marked up with th, and data cells should be 
marked up with td. When a cell contains data but acts as a heading, the 
cell should be marked up with a td, and is a conceptual header cell. In 
this situation, the headers attribute should be able to reference the id 
attribute value of the conceptual header cell marked up with a td, as 
well as any corresponding pure header cells marked up with a th.

Original Text

"...The headers attribute, if specified, must contain a string 
consisting of an unordered set of unique space-separated tokens, each of 
which must have the value of an ID of a th element..."

Source: 3.13 Tabular data (headers)

New Proposed Text

"...The headers attribute, if specified, must contain a string 
consisting of an unordered set of unique space-separated tokens, each of 
which must have the value of an ID of a th or td element..."

> Here's an example of a table with at least one headers/id cycle:
> http://www.usdoj.gov/jmd/fass/afvreport2005.htm

Thanks for that Henri. I will add that to the wiki.

> Regardless of how common this is, if headers cells can be chained AND authors can add arbitrary header associations, it is *possible* to construct a cyclic header chain. 
>A proper spec must, then, define in detail what an agent is to do with cycles. (What does existing client software do, btw?) 

I don't actually know as I have never come across one. It could be a 
case that there would be a heuristic loop. However, this kind of thing 
would not be a show stopper for AT because when the user gives any other 
HTML element focus it would break that loop.

Cheers

Josh

[1] http://esw.w3.org/topic/HTML/IssueTableHeaders
[2] http://www.w3.org/Bugs/Public/show_bug.cgi?id=5822
[3] http://esw.w3.org/topic/HTML/TableHeadersTestingBug5822
[4] http://juicystudio.com/wcag/tables/complexdatatable.html
[5] http://esw.w3.org/topic/HTML/Action72Headers

Received on Thursday, 25 September 2008 08:53:07 UTC