Comments on HTML 4.0

MegaZone (megazone@livingston.com)
Sat, 20 Sep 1997 23:25:26 -0700 (PDT)


Message-Id: <199709210625.XAA12113@server.livingston.com>
To: www-html@w3.org
Date: Sat, 20 Sep 1997 23:25:26 -0700 (PDT)
From: MegaZone <megazone@livingston.com>
Subject: Comments on HTML 4.0

I'd like to request a change to TABLES for backwards compatibility.

The current spec forces authors to put TFOOT ahead of TBODY.  The problem
with this is older user agents.

<TABLE>
<THEAD>
<TR><TH>This is the top of the table.
<TFOOT>
<TR><TH>This is the bottom of the table.
<TBODY>
<TR><TD>This is the contents.
</TABLE>

In a new UA that would be:

This is the top of the table.
This is the contents.
This is the bottom of the table.

But in an old UA, which will ignore the THEAD/TFOOT/TBODY, it is:

This is the top of the table.
This is the bottom of the table.
This is the contents.

Which is wrong.

On page 103, section 12.1.3, it says:

TFOOT must appear before TBODY within a TABLE definition so that user
agents can render the foot before receiving all of the (potentially
numerous) rows of data. The following summarizes which tags are
required and which may be omitted:

I don't get that.  Doesn't the UA need to load the table first to count
how many TR tags there are to know how many rows there are?  How will it
be able to render the footer before it knows how much body content there
is?  Can't we leave this up to the author to decide - which is more 
important, rendering speed of backwards compatibility.  For me it is 
the latter, yet I'd love to use this for any UAs that do intelligent
printing, etc.  What is the problem with allowing this?

<TABLE>
<THEAD>
<TR><TH>This is the top of the table.
<TBODY>
<TR><TD>This is the contents.
<TFOOT>
<TR><TH>This is the bottom of the table.
</TABLE>

That should render correctly in old and new UAs.

---second idea---

Another issue is in 12.2.1, page 116.  It seems we are forced to accept
right justified text (assuming ltr flow) if using align=char.

Can't we treat the presence of 'char="x"' as enough to assume align=char?
Make 'char' required for character based alignment, and it can act as a
boolean of sorts.  If it is there, align on the character carried by its
value.

The example is:

<TABLE border="border">
<COLGROUP>
<COL><COL align="char" char=".">
<THEAD>
<TR><TH>Vegetable <TH>Cost per kilo
<TBODY>
<TR><TD>Lettuce        <TD>$1
<TR><TD>Silver carrots <TD>$10.50
<TR><TD>Golden turnips <TD>$100.30
</TABLE>

------------------------------
|   Vegetable  |Cost per kilo|
|--------------|-------------|
|Lettuce       |        $1   |
|--------------|-------------|
|Silver carrots|       $10.50|
|--------------|-------------|
|Golden turnips|      $100.30|
------------------------------

By removing the need for align="char" you could do this:

<TABLE border="border">
<COLGROUP>
<COL><COL align="left" char=".">
<THEAD>
<TR><TH>Vegetable <TH>Cost per kilo
<TBODY>
<TR><TD>Lettuce        <TD>$1
<TR><TD>Silver carrots <TD>$10.50
<TR><TD>Golden turnips <TD>$100.30
</TABLE>

------------------------------
|   Vegetable  |Cost per kilo|
|--------------|-------------|
|Lettuce       |  $1         |
|--------------|-------------|
|Silver carrots| $10.50      |
|--------------|-------------|
|Golden turnips|$100.30      |
------------------------------

Where the UA simply moves the text to the left until the item that
protrudes the farthest can go left no more, and then aligns the rest to it.
It would seem that it has to do the same thing relative to right alignment.

Or

<TABLE border="border">
<COLGROUP>
<COL><COL align="center" char=".">
<THEAD>
<TR><TH>Vegetable <TH>Cost per kilo
<TBODY>
<TR><TD>Lettuce        <TD>$1
<TR><TD>Silver carrots <TD>$10.50
<TR><TD>Golden turnips <TD>$100.30
</TABLE>

------------------------------
|   Vegetable  |Cost per kilo|
|--------------|-------------|
|Lettuce       |     $1      |
|--------------|-------------|
|Silver carrots|    $10.50   |
|--------------|-------------|
|Golden turnips|   $100.30   |
------------------------------

This I'd see computed based on an artifical value - an item made
up of the longest span to the left of the align character plus
the longest span to the right of the align character.  Like so:


------------------------------
|   Vegetable  |Cost per kilo|
|--------------|-------------|
|Lettuce       |    $1       |
|--------------|-------------|
|Silver carrots|   $10.5099  |
|--------------|-------------|
|Golden turnips|  $100.30    |
------------------------------

Centering the alignment character would not be sufficient.  Imagine a
number of values like .23456, 1.23456, and .456567 - they'd all be weighted
to the right of the column.

Discussion?

-MZ
--
Livingston Enterprises - Chair, Department of Interstitial Affairs
Phone: 800-458-9966 510-737-2100 FAX: 510-737-2110 megazone@livingston.com
For support requests: support@livingston.com  <http://www.livingston.com/> 
Snail mail: 4464 Willow Road, Pleasanton, CA 94588