XML and SMIL Requirements for DTBs -- table structure navigation

Background: Digital talking books (DTBs) may include tables. Those DTBs
that contain xml markup use the table model for DTB of the HTML 401 Strict DTD.
[There may be some DTBs without text markup, just narrations.]
Some of the table navigation concerns come from the information available for
that book. The more complete books include xml markup. When table markup
is included, that table markup comes directly from HTML 4.01 strict DTD.
The attributes there provide effective means for navigation of table th and 
td cells,
and identifying the set of th cells that provide abbr (if present, else 
full th cell
contents) for each td cell.

The following is excerpted from the Specifications for the Digital Talking 
Book,
ANSI/NISO Z38.86-2002, Appendix 1 - DTBook DTD (normative)

http://www.niso.org/standards/resources/Z39-86-2002.html

     The uses of attributes other than %attrs; %cellhalign; and %cellvalign;
     are shown below.  See [HTML401STRICT] for details and examples.

     "abbr" provides an abbreviated name for a <th> cell that can be used
     when referring to that <th> cell. Its default value is the cell 
content.

[Has UA picked up on this abbr concept?]

     "axis" is used to place cells into conceptual categories in order to
     provide improved access to information.

     "headers" provides the id value(s), used with <td> cells, to 
reference
     one or more cells with <th id="xxx"> that contain headings [or 
their abbr]
     that collectively describe or qualify the content of the cell, for example
     <td headers="id1 id2">.

     "scope" identifies one of
         (row | rowgroup | column | colgroup)
     to which the header information applies.

     "rowspan" indicates the total number of rows that the cell extends, by
     default 1. All spanned cells share these attributes.

     "colspan" indicates the total number of columns the cell extends,
     by default 1, in the writing direction of the table. All spanned
     cells share these attributes.
========
Another aspect of navigation is conveyed in the SMIL requirements for DTBs,
where there exist some escapable (skippable or ignorable by user preference)
structures, including tables:

7.4 SMIL Requirements for DTBs

7.4.1 "Escapable" Structures
(This section is normative.) [HB: Hard to reconcile normative with "should" 
below]

DTB players should provide the functionality to allow readers to
escape from the DTB rendition of specific structures (at a minimum tables, 
lists,
producer's notes, annotations, and notes) with a single action.  To support
this functionality, any such structure consisting of multiple time 
containers (i.e., <code>seq</code>s and <code>par</code>s) must be wrapped 
in a
<code>seq</code>. In addition, a class attribute must be applied to the
<code>seq</code> or <code>par</code> containing a table, list, producer's 
note,
annotation, or note using element names drawn from the DTBook DTD (i.e., 
"table", "list", "prodnote",  "annotation", and "note").

7.4.2 Automatic Invocation of Special Navigation Modes
(This section is normative.) [HB: Hard to reconcile normative with "may" below]

DTB player developers may choose to automatically invoke special
player navigation modes when the reader enters a table or list. (See
"document Navigation Features List [Navigation Features]f.")
To support this functionality, a class attribute must be included on the
<code>seq</code> or <code>par</code> containing a table or list using
element names drawn from the DTBook DTD (i.e., "table" and "list").
DTBs and players may also support this functionality for other structures
using the same mechanism.

7.4.3 <"Skippable" Structures
(This section is normative.) [HB: Hard to reconcile normative with "should" 
below]

Players should offer the user the option to "turn off" certain
structures in a DTB, that is, select structures such as notes or line 
numbers that the player
   will then automatically skip over during sequential playback. To support 
this
   capability, compliant DTBs must include <code>customTest</code> 
attributes on
   <code>seq</code>s or <code>par</code>s containing those structures. In 
addition,
   <code>customAttributes</code>, as well as a <code>customTest</code> element
   for each "skippable" structure, must be present in the <code>head</code> of
   each SMIL file and contain content. At a minimum, 
<code>customTest</code> attributes
   must be applied to time containers for <code>linenum</code>, 
<code>note</code>,
   <code>noteref</code>, <code>annotation</code>, <code>pagenum</code>, 
optional
   <code>prodnote</code>, and <code>sidebar</code>. <code>Note</code>s,
<code>annotation</code>s, optional <code>prodnote</code>s, and 
<code>sidebar</code>s
containing multiple paragraphs must be represented as a series of 
<code>pars</code>
wrapped in a <code>seq</code>, so that a <code>customTest</code> can be applied
to the <code>seq</code>, permitting the user to skip the entire
   sequence.  Attribute values (for customTest
   attributes on <code>seq</code>s or <code>par</code>s and for the id 
attribute
   on <code>customTest</code> elements) shall be the names of the "skippable"
elements,
   drawn from the DTBook DTD (e.g., "linenum", "note", etc.) except as noted in
   the following paragraph.

Different <code>customTest</code> attributes may be applied to
a single DTBook
   element, depending on the element's attributes. For example,
<code>&lt;prodnote
   render="optional"&gt;</code> might be assigned the
<code>customTest "prodnote_opt"</code>,
   while <code>&lt;prodnote render="required"&gt; </code>would not need to
   be assigned a <code>customTest</code> as the user should not have the option
   of turning it off.

In DTB applications, the element <code>customTest</code> will only
be used  when the producer wishes to allow the reader to turn a class of 
structures
on   or off, so the <code>override</code> attribute on the
<code>customTest</code>
element must  always be set to "visible". See description of
<code>&lt;customTest&gt;</code>
   above. The SMIL specification chose to make "hidden" the default value
   so it is critical that the <code>override="visible"</code> attribute
   always be present when the <code>customTest</code> element is used.

When a user navigates to a skippable element that has been
turned off, the player must render the content of that element.

Received on Friday, 21 June 2002 02:38:07 UTC