Bob said:
[snip]
7) As the HTML is simpler, it is easier to read and write. <>
Easier to read the HTML ? Yes. However, the CSS is a hacked jumble
because you have to jump through hoops to make it work in the most
recent browsers. The CSS is not easier to write because of this.
In addition, matching up the CSS-P details with the HTML and
figuring out what a page will look like is no less difficult,
and perhaps more difficult, than figuring out what the HTML
and table based layout is doing.
The problem is that CSS used for positioning doesn't express the author's
design intentions. Instead it expresses one possible implementation of those
design intentions.
People sketching out what they think a web page should look like to be
effective typically don't have concepts like "float" in mind. They are more
likely to draw some boxes on a piece of paper, or sketch them in PowerPoint,
or whatever. And there is good reason for this, because research shows that
layout such as that matters to users.
http://psychology.wichita.edu/optimalweb/print.htm
A good architecture for heterogeneous distributed systems is to transmit the
intentions and let the various systems implement them in their way. It is a
matter of judgement where to draw the line, but it is about the point where
human beings stop adding value and technology can take over. (Eg, in a
different context, send source code or script, not order code). Whereas if you
transmit the implementation details, the user's system had better implement
every detail to specification, else it breaks. And the user's system doesn't
have the intentions available in order to try get as near as it can to what
was intended.
There are several ways of implementing (say) a 3-column design in CSS-P.
(Float the sidebars, use absolute positioning, float the centre column or use
normal flow, perhaps give the centre column wide margins ... ). Why commit
the user's system to any one implementation, when it might handle a different
implementation better? It would be better to work at a higher level of
abstraction.
And that is what a layout table is! A higher level of abstraction. It is in
the wrong place, in mark-up rather than in some metadata or schema somewhere,
but that is less important than the fact that it appears inherently to be a
superior expression of the layout intentions. (At least until CSS3, columns,
etc).
Tables are still not the optimum level of abstraction. Neither tables nor
CSS-P nor standard mark-up identify key concepts like "site navigation" that a
blind person could make use of. Instead, such things tend to be accessed by ad
hoc means. Perhaps put them first so that the reader will hit them early. Or
have D-links. Structured mark-up doesn't solve this problem, although an <h1>
should be a good way to get to the article (rather than to the site
navigation).