- From: Dave Raggett <dsr@w3.org>
- Date: Wed, 15 Oct 1997 13:39:55 -0400 ()
- To: Al Gilman <asgilman@access.digex.net>
- cc: HC team <w3c-wai-hc@w3.org>, jbrewer@w3.org
> TABLE Making TABLEs comprehensible Here is my cut at describing accessibility for tables: Today HTML pages use tables for two purposes: to layout pages, and to present tabular information. Both uses present accessibility problems. When tables are being used purely for visual layout, the issue is mainly one of reading order. This can perhaps be dealt with via style sheets and is being described in greater detail in another message. This message will focus on how to improve the browsing experience for tabular information. Tabular information generally consists of headers and data. Imagine using a speech-based browser to examine a table designed for visual browsers. If there are more than just a few cells it will be easy to forget the headers as you move from cell to cell. If there was some way of knowing which headers are appropriate to this cell, then perhaps you could ask for these headers to be spoken, either on request, or automatically when you move to a new cell. This will work much better if the author has been so kind as to provide abbreviations for headers. Table captions are generally chosen in the knowledge that most users will be able to glance quickly at the table contents. The caption therefore is quite brief. It would be useful if authors were to provide a supplemental summary of the table's structure and purpose for use with non-visual media such as speech and Braille. HTML 4.0 therefore proposes to add a new attribute named naturally enough, "summary". This attribute will be on the table element so it can be provided even when there is no caption. The proposals for specifying which headers are relevant to each cell are designed to allow these headers to be grouped and for these groups to be ranked. This is intended to give implementors the freedom to treat the table as a hierarchy that is independent of the visual layout chosen for windows based browsers. The idea is to allow large and complex tables to be browsed in a similar way to browsing file system directories, with the ability to hide or expose levels of detail. The scope attribute allows authors to state whether a given header applies to the current row, column, row group or column group. This takes advantage of new table features in HTML 4.0 for specifying column properties and for grouping rows and columns. Scope works well for most simple tables. Here is an example taken from the latest draft of HTML 4.0: <TABLE summary="History courses in Bath arranged by course name, tutor, summary, code and fee"> <TR> <TH colspan="5" scope="colgroup">Community Courses - Bath Autumn 1997</TH> </TR> <TR> <TH scope="col" abbr="Name">Course Name</TH> <TH scope="col" abbr="Tutor">Course Tutor</TH> <TH scope="col">Summary</TH> <TH scope="col">Code</TH> <TH scope="col">Fee</TH> </TR> The summary attribute is used to summarise the role and structure of the table: "History courses in Bath arranged by course name, tutor, summary, code and fee" Each row is represented by the TR element. The first row contains column headers. These are marked up using the TH element, each of which has scope="col" to indicate its role as a column header. The abbr attribute is used to provide an abbreviation for longer headers. The next row is marked up as: <TR> <TD scope="row">After the Civil War</TD> <TD>Dr John Wroughton</TD> <TD> The course will examine the turbulent years in England after 1646. <EM>6 weekly meetings starting Monday 13th October.</EM> </TD> <TD>H27</TD> <TD>£32</TD> </TR> The TD element is used to markup each data cell. The first cell in the column gives the course name. Since this is considered to be helpful when browsing subsequent cells in the row, it has been marked up with the scope attribute, this time with scope=row to indicate that its relevant to the rest of the current row. The scope attribute is of limited generality. For cases where it breaks down, we propose an attribute called "axes" that is used to list the ID's of all relevant headers. The name is based upon the idea of thinking of tabular data in terms of values at points in an n-dimensional space. The headers then form marks along the axes of this space. An attribute called "axis" is used to supply a name indicating which axis a given header belongs. Scope and axes are interelated and implementors are likely to map them both into the same internal model of which headers are relevant to each cell. Finally, there is interest in being able to associate tables with meta-information that describe richer semantics about the table. Regards, -- Dave Raggett <dsr@w3.org> http://www.w3.org/People/Raggett phone: +44 122 578 2984 (or 2521) +44 385 320 444 (gsm mobile) World Wide Web Consortium (on assignment from HP Labs)
Received on Wednesday, 15 October 1997 13:42:30 UTC