Re: TBODY

Richard said:

> If the <tfoot> contains global information then it is in the wrong 
> place. global information should be presented before the data (perhaps 
> in the summary :)

According to the HTML spec:

"The table head and table foot should contain information about the 
table's columns. The table body should contain rows of table data."

IMO, the purpose of the <tfoot> element is to be able to include 
information such as footnotes (the typical asterisks describing 
exceptions, clarifications, references, etc.), which may affect more 
than one data cell, but not all of them. This information is "global" in 
the sense that it affects to any data cell that contains the asterisk, 
but it is not "global" to all the cells in the data table. Thus, this 
information may/should be available before the user encounters the data 
cell that needs clarification. This information must be also printed in 
every page in a multi-page printed table.

> Let's admit it, <tbody> etc. should only be used when you are offering 
> your visitor a printable option.

Why? If <thead>, <tfoot> and <tbody> were used properly, and if user 
agents start to provide support for them, they could be really 
interesting for many users. For example, you can use more than one 
<tbody> element in the same table. This means that you can use different 
styling for different cells without using classes for every <tr>, and 
screen reader users could have more options to navigate to certain parts 
of the table without going through all the cells.

For example (not perfect, but I think it will explain the idea):

<table>
<caption>2nd. International Congress. Agenda</caption>
<thead>
   <tr>
     <th>Date</th>
     <th>Time</th>
     <th>Talk</th>
     <th>Speaker</th>
   </tr>
</thead>
<tfoot id="tfoot">
<tr>
   <td colspan="4"><!-- I don't like this as "td", but also not as "th", 
maybe <tfoot> could include elements different from "tr" -->
   <ul>
     <li>(1) Limited space, please register in advance</li>
     <li>(2) Pending</li>
   </ul>
   </td>
</tr>
</tfoot>
<tbody id="day1" aria-label="Day 1: 25th January">
   <tr>
     <th rowspan="5" scope="row">25th January</th>
     <td>9:00</td>
     <td>Mr. John Smith <a href="#tfoot">(1)</a></td>
     <td>HTML5</td>
   </tr>
   <tr>
     ...
   </tr>
</tbody>
<tbody id="day2" aria-label="Day 2: 26th January">
   ...
</tbody>
</table>

In this example, if user agents provide access to the different parts of 
the table, a screen reader user could go directly to day 2, day 3, etc., 
without having to read day 1. The user could also go directly to the 
tfoot information to read the clarifications and, more importantly, to 
go back to the point she was reading before junping to the <tfoot>.

Of course, this is not something that can be done now, because user 
agents don't provide this kind of navigation, but it is something that 
can be done to improve the user experience.

Regards,
Ramón.

Received on Friday, 25 January 2013 08:24:36 UTC