Language Implementation

This note outlines one possible approach to reforming HTML4 TABLEs to permit essential semantics to be conveyed with modest additional text. This is just an outline of the language provisions.

CLASS attribute

on TABLE

Reserve the following values

SUMMARY attribute

In prose description, distinguish the cases of a table with a caption and a table without. If there is no caption, the summary describes the general plan or function of the table. If there is a caption, the SUMMARY is an optional expansion on the caption appropriate to be verbalized following the CAPTION.

ABBR attribute

Extend to be applicable to TD as well as TH

AXES attribute

Remove in favor of TYPE.

TYPE attribute

Supercedes AXES. The heuristic expansion on the attribute name which conveys the attribute semantics is of-TYPE.

Value is ID-LIST still. No formal constraints on what entity types may be in this list, or where they may be in the document. In the prose description, however say that the contents of the listed entities describe a general kind of value of which the contents of the current cell give an example.

In the absence of an explicit TYPE attribute declaration on a TD or TH entity, one should assume the TH which is the closest TH spanning all columns that the current cell spans and appearing in the table above the current cell. If there is no such entity then this attribute is assumed empty.

CONDS attribute

Supercedes KEY and COORDS discussed earlier.

Add new attribute. Usable in TD entities only.

The heuristic expansion on the attribute name which conveys the semantics of this attribute is under-CONDitionS.

Value is ID-LIST. No formal constraint on the element types represented in this list. In the prose description, define this attribute to hold a list of IDs for entities which describe the specific conditions under which the contents of the current cell will be observed (are valid). In the absence of an explicit CONDS attribute, one should assume a value which is the IDs of all TD and TH elements in same row which have inherited THROUGHOUT=KEY.

THROUGHOUT attribute

Supercedes and extends AXIS.

Specializes and complements CLASS.

Heuristic spelling is properties-applicable-THROUGHOUT-me.

Usable at least on TABLE and sub-TABLE containers COLGROUP, TROW, etc. Consider extension to list and document hierarchy contexts such as DIV, too. Heredity from TH cells is defined below so that THROUGHOUT can be used on TH and TD as well. This may be considered to have a lower urgency that having this capability on the structural containers including TSPAN.

Takes same type of values as CLASS (user defined terms with some predefined)

THROUGHOUT values are implicitly inherited to all elements hierarchically within the declaring entity. Note that if TSPAN is accepted, that hierarchical inclusion and textual inclusion are not identical.

Heredity from TH: If THROUGHOUT appears in a TH the heredity is defined below. This supercedes the SCOPE attribute. If THROUGHOUT appears on a TD cell it applies to the current cell only.

Columm-wise: Column-wise heredity flows from the current TH to all TH and TD entities which are in later rows and entirely within the set of columns that the current TH spans. Column-wise heredity applies by default if the current TH has a [least] row index less than its [least]column index and no TD cells above it anywhere in the same column(s).

Row-wise: Row-wise heredity flows from the current TH to all TH and TD entities which are in later columns and entirely within the set of rows spanned by the current TH. Row-wise heredity applies by default if the current TH has a row index more than its column index and no TD cells before it anywhere in the same row(s).

Diagonal: Diagonal heredity flows from the current TH to all TH and TD entities which have a least row index greater than the greatest row index of the current TH and have a least column index greater than the greatest row index of the current TH. Diagonal heredity applies by default if the least row index of the current TH is equal to its least column index and the initial segment of the principal diagonal starting with the first row and column up to the least row and column of the current TH passes through no TD entities.

Usage: on TH, TD, and all table containers

Reserve the following values

In the prose, discuss the fact that on these elements it is appropriate to use as THROUGHOUT values

If THROUGHOUT or some equivalent inheritable markup capability is not implemented, use CLASS in this way and assume the heredity for the purposes of heuristic or "guessing" algorithms.

AXIS attribute

Remove from the language; use THROUGHOUT instead.

TSPAN container. Heuristic spelling Tabular-SPAN.

Only usable in a TABLE.

Start Tag requires ID.

End Tag is required and requires ID matching start tag. IDs are unique per element, not per textual occurrence. All other end-tags are implicit because we can get away with textual inclusion to show structure for linear and tree structures. In tables that is not sufficient and we need to be able to have interdigitated start/stop tags tied by shared ID values. Is this going to break every SGML-based parser in the world? If so, we can do without, but this is the concept one wants in a TABLE context.

Used to collect rectangular regions of convenience within a table.

The elements semantically contained in the TSPAN entity is not the simple textual range as with SPAN. A "graphical" selection of a rectangle in row and column space is implied. The contents are all cells with row and column values not less than the [least] row and column of the first TD or TH following the <TSPAN ...> start tag and not greater than those [the greatest] of the last TD or TH element prior to the </TSPAN ....> end tag.