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

Despite being rare, it's still important to provide mark up so that
data cells can unambiguously be associated with their header cells.
It's inevitable that there will be complex relationships that must be
able to be modeled with markup alone.

WCAG 2 explains the headers/id technique this way: "This technique is
used when data cells are associated with more than one row and/or one
column header. This allows screen readers to speak the headers
associated with each data cell when the relationships are too complex
to be identified using the th element alone or the th element with the
scope attribute." [1]

It is about needed FUNCTIONALITY. headers/id may be rare. But when it
needed it is needed. In Gez's example users interact with the table.
In that case required FUNCTIONALITY IS LOST without headers/id. The
user is impeded without headers/id. They need it to do their job
properly.

PFWG's advice stated, "A disability constituency currently uses and
depends on this feature: anyone offering to remove it should be
expected to demonstrate that the replacement works better and is in
service. Dropping 'headers' because 'scope' could afford the same
semantics in 'most of the cases' is a wrong decision; now or, taken in
isolation, for the future. The headers/id technique provides
functionality today. If it is to be worked out of the system, it
should not be an abrupt drop. Transition it out with something better
in an orderly and graceful manner." [2]

A comment in the HTML 4 specification DTD fragment for td and th[1]
was clear that if a cell was both a header and contained data, then
authors should use td:

<!-- TH is for headers, TD for data, but for cells acting as both use TD -->

This is also clarified in the section on associating header
information with data cells [3]:

"Note that it's not always possible to make a clean division of cells
into headers or data. You should use the TD element for such cells
together with the id or scope attributes as appropriate."

I've always believed it was a mistake that the headers attribute is
allowed on th element in HTML 4, as requiring a header must mean the
cell contains data.

The problem is that the HTML5 specification states that each token in
the headers attribute should have the value of an id of a th element
[4]:

"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 ..."

If a cell contains data but is also a header, then it should be marked
up as a td element. In this case, other td elements should be able to
reference it using the headers attribute. The scope element should
also be allowable on a td element for the same reason.

Best Regards,
Laura

[1] http://www.w3.org/TR/WCAG20-TECHS/H43.html
[2] http://lists.w3.org/Archives/Public/public-html/2007Jun/0145.html
[3] http://www.w3.org/TR/html401/struct/tables.html#h-11.2.6
[4] http://www.w3.org/TR/html401/struct/tables.html#h-11.4.1

Received on Tuesday, 23 September 2008 08:53:11 UTC