[techs] Definitions of complex data tables

Hello All,
This is with reference to the definition of complex tables and use of summary attribute. What might go into a summary is also  demonstrated.
As a user of AT, I regard tables with multiple header rows and / or columns as a complex table. I'll illustrate this in a moment. Of course tables in which header (or data) cells  need to be associated to data cells that are not exactly below them or  exactly to their right (in a l-r system)  are complex.
If the purpose is to say complex tables need summaries, I'll add a few more types to the above:
- a  table (otherwise characterized as simple) which has rows  for control breaks. eg. First column is labeled Month and cells below it contain Jan, Feb, etc. But every fourth cell does not contain a month but a description like: Total for Q1, Total for Q2. In this case the summary attribute should be used to explain presence of row with quarterly totals to a screen  reader user .
- Another case is  also a simple table with no column headings at all! Consider:
Caption: Train timings from New York to Washington DC
(Following are cell contents separated by a comma)
Train #1 Departs 5 am, Arrives 8 am
Train # 2, Departs 5.30 am, Arrives 8.45 am
Train # 3, Departs 6 am, arrives 8.55 am
and so forth.
In this table a summary should be used to tell the screen reader user to navigate the data table withverbosity setting to read only row headers.
- Yet another case is David's example of traffic cop: a table in which the third column cells contains data in a list structure. There can be multiple links in a cell as in this case. It makes sense to navigate this table as a data table but when one gets to the third column, one must  simply exit table nav mode and use arrow keys to  read each list item or link separately. In table navigation mode the content of third columns are read as a chunk which can be  overwhelming and not very useful. A summary should aid navigation by explaining this to the user.   

For simple tables with one row  and one column of headers summary is really not necessary. 

Complexxity  caused by col span and row span: four examples follow. 
Note: in examples below, R1C1 means row 1 col 1, and so forth. I have not used HTML code and hope the  manner of presentation used below is effective.  
Example  1: Table with col span in first row:
First row of headers:
R1C1, R1C2 col span= 2,  R1C3 colspan =3
Second  row of headers:
R2C1, R2C2, R2C3, R2C4, R2C5, R2C6
Then there are data rows with six cells.
Example 2:
Same as example 1 above but second row of  headers appears first and is followed by the first row with three cells, two of which use col span as above.
Example 3: Same as example 1 but also introduces rowspan from row# 3 onwards in data rows in first column
Example 4: First and last columns use rowspan starting with row# 3 which are data rows 
First row of headers:
R1C1, R1C2 col span= 2,  R1C3 colspan =3, R1C4
Second  row of headers:
R2C1, R2C2, R2C3, R2C4, R2C5, R2C6, R2C7=empty
Third row (data row):
R3C1 rowspan=2, R3C2, R3C3, R3C4, R3C5, R3C6,  R3C7 rowspan=3
Fourth row (data row):
R4C2, R4C3, R4C4, R4C5, R4C6
Fifth row (data row):
R5C1, R5C2, R5C3, R5C4, R5C5, R5C6
... and so forth where row span in first and last columns are  not synchronized.
And there are even more complex designs.

Screen readers are generally programmed to   read column / row headers when they change. So unless a user scours the table layout and understands the structure and the spanning which can be very very daunting in situations like example 3 and 4 above, it is difficult to understand the contents.  
Expecting a screen reader user to understan a table that uses only th    and scope can be an accessibility nightmare. Such tables need headers and id. I admit screen readers can do a better job like announcing span, repeating header for spanned cells and interpreting scope better. 
But this will not obviate the need for a summary or cause such a table to be characterized as simple fromm the user's  as well as the developer's perspective.
The summary should explain the layout and how rows and columns are spanned. For instance,  a summary for example 4 should explain that R1C2 has two sub columns R2C2 and R2C3, etc. The first column contains row headers that apply to multiple rows. The last columns has remarks that apply to more than one row. Armed with this info  one can navigate effectively as well as efficiently and not devote a whole lot of time  to figuring out the layout.

Sailesh Panchang
Senior Accessibility Engineer 
Deque Systems,11180  Sunrise Valley Drive, 
4th Floor, Reston VA 20191
Tel: 703-225-0380 Extension 105 
E-mail: sailesh.panchang@deque.com
Fax: 703-225-0387
* Look up <http://www.deque.com> *

Received on Tuesday, 1 June 2004 10:11:16 UTC