W3C home > Mailing lists > Public > www-archive@w3.org > July 2007

example of TABLE using scope, axis, and 'speak-header' (adapted from CSS2, Section 17.7)

From: Gregory J. Rosmaita <oedipus@hicom.net>
Date: Thu, 26 Jul 2007 12:11:16 -0400
To: www-archive@w3.org
Message-Id: <20070726160830.M85386@hicom.net>
the attached is an attempt to both provide the HTML working group 
with an example of a table using the scope and axis attributes 
defined for TD and TH, as well as an illustration of the 


17.7 Audio rendering of tables

When a table is spoken by a speech generator, the relation between 
the data cells and the header cells must be expressed in a different 
way than by horizontal and vertical alignment. Some speech browsers 
may allow a user to move around in the 2-dimensional space, thus 
giving them the opportunity to map out the spatially represented 
relations. When that is not possible, the style sheet must specify 
at which points the headers are spoken.

17.7.1 Speaking headers: the 'speak-header' property

      Value:  once | always | inherit   
    Initial:  once   
 Applies to:  elements that have table header information   
  Inherited:  yes   
Percentages:  N/A   
      Media:  aural  

This property specifies whether table headers are spoken before 
every cell, or only before a cell when that cell is associated with 
a different header than the previous cell. Values have the following 

    The header is spoken one time, before a series of cells. 
    The header is spoken before every pertinent cell. 

Each document language may have different mechanisms that allow authors 
to specify headers. For example, in HTML 4.0 ([HTML40]), it is possible 
to specify header information with three different attributes ("headers", 
"scope", and "axis"), and the specification gives an algorithm for 
determining header information when these attributes have not been 

Image of a table created in MS Word
[SRC = http://www.w3.org/data/html/reference/CSS2/images/table1.gif]
[D link = http://www.w3.org/TR/CSS2/IMAGES/LONGDESC/table1-desc.html]

Image of a table with header cells ("San Jose" and "Seattle") that are 
not in the same column or row as the data they apply to. 

This HTML example presents the money spent on meals, hotels and 
transport in two locations (San Jose and Seattle) for successive days. 
Conceptually, you can think of the table in terms of a n-dimensional 
space. The headers of this space are: location, day, category and 
subtotal. Some cells define marks along an axis while others give 
money spent at points within this space. The markup for this table is:

<CAPTION>Travel Expense Report</CAPTION>
  <TH id="san-jose" axis="san-jose">San Jose</TH>
  <TH headers="san-jose">25-Aug-97</TH>
  <TH headers="san-jose">26-Aug-97</TH>
  <TH headers="san-jose">subtotal</TH>
  <TH id="seattle" axis="seattle">Seattle</TH>
  <TH headers="seattle">27-Aug-97</TH>
  <TH headers="seattle">28-Aug-97</TH>
  <TH headers="seattle">subtotal</TH>

By providing the data model in this way, authors make it possible for 
speech enabled-browsers to explore the table in rich ways, e.g., each 
cell could be spoken as a list, repeating the applicable headers before 
each data cell:

  San Jose, 25-Aug-97, Meals:  37.74
  San Jose, 25-Aug-97, Hotels:  112.00
  San Jose, 25-Aug-97, Transport:  45.00

The browser could also speak the headers only when they change:

San Jose, 25-Aug-97, Meals: 37.74
    Hotels: 112.00
    Transport: 45.00
  26-Aug-97, Meals: 27.28
    Hotels: 112.00


I must think myself independent, as long as I live; the feeling is 
essential to my existence.                           -- John Adams
    Gregory J. Rosmaita: oedipus@hicom.net or gregory@ubats.org
         Camera Obscura: http://www.hicom.net/~oedipus/
Oedipus' Online Complex: http://my.opera.com/oedipus/
UBATS - United Blind Advocates for Talking Signs: http://ubats.org

Received on Thursday, 26 July 2007 16:11:21 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:43:11 UTC