Use of headers and summary attributes (was : <font> (was Support Existing Content))

Good morning everyone,

Sorry for the long post.


On 2-May-07, at 04:15 AM, Henri Sivonen wrote:

> It would help if the accessibility experts explained how existing  
> AT make use of headers and summary (including documenting the  
> processing models for headers used by real AT). Once it has been  
> established how existing AT supports these features, it would be  
> helpful to establish how authors use them.

Headers and summaries are crucial for assistive technologies such as  
screen readers to interpret how a table is organized. Blind people  
for example (yes, THEM again) will rely massively on that information  
to announce to a user how an upcoming set of information is  
structured. Imagine the following table:

<table summary="">
<caption>Travelling expenses report</caption>
<tr>
   <th id="l1c1">Destination</th>
   <th id="l1c2">Traveling dates</th>
   <th id="l1c3">Meal</th>
   <th id="l1c4">Hotel</th>
   <th id="l1c5">Transport</th>
   <th id="l1c6">Total</th>
</tr>
<tr>
   <th id="l2c1" headers="l1c1" rowspan="3">Atlanta</th>
   <th id="l2c2" headers="l1c2 l2c1">August 25th</th>
   <td headers="l1c3 l2c1 l2c2">37</td>
   <td headers="l1c4 l2c1 l2c2">112</td>
   <td headers="l1c5 l2c1 l2c2">45</td>
   <td headers="l1c6 l2c1 l2c2">&nbsp;</td>
</tr>
<tr>
   <th id="l3c2" headers="l1c2 l2c1">August 26th</th>
   <td headers="l1c3 l2c1 l3c2">27</td>
   <td headers="l1c4 l2c1 l3c2">112</td>
   <td headers="l1c5 l2c1 l3c2">45</td>
   <td headers="l1c6 l2c1 l3c2">&nbsp;</td>
</tr>
<tr>
   <th id="l4c2" headers="l1c2 l2c1">Sub-total</th>
   <td headers="l1c3 l2c1 l4c2">64</td>
   <td headers="l1c4 l2c1 l4c2">224</td>
   <td headers="l1c5 l2c1 l4c2">90</td>
   <td headers="l1c6 l2c1 l4c2">378</td>
</tr>
<tr>
   <th id="l5c1" headers="l1c1" rowspan="3">Boston</th>
   <th id="l5c2" headers="l1c2 l5c1">August 27th</th>
   <td headers="l1c3 l5c1 l5c2">96</td>
   <td headers="l1c4 l5c1 l5c2">109</td>
   <td headers="l1c5 l5c1 l5c2">36</td>
   <td headers="l1c6 l5c1 l5c2">&nbsp;</td>
</tr>
<tr>
   <th id="l6c2" headers="l1c2 l5c1">August 28th</th>
   <td headers="l1c3 l5c1 l6c2">35</td>
   <td headers="l1c4 l5c1 l6c2">109</td>
   <td headers="l1c5 l5c1 l6c2">36</td>
   <td headers="l1c6 l5c1 l6c2">&nbsp;</td>
</tr>
<tr>
   <th id="l7c2" headers="l1c2 l5c1">Sub-total</th>
   <td headers="l1c3 l5c1 l7c2">131</td>
   <td headers="l1c4 l5c1 l7c2">218</td>
   <td headers="l1c5 l5c1 l7c2">72</td>
   <td headers="l1c6 l5c1 l7c2">421</td>
</tr>
<tr>
   <th id="l8c1">Compilation</th>
   <th id="l8c2">Grand total</th>
   <td headers="l1c3 l8c1 l8c2">195</td>
   <td headers="l1c4 l8c1 l8c2">442</td>
   <td headers="l1c5 l8c1 l8c2">162</td>
   <td headers="l1c6 l8c1 l8c2">799</td>
</tr>
</table>

I could either have a summary saying:

a) summary="This table presents travelling expenses."

b) summary="This table presents traveling expenses. Per lines, you  
will find destinations and traveling dates, as well as grand total.  
Per columns, you will discover expense categories as well as a total.  
Note that the first column contains merged table cells."

Now, option B is definitely relevant, as opposed to option A which is  
only translated as more noise in an already noisy screen reading  
environment. It does not really help understand the otherwise complex  
grouping of information that is about to hit the user.

The same thing applies to headers ad id attributes. Let's take the  
same table (it might be a good idea to open the code in a browser to  
get a bteer understanding of what is layed out here). Or better yet,  
don't. That way you'll be closer to understanding how a blind user  
receives that information as well. ;)

Either way. How on earth is a blind user supposed to know that the  
"218" value is the sub-total of all hotel expenses on this trip for 2  
days in Boston unless the screen reader can tell him? As a seeng  
person, we understand it automatically by looking at the table. Foa a  
blind user, there needs to be indications to make that undersanding  
possible. And this is exactly what headers and ids are used for. In  
this case, the AT would read the 218 value as something like "218,  
Sub-total, Boston, Hotel". And then bam, it becones perfectly clear.  
Thank you headers and ids.


> (Some things may seem obvious to accessibility experts. They may  
> not seem obvious to other people. The accessibility experts need to  
> explain to others how this stuff is really used. Just saying that  
> it is needed for accessibility and expecting everyone to nod in  
> agreement because accessibility is good is not sufficient when we  
> need to spec processing models.)

Agreed. I may have just found my angle to contribute to this working  
group after all. Hopefully, I won't be the only one to chew on that  
bone:)

--
Denis Boudreau,
Directeur

WebConforme / AccessibilitéWeb
1751 rue Richardson, bureau 3.501
Montréal (Qc), Canada  H3K 1G6

Téléphone : +1 514-448-2650
Télécopieur : +1 514.667.2216
dboudreau@webconforme.com
blackberry@webconforme.com
http://www.webconforme.com/

======// À méditer //=======
Les choses changent plus lentement que l’on pense. La rapidité
des changements technologiques est tempérée par la lenteur de
leur acceptation sociale. (Michel Cartier)

Received on Friday, 4 May 2007 14:41:28 UTC