- From: Harvey Bingham <hbingham@ACM.org>
- Date: Fri, 02 May 1997 19:13:21 -0400
- To: dev-access@world.std.com
- Cc: wai.tables@sgmlopen.org
I am collecting ideas for making tables more nearly accessible.
This is an early task of the Web Accessibility Initiative (WAI)
of the World Wide Web Consortium. I thank you for sharing your
suggestions, experiences, and frustrations. The time is right
for us to make positive contributions.
I have worked to specify SGML tables since 1989, for various SGML
activities,including the CALS table model, and more recently as
chair or co-chair of the SGML Open technical tables subcommittee.
We made no accommodation to accessibility in those efforts. I
hope we can rectify that omission.
The International Committee for Accessible Document Design (ICADD)
approach for use with SGML-tagged tables is to allow each table
axis to be named, and each cell would contain the names of the set
of axes that apply to it. This works well for simple tables with
single initial row heads and initial column stubs. It can get messy if
spanning heads or stubs apply. By default the cell content of
the initial row and column could provide the axis information.
The HTML table model -- is a list of rows (TR). It distinguishes
table cell kinds in a row as either head (TH) or data (TD). For
simplicity TH and TD may be arbitrarily intermixed in any row or
column of any row. A clean table has TD for column heads in the
initial row and row stubs in the initial column. All rows have
every cell filled.
ICADD support -- HTML 2.0 supported it. HTML 3.2 abandoned it,
as the principal browser vendors did not support it. The WAI
will identify means to improve accessibility to web documents
for future versions of HTML.
Table cell content -- may be simple, fitting into a single "line".
It may wrap onto several lines. A user agent should be able to
detect the wrapping and deliver the entire cell content.
Table cell content -- may be complex, with substructure. Desirable
for a user agent is to treat a cell as a "mini-document" so its
structure would be handled as if it were a document to itself.
Axis/Axes identification -- one possible way to identify the axes
appropriate to any cell would be to have two distinct axis lists
to represent the two coordinates of a cell. At any time the
axis lists could be used individually as a selector of row or
column, or in combination to select a cell. Sequential reading
of cells along a row would not necessarily access the axis lists, though the
reverse linking from cell to its axes should be possible.
Spanning TH cells -- Table complexity results from several rows with
some TH cells that horizontally span several columns. Presumably
the next row would contain more TH that add additional subsidiary
axis information. Analogously, several columns of initial TH cells
some with vertical spanning to apply that axis information to the
subsidiary row stubs.
Spanning TD cells -- normally have content in only the initial cell
of the spanned rectangular region of cells. What axes information applies
from non-initial cell spaces? If some TH has the same
span, and there are distinct subsidiary TH, omit axis info from
the latter? If no TH has the same span, make composite of all
axis info for any spanned? Not clear at all.
TH anywhere -- the HTML table model permits TH cells anywhere
in a row, not just at the beginning (or end). There is no
obvious way to identify which axis or axes that cell might
override for further use in subsequent cells of that row
and/or column.
Table linearization -- for serial delivery most assume that the
table is formed as an ordered list of rows, with each having
cells in columns. With that ordering, it is awkward to read
skipping down a column.
Non-linear positioning -- a user agent might take advantage of
searching and non-linear positioning. A TD found this way
would like the option to "show the axes". The alternative
"hide the axes information" unless requested is also useful.
Table as list -- One example from Recording for the Blind and
Dyslexic is their text version of "Getting Results with Microsoft
Office for Windows 95". It only had to deal with simple 2 or at
most 3-column tables, with an initial row of column headers TH,
and no row stub contributing to subsequent cells of the row.
The linear text of the translation included for each cell of
each row the TH information from the initial row as prefix to
the cell TD content. In that redundant form, much more than half
the tables content is cell identification. Cell content that
wrapped would just appear in linear order, so there was no need
to recognize that condition. There were no more complex structures used in
cells.
Sequential presentation -- the cost of any non-linear positioning
is high for an audio tape. Thus the redundant axis identifications
might be desirable. In that case, there is some advantage to being
able to enable or disable the axes information presented under
user control. There are no marks in the text string to facilitate
this recognition and skipping.
Coordinate enumeration along axis -- An effective technique
borrowed from spreadsheets is to use ordered coordinate values
to identify cells. The initial coordinate values of an axis are
useful to retrieve the implicit axis information from those column
heads or row stubs.
Partial table extraction -- with adequate table-reading tools, sub-tables
could be extracted, suppressing uninteresting data:
1) compressed to show only selected columns (not necessarily adjacent)
2) conditional selection based on cell values
3) transposed ordering among axes (possibly more than two)
4) projections onto 2 dimensions from higher-dimensional data
(possibly by selecting N-2 two among N axes as fixed)
Table cell content -- may have substructure. The user agent should
handle the substructure similarly to how that same structure
would be handled if it weren't in a cell.
Cell boundaries -- may be deliberately visible or invisible to
the sighted. When invisible, their presence is presumably evident
by the regularity of the display grid for the cells. Alternative
means to bound the cells are required for different representations.
"Layout tables" -- The tables discussed above are "data tables",
where axes provide identification for the cell content. HTML
allows a cell to contain another table. HTML tables are currently
being used as a "layout" hack in place of other styling tools.
The axes of these layout tables is "ancestry" that may or may
not need to contribute to the global axes information for the
cell in which there is a "data" table. The issue is similar if
frames are used for different tiled regions: should the frame
identification be part of the ancestry.
Multi-axis complications -- Not all cells need have the same
number of axes. For example, some TH columns may have spanning
TH, others need not. Cell axes needn't describe Euclidean
coordinate space, even though all cells have the same number
of axes.
Limit to complexity -- at what point does table complexity in
web documents move into a different form for their expression,
such as spreadsheet or data base?
Regards/Harvey Bingham
mailto:hbingham@acm.org
for the Yuri Rubinsky Insight Foundation
Received on Saturday, 3 May 1997 13:52:02 UTC