W3C home > Mailing lists > Public > www-html@w3.org > September 2007

Re: tables in html? (separating content bla bla)

From: Karl Dubost <karl@w3.org>
Date: Wed, 26 Sep 2007 21:45:11 +0900
Message-Id: <A487953B-0F37-47FD-A5F3-580C2E8B1F4B@w3.org>
Cc: "Benjamin Hawkes-Lewis" <bhawkeslewis@googlemail.com>, "Al Gilman" <Alfred.S.Gilman@ieee.org>, "www-html@w3.org" <www-html@w3.org>
To: Livio Mondini <livio.mondini@gmail.com>

Livio Mondini (26 sept. 2007 - 17:07) :
>> 2. What possible solutions there might be?
> Declaring on dtd two type of table, you solve at radix all problems.
> One element for layout table, and a element for data table. This clear
> problems at all levels.

For now, there is no dtd in html 5 *editor* draft and the editor  
seems to see no benefits for them. The HTML WG has not yet decided  
about this issue.

Another issue there are already a lot of tables of the two types  
(tabular, layout) using the table element. Most of this content will  
never be fixed.

In your approach do you suggest to create 2 elements? Let's call them  
"tabled" (tabular data) and "tablep" (presentation). Some issues that  
will arise with this solution.

Some people will use

* tablep for tabular data
* tabled for presentation

A conformance checker will be unable to spot the mistake.
Some people will still do nested tables.
It doesn't solve the issue of deployed tables used for layout.

Let's take a very simple example:

       <td> [logo]   </td>
       <td> site name</td>
       <td>left margin menu</td>
       <td> content </td>

You could do easily without loosing meaning, without creating any  
elements, without having people to change anything.

<body class="main">
       <span class="logo">[logo]</span>
       <span class="name">site name</span>
    <div class="main">
       <div class="menu">left margin menu</div>
       <div class="content"> content </div>

with for CSS file,

body        {display: table;}
h1          {display: table-row;}
div.main    {display: table-row;}
span.logo   {display: table-cell;}
span.name   {display: table-cell;}
div.menu    {display: table-cell;}
div.content {display: table-cell;}

The only issue for now is that the CSS table model is not very well  
implemented in all browsers, and not at all in IE 6. I have not  
verified in IE7. I have the feeling that if browsers in general had  
implemented in *1998* the CSS table model, we would have a lot less  
layout tables  to deal with.

Karl Dubost - http://www.w3.org/People/karl/
W3C Conformance Manager, QA Activity Lead
   QA Weblog - http://www.w3.org/QA/
      *** Be Strict To Be Cool ***
Received on Wednesday, 26 September 2007 13:26:25 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:06:17 UTC