[html4all] On HTML4 tables in general

Robert J Burns rob at robburns.com
Sun Aug 24 03:31:54 PDT 2008


On the issue of tables in general and Ian's desire to deprecate HTML4  
table properties included:

  • headers
  * summary
  • abbr
  • axis

Axis has some uses, but Ian contends it is seldom if ever used (at  
least correctly). I think axis too could be useful, but part of its  
failure is that it takes comma separated strings rather than space  
separated name. Taking space separated names would allow the axis  
attribute to participate in CSS attribute selectors. Philip Taylor  
(not retired) has suggested if axis is useful making a new attribute  
would be better than changing axis to space separate names. I tend to  
agree with that.

On the other hand scope I think has some ambiguity problems that ian  
is uninterested in addressing. I've started a wiki page discussing  
those problems[1]. In a nutshell I think the use of colgroup and  
rowgroup is ill-advised since it can potentially create a header  
association that completely conflicts with the visual association of  
headers. Also I think simply having the keywords 'vertical',  
'horizontal', and 'both' (default) in HTML5 would make for clearer  
authoring and better reflect the automatic header association algorithm.

Finally, HTML5 goes further than HTML4 in deprecating some  
presentational table attributes. While I'm generally in favor of  
moving the presentational stuff to CSS, Im not sure CSS has adequately  
addressed the use cases for these table attributes. Moreover, just as  
HTML5 retains width and height attributes for embedded media (though  
using CSS pixel units), the table presentational attributes are  
likewise for tables that are inherently visual (as their used in  
documents anyway).

Maintaining attributes within HTML for column width, vertical  
alignment, horizontal alignment and makes sense to me. CSS (much from  
Ian's insistence) has deprecated horizontal alignment on a string (as  
of CSS 2.1 CR). The vertical alignment in HTML works differently than  
vertical alignment in CSS. And the HTML width attribute also provides  
valuable control of column widths not possible with CSS.

Finally, I have also written a wiki page on the need to enhance tables  
and treat them as 2D structures rather than merely as one-dimensional  
hierarchies as with other HTML structures[2]. Without treating tables  
as 2d structures authors are forced to needless repeat attribute  
values and tables are more cumbersome to edit with DOM APIs.

Take care,
Rob

[1]: <http://esw.w3.org/topic/HTML/TableHeaderCellScope>
[2]: <http://esw.w3.org/topic/HTML/TablesAs2DStructures>


More information about the List_HTML4all.org mailing list