In answer to Sean's question, the guidelines tend to emphasise long term
solutions, although the immediate needs are intended to be met by the
"interim" recommendations. Owing to the time that is required to develop
and revise successive versions of the page authoring guidelines, I think
the emphasis on solutions that will become available during, for instance,
the next 12-18 months would be perfectly appropriate.
The next version of the guidelines would be generalised so as to take
account of XML and other emerging standards. Since one of the main objects
of the guidelines is to promote best practice from the standpoint of
universal design, the misuse of HTML elements should be strongly
discouraged. The main problem with regard to tables appears to be that
braille and audio formatting technologies will be unable to distinguish
between what is, and what is not, a genuine table, and this is likely to
give rise to difficulties, such as an attempt to locate row and column
headers. To minimise inconvenience for the user and for the software
developer, the best solution is to ensure that table markup is introduced
into a document only for its intended purpose, namely, as a representation
of tabular data. Perhaps the best solution would be as follows:
The prohibition expressed in the guidelines against using tables to
produce columnar layout should be interim and recommended, with a note
that this will be strictly required in the future, as soon as CSS
positioning is supported by user agent software. On the other hand, those
who are using screen reading technology with a graphical browser will
still find such pages inaccessible, in the absence of a server-side
linearisation service. Perhaps the recommendation could be: either do not
use tables as a mechanism for producing columnar layout, or provide a
server-side linearisation script, with a link that enables the user to
activate it and receive a decolumnised version of the page. This guideline
would be classified as "required".
The required future strategy would be to use CSS positioning ("new" and
"required").