[Zope3-dev] Re: [ZWeb] nzo: just for inspiration

Steve Alexander steve@cat-box.net
Sun, 23 Mar 2003 11:10:33 +0200


> I still take issue with the notion that CSS tables are more
> "standards-based" than HTML tables.  HTML tables existed as a standard
> before CSS tables.  The difference is that CSS tables provide a way to
> express intent instead of manipulating pixels.  It's just a different 
> standard.

I've been thinking about issues of Liskov substitutability and Zope 3 
recently. Last night, it occured to me that there is a similar pattern 
of substitutability with using tables to express layout.

Using an HTML table when you don't have something that is tabular in 
nature is a lot like using the subclassing/subtyping features of a 
language because you want to reuse implementation while not keeping the 
promises of the supertype.

In this case, the supertype makes a promise that the cell contents are 
part of a structure of rows and columns, and have some commonality with 
other cells in the same column and other cells in the same row.

Using tables in HTML to achieve the goal of manipulating pixels relies 
on the accident of how a graphical browser chooses to lay out tables.


The HTML standard says 
http://www.w3.org/TR/1998/REC-html40-19980424/struct/tables.html

----
Tables should not be used purely as a means to layout document content 
as this may present problems when rendering to non-visual media. 
Additionally, when used with graphics, these tables may force users to 
scroll horizontally to view a table designed on a system with a larger 
display. To minimize these problems, authors should use style sheets to 
control layout rather than tables.
----

I found that last part about scrolling interesting, considering where 
this discussion started :-)

--
Steve Alexander