Re: Very initial TABLE reactions

On Fri, 26 Sep 1997, Al Gilman wrote:

> This is just a rapid response quick look.  But I want to expose
> you these ideas before we lose you if I can. 

I now its the weekend, but I couldn't resist having a peek
at email :-)

> There are several categories of functionality where I think we
> might want to explore changing the table capabilities from
> what we have in this draft.

I tried very hard to find richer ways to model the semantics
of data, normally presented in tables. For instance looking
at entity-relationship-attribute (ERA) modeling and related
techniques. In the end I found that this problem is best broken
into two parts: the use of ERA modeling to describe a database,
and specialized scripts that define how a table is generated from
the database or how it can be written back to a database. These
scripts specify relational database queries (SQL) and iterators
that use the results of these queries to generate the table --
row by row, cell by cell. The same approach is used to scan a
table to export its data to a database.

This is all very well, but is far too costly for most people. The
approach presented in the draft was chosen as a much simpler option,
but nonetheless, one which I suggest can be used to effectively
support aural browsing of tables, including table summary, cell
abbreviations, parent-child relationships between cells, and
browsing at different levels of detail. 

I am concerned that we remain pragmatic about the kinds of
annotations that most people will be reasonably prepared to add
to the visual presentation of a table. This is why I propose an
algorithm for finding the default value of axes. For many simple
tables this works just fine.

If we ask people to fill in axes on every data cell, I expect this
will cause many authors to see this as much too much of an
imposition, causing them as a result to avoid doing anything to
the table to help non-visual users. I see us as trying to promote
a small set of features that are easy for authors to cater for
whilst making it practical to do an effective job for non-visual
browsers.

And so to the details ...
 
> Summary: is restricted to a text string.  would better allow a
> hypertext block.  Guide to the table with jump possibilities.  We
> can put the jump targets in the table by embedding A tags in the
> cells.  But we can't associate a normally-hidden guide with links
> with the table as is.  Very analogous to what I hear Jason saying
> about sensitive maps.  I have to admit I have been wondering about
> hiding more general resource definitions [normally hidden hypertext
> blocks] in the HEAD.

When browsers see text they assume the document BODY has started.
As a result you can't hide text safely in the HEAD except as an
attribute value, for instance in META. If a rich text summary is
needed I suggest we add the longdesc attribute as per IMG. In the
draft, I felt this was unnecessary, since the proposed axis, axes
and abbr attributes can be used to make the table accessible itself
unlike an image.

> Cell readout:  what one would really like is a "cell readout pattern"
> which is a roughly-sentence-scaled text macro which has variable
> substitution capabilities.  Variables would refer to the cell content
> and to HTML elements the cell is associated with by semantic 
> relationships.  Trying to do this algorithmically is bound to come
> out less natural than letting the author state what a typical cell
> tells you.  

>   The $outnam of the $innam $inval is $outval.
> 
>   Here the typical tabular presentation is
> 
>   $outnam is a TH at the head of the column
>   $innam is a TH at the head of column 1
>   $inval is a TH or TD in column 1 and same-row-as-self
>   $outval is the content of self, the current TD.
> 
> The link from self to $outnam is a qualifier link, to $inval
> is a selector or key link.

A good point. Isn't this something that comes under style rather
than content though? I propose we focus on what kind of template
syntax would work, and then decide whether it best fits HTML or CSS.

> Axis association: I haven't fully understood the proposal.

The axes attribute allows you to list header cells that apertain
to a given header or data cell. The axis attribute is used to group
related headers. The abbr attribute provides a abbreviation when
a header is being repeatedly read out, e.g. before the contents of
each data cell.

> Some other names for this distinction
> from other disciplines:
> 
> 	selector		qualifier
> 	abscissa		ordinate
> 	key			field_def
> 	covariant_axis		contravariant_axis
> 	whole(/part)		gen(/spec)

I find these terms rather confusing in general, and prefer the
idea of using the axis/axes/abbr attributes together with
style templates for aural rendering.

> For efficiency, it is possible that some of the patterns of
> association would want to be able to be declared in a COL or TR
> and inherited into TH and TD.

I think that the axis/axes proposal is simpler and more expressive.

> SCHEME: In general one would like to be able to link a table to a
> more-semantic layer and not just a less-semantic style of
> presentation.  c.f. the SCHEME for META.  An ability to link a
> specific table to a data dictionary or information model would be
> a positive capability, and if we have to hide all the rest of
> this there, so be it.

See above. My studies suggest a combination of ERA models and
scripts for table generation and for extracting table data from
Web pages to insert into databases. I could go into more detail
at a later date if anyone is interested.

> Explicit order-of-reading markup:  My kneejerk on this is that it
> is desirable, and wondering if we should address this by allowing
> LINK and META in the BODY where they would by default qualify the
> immediately enclosing container.  Then we could put a
> 
> <LINK rel=read-after href=some-TD-ID> in a TD and it would be
> known.

My feeling is a simple solution would be best. The most obvious
is an attribute that takes a number indicating reading order by
ascending value, e.g.

   order=1  order=2  ... order=19

The "order" attribute can be placed on cells, rows or columns.
This is simple for wysiwyg table editors to support. The aural
browser finds the highest number for each cell by looking for
order attributes on the row, column or cell. 

What do you think?

Regards,

-- Dave Raggett <dsr@w3.org> http://www.w3.org/People/Raggett
phone: +44 122 578 2521 (office) +44 385 320 444 (gsm mobile)
World Wide Web Consortium (on assignment from HP Labs)

Received on Saturday, 27 September 1997 05:57:53 UTC