headers attribute Issue

Issue

HTML 5 needs a mechanism that enables people using non-visual user agents to determine which particular data matches with which particular headers in complex and overlaid tables. People who use screen readers listen to information, without any visual cues. They currently rely on the id/headers mechanism to be able to comprehend complex table data.

WCAG 2 explains the id/headers 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."

Status

Open

Editor added headers to the spec. HTML 5 now says that "The td element may have a headers content attribute specified".

However, this issue isn't solved by the current spec. The way it is specified only allows the simplest of data tables to be defined accessibly, which defeats the purpose of getting the headers attribute into the specification at all, because it can't do anything that most ATs don't already do by default. Currently implementation is such that complex tables cannot be created using the headers attribute. The language in the current spec is attempting to pacify PFWG. The spec complies with PFWG's advice by paying lip service to headers while dissenting in functional requirements. It is an attempt to circumvent the issue not solve it. The headers attribute in the current specification is of little use, as it can only reference a th, and the th cannot be a hierarchical th. Without being able to associate header cells to data cells, screen reader users will either have great difficulty, or find it impossible, to orientate themselves in complex data tables.

As hierarchical headers are not allowed in HTML5, this means that conceptual headers (cells that contain data and have their own header, but act as a header for other cells in the table) must be marked up as a td. As these cells are conceptually headings, the headers attribute should be able to reference the id attribute of these cells.

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 id/headers 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."

References:

Proposed Two Step Solution

  1. Reinstate id/headers AND their functionality into the spec by specifically stating that headers are allowed to reference a td. Reword the current definition of the headers attribute so that each of the space separated tokens must have the value of the ID value of a th or td element.
  2. Introduce a new type of table cell which automatically acts as both a header and a data cell without any explicit accessibility attributes or without any explicit associations (as the editor proposed in bug 5822). Note: This step doesn't help describe irregular tables and it doesn't work right now with AT, whereas headers/id does.

If headers are ever to be transitioned out of html, do it in an orderly and graceful manner.

HTML WG Actions, Responses, Bug Reports

Advice Request to PFWG and their Response

Table of Contents:

Rationale: Why Headers Should be Included

  1. The id/headers technique provides needed functionality in more cases than scope/group. Screen readers do not support scope very well. (See the Research section and the User Agent Working Group comments in the Use Case section below.)

  2. No set number of use cases proves a feature should be included or excluded from the spec. The W3C requires that technologies must be accessible. By definition, people with disabilities are a minority. Accessibility features address failure modes that are infrequent, but critical when they occur.
  3. 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.
  4. In order to apply the new scope/group technique, tables must be restructured. You can't just add markup to an existing table as you can with headers/id.
  5. The id/headers technique may sometimes be used incorrectly but that is true of all markup. Failure by some to implement a standard is not in itself sufficient justification for getting rid of that standard.
  6. On a pure language-complexity basis, 'scope' is more heavyweight than headers. It adds several new terms, an attribute name and multiple values. 'headers' adds just one term and otherwise re-uses core features (ID).
  7. The id/headers 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.
  8. Anyone suggesting not including id/headers should demonstrate that the replacement works better and is in service.
  9. Applicable Design Principles

Rationale: Why Headers Should Not be Included

  1. The scope/group technique handles the majority of use cases.
    • Is there concrete evidence for this? scope/group serves a distinct purpose from id/headers, which are far more widely supported by assistive technologies; the use of one, the other, or both is often necessary, depending upon the complexity of the TABLE.
  2. An insufficient amount of use cases exist to justify id/headers.
    • Where are the statistics to back up this claim? id/headers bindings in TABLEs do exist in the wild, and the scarcity of the use of binding mechanism is not due to a defect in the id/headers or scope and axis models, but merely a lack of implementation by "mainstream" developers and document authors.
  3. Complex tables are very rare on the Web. If something is rare, then it shouldn't be supported.
    • Again, where is the concrete evidence for this claim? Following the argument "If something is rare, then it shouldn't be supported" to its logical conclusion is an extremely troubling and dubious design "principle" -- this markup serves precisely to provide access for a specified user group -- the blind, the legally blind, those with low vision, and those with cognative difficulties whose comprehension is aided by supplemental speech. No, this user group is not statistically overwhelming, but is this (and other) user groups to be punished for a lack of sheer numbers? Persons with disabilities exist, and the W3C has made a commitment to them to ensure that existing barriers are eradicated and that new barriers are not constructed. Even if the number of persons who depend upon the binding of data cells to their headings is not statistically large, markup was added to HTML 4.01 expressly to increase accessibility, and hence the number of disabled individuals who can use the web for educational, informational, and fiduciary reasons will also increase. What constitutes the numeric threshold for "something" which is "rare" to be supported, and who is to decide where that threshold is located? The end product of such logic is that persons with disabilities don't matter, because, in the overall scheme of things, their presence on the web is "rare". In order for an attribute expressly designed for a specific purpose to be deprecated, a superior mechanism than that defined for TABLE accessibility in HTML 4.01 must be retained. The onus isn't on those who depend upon such explicit bindings to "prove" to the HTML WG that they are necessary -- the onus lies squarely on the shoulders of the developers of authoring tools, user agents, and document authors to prove that a superior mechanism, providing an equivalent or enhanced functionality, exists, thereby justifying the consideration of deprecating markup expressly designed to assist persons with disabilities.

  4. The id/headers technique is complex for authoring. Scope/group is easier and less error-prone.
  5. The id/headers technique is sometimes used incorrectly.
    • Author errors/ignorance is not a reason to deprecate an attribute or element.

  6. Adding headers to the specification will cause code bloat.
    • headers were already in HTML 4.01, even if unevenly supported; the claim that it will cause code bloat is a non-sequitor; there are plenty of other newly introduced elements and attributes in the HTML5 draft that actually do cause code bloat. The headers/id binding is not merely just another piece of code, but a mechanism providing essential information to anyone who cannot -- for whatever reason -- perceive the TABLE, which is a purely visual and presentational construct when stripped of the accessibility elements and attributes defined for TABLE.
  7. By the time HTML5 becomes widely used, one would hope assistive technology would support scope/headers. HTML5 actually goes some way towards helping with this, by providing exact algorithms for associating table header cells with data cells, resulting in exactly the same data structures as headers="" provides.
  8. People suggesting including id/headers haven't demonstrated that it is needed. More research is required.
    • Again, where is the evidence for this claim? Simply attempt to read the table-ized results of WBS straw polls and surveys -- a TABLE is the worst means of expressing the information contained therein, due to its inordinate length and the space limitations of individual table cells. If more research is required, then it should be research that proves the contention that id/headers are not needed.
  9. Applicable Design Principles

Advice From Other Accessibility Authorities

Research

Examples

Use Cases

Policies, Guidelines, and Law

Related Blog Posts

Related IRC Discussion and IRC Teleconference Minutes

Related E-mail Threads

May 2007

June 2007

July 2007

August 2007

September 2007

October 2007

November 2007

January 2008

March 2008

April 2008

June 2008

July 2008

Search on Markmail for Related E-mail

HTML/IssueTableHeaders (last edited 2008-07-24 17:02:47 by LauraCarlson)