Re: FAQ about reasons behind CSS

On 7/1/05, Laurens Holst <lholst@students.cs.uu.nl> wrote:
> Orion Adrian wrote:
> 
> >colspan, rowspan.
> >
> >They're presentational.
> >
> >Say, for instance, you have a row that's N/A. Really it's N/A in all
> >those intersections between one axis and another. A non-presentational
> >version of HTML tables would be:
> ><table>
> >...
> ><record>
> >  <th>Detroit</td>
> >  <c>N/A</c>
> >  <c>N/A</c>
> >  <c>N/A</c>
> >  <c>N/A</c>
> >  <c>N/A</c>
> ></record>
> >...
> ></table>
> >
> >table {
> >  col-merge-on-value: "N/A"
> >}
> >
> >A table is a way of presenting data. There are no row or column spans
> >in the matrix that that table represents. There are presentation rules
> >however that make it easier to parse. Like merging like values with
> >something is N/A.
> >
> >
> That is absolute and utter nonsense! Colspan and rowspan are meant to
> reduce repetition, to say that a certain table cell applies to more than
> one row or columns. They are in no way presentational.

Quoting the current 2.0 spec:

"This attribute specifies the number of columns spanned by the current
cell. The default value of this attribute is one ("1"). The value zero
("0") means that the cell spans all columns from the current column to
the last column of the column group ( colgroup) in which the cell is
defined."

This, by the way, mentions nothing of saving repetition. It merely
states that it cell spans mutiple columns. It places no semantic
meaning for that spanning and in the field it gets abused quite a bit.

The examples shown for how they work are purely presenational with the
one exception that show N/A which uses <em> instead of classes.
 
> As an example, look at: http://map.tni.nl/resources/msxsystemvars.php#USRTAB
> Or the third table at:
> http://map.tni.nl/resources/msx_io_ports.php#switch_io
> 
> They are for that reason also not marked as deprecated in the HTML
> specification.

And I'm disagreeing with them. That's the point of this list right?
The examples you gave use rowspan for presentation.

This all came about a long time ago. I did something which I
considered very neat at the time and years later it proved to be an
invaluable lesson.

I had a large Excel spreadsheet (this was in 97 so not a whole lot of
other alternatives) and in it one column had a lot of repeating data
in blocks. Now the problem was that it wasn't very reabible as so the
user of this spreadsheet that I created went and deleted the
extraneous values in those fields so that it was easier to parse.

Now the problem occured when the user sorted it by a different column
and then later tried to sort it back using the column with missing
data. I think everyone can guess what happened: all the rows with
empty values for that column were sorted together mangling the data.

A rowspan here would have had one or more effects. She couldn't sort
the data on the other column.

Tables represent matrixes of data. Rowspan and colspan are used to
avoid repetition, but ignore the fact that that data is designed to be
reorganized and queried.

Orion Adrian

Received on Friday, 1 July 2005 15:39:18 UTC