- From: Laura Carlson <laura.lee.carlson@gmail.com>
- Date: Tue, 23 Sep 2008 03:52:24 -0500
- To: joshue.oconnor@cfit.ie
- Cc: "James Craig" <jcraig@apple.com>, "Al Gilman" <alfred.s.gilman@ieee.org>, "Chris Wilson" <Chris.Wilson@microsoft.com>, "W3C WAI-XTECH" <wai-xtech@w3.org>, public-html@w3.org, "Gez Lemon" <gez.lemon@gmail.com>
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:02 UTC