W3C home > Mailing lists > Public > w3c-wai-ig@w3.org > April to June 2001

Re: Table Questions

From: Al Gilman <asgilman@iamdigex.net>
Date: Fri, 11 May 2001 18:51:03 -0400
Message-Id: <Version.32.20010511173207.047ad660@pop.iamdigex.net>
To: <w3c-wai-ig@w3.org>
Cc: Liz Roberts <liz@netlogix.net>
[firehose warning (picky detail, thorny theory)  - Al]

At 01:05 PM 2001-05-11 -0400, you wrote:
>Everyone's comments have been incredibly helpful; of course, I always seem
>to have more questions!
>In regards to the data vs. layout table issue, I would like to present the
>following example:
>Supposing this is a data table, the top-level "header" is "Property
>Description," with "Name," "address," and the like a "second level" of
>headers (labeled as TDs because: "TH is for headers, TD for data, but for
>cells acting as both use TD"
/TR/html4/struct/tables.html#h-11.2.6>).  Of course, the
>spec doesn't show an example of such a construct... should you use "id" and
>"headers" with TDs?  ("headers" are not included in example because I wasn't


You have (it's subtle here) misinterpreted the "use TD when both" rule as it
affects this table.  The marking "Address:" is clearly a header for the
cell to
its right, and only a header.  It introduces no data for the purposes of the
"if both" suggestion.  So that cell (and all cells in columns one and three
below the initial spanning table header) should be coded as TH to use the
markup in a manner consistent with this comment in the DTD.  Not that it
matters.  The distinction between TH and TD is not generally used right, so
should you?

Yes, you may use ID on a TD and point to a TD with HEADERS where you have
followed the comment about "use TD when both."  In particular, if you use
HEADERS in this way you have insurance against errors in determining what is a
TH and what is a TD.

Your example can be considered as a layout table used to wrap a two-column
table into a folded layout of two (newspaper-like) layout columns.  There is a
"data table" relationship in that the Column 1 entries are headers for the
Column 2 entries and the Column 3 entries are headers for the Column 4
entries.  But, as Steven McCaffrey confirmed, it passes the "makes sense when
linearized" test.  

[By the way, we just disproved Jim Thatcher's supposition that five experts
would agree.  This test table is one that would divide the gut reactions.  I
still suspect that for cases _where it matters more_ you could expect that
experts would agree, but twenty-five might contain a dissenting vote, an
alternate interpretation.]

The semantic definition I would suggest you use for "data table" as used in
508 Regulations would be that it is a "data table" if there is a _recurring
pattern of relationships_ which appears repeately in _similar groups of
and it is important to understand that pattern of relationships _in
addition to
the cell contents_ to understand the information provided by the cell

In the present case, there is a recurring pattern of relationship, but it is
not necessary to understand the cell contents.  The cell contents themselves
evoke the relationship adequately without recourse to the structured context.

In this case, there is a recurring "field name, value of this field for this
residence" pattern in the table, but the way the field names are stated one to
one with the data for the fields makes the relationship obvious from the cell
contents alone,  It is not necessary to recall a pattern from the context to
interpret the cell contents.

[It is not just a list.  It is a labeled list.  The pattern of (field label,
field value) repeated forms a relation, that is, a logical table.  But it is a
simple one.]

All that is more theory than you wanted, but that is the sort of test that the
508 rule equates to.

The simple rule, "Use the other markup for any table which fails the 'makes
senses as linearized' test" is practical and may prove to be sufficient in

The highest and best markup for your example is to make the cells in columns 1
and 3 be TH cells, the cells in columns 2 and 4 be TD cells, and the cells in
columns 2 and 4 have HEADERS attributes which point to the header cell
immediately to their left.   The way you have laid it out, there is a
two-column data table which has been further folded into two layout-columns of
two table-columns each.  In this layout the SCOPE attribute would be ambiguous
and you should use HEADERS in preference to SCOPE in this layout.

[And Jim reports the screen readers don't know from SCOPE anyway.]

For this particular table, the distinction between data and layout structures
is largely academic, because the table works as linearized.  The regular
structure is present but not critical to be remembered.

The data-to-header relationships that I above suggested you mark are
to the results of the "guessing" algorithm suggested in the HTML 4
specification, but it does not hurt to be explicit.  The explicit markup is
excessive or in any way negative in this case, because the indicated HEADERS
relationships are genuine, even if they point to something that came just
before in the linearized reading order.

>I feel like I'm using a table for layout... but if I think about the data
>logically, it seems like there are logical headers, etc.

AG::  In the table you built there are both logical and layout structures
present.  You are using table layout for logical connections, and for
use of the space available, both.

>And on the page before my example one, there are search results that I don't
>feel use the table simply for layout.

AG:: How do we get to this "page before?"


>Thanks again,
Received on Friday, 11 May 2001 18:43:30 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 19 July 2011 18:13:54 GMT