W3C home > Mailing lists > Public > w3c-wai-gl@w3.org > January to March 2004

Re: TFOOT accessibility

From: Sailesh Panchang <sailesh.panchang@deque.com>
Date: Fri, 13 Feb 2004 16:29:58 -0500
Message-ID: <00fb01c3f278$915993b0$a201a8c0@deque.local>
To: "WCAG List" <w3c-wai-gl@w3.org>
Hi Ken,
The TFoot cells that use colspan do not need to be associated to any  of the th or td cells unless context demands it. So they can stand alone and be read as footnotes at the end of the table as they appear now in your example. I also tried giving them id values (f1, f2, f3) and referenced them in a few td cells in the tbody. They get read by AT. In my example,   even if one uses td, it works because explicit association exists. The th was an experiment and it remained in the code. I cannot find anything  in the specs that   mandate tfoot cells to be associated with any other cells (using scope/headers and id). Only that these rowgroups in the table must have same number of columns.

Sailesh Panchang
Senior Accessibility Engineer 
Deque Systems,11180  Sunrise Valley Drive, 
4th Floor, Reston VA 20191
Tel: 703-225-0380 Extension 105 
E-mail: sailesh.panchang@deque.com
Fax: 703-225-0387
* Look up <http://www.deque.com> *



  ----- Original Message ----- 
  From: Ken Kipnes 
  To: Kerstin Goldsmith ; Sailesh Panchang 
  Cc: John M Slatin ; WCAG List 
  Sent: Friday, February 13, 2004 3:08 PM
  Subject: Re: TFOOT accessibility


  All,

  The original TFOOT example came from me, and arose from a question from my Doc group (~350 people using automated tools to create documentation).  The main difference between the TFOOT in my example and Sailesh's example is the use of TH within the TFOOT.   Our rules for the use of TFOOT are: series of ROWS that would display at the bottom of the table; no TH, except perhaps in the one case of Key Legend; spanned columns to encompass the entire row (one footer data cell per row).  

  So, the question becomes, how do we associate the spanned cell (single column row) with anything valid when the footer row does not properly associate with any of the existing table headers, and there is no new header (TH) to associate them with?  And, is this association required?

  I hope this helps to clear things up rather than make it more confusing.

  BTW, I ran my original example through our Accessibility Checker, and with the latest versions of InFocus, PageScreamer and Bobby.  None of the checkers give an indication of TFOOT being used; Bobby doesn't issue a violation for the lack of HEADERS in the footer rows; InFocus and PageScreamer do issue violations for those rows, with the usual "associate table cell data with IDs and HEADERS" violation.

  regards,

  ken

    ----- Original Message ----- 
    From: Kerstin Goldsmith 
    To: Sailesh Panchang 
    Cc: John M Slatin ; WCAG List ; Kipnes,Ken 
    Sent: Friday, February 13, 2004 1:51 PM
    Subject: Re: TFOOT accessibility


    Hi, Sailesh,

    Thanks for a very thorough reply.  I guess the question that still remains is "do TFOOTs require association markup; and if so, is there some simple way to attribute SCOPE to them, without having to add all the ids and headers?"

    John, the tool we are using is our own internal concoction (Oracle Accessibility Checker), and it currently identifies the TFOOTs as being in a data table and lacking some kind of associative markup.  So, we are not only trying to figure out what the accessible HTML would look like for such a table, but also trying to incorporate that into our tool.

    Thanks,
    -Kerstin

    Sailesh Panchang wrote:

      John,
      Tfoot is optional and in that example as well as in the  current one,  it has been correctly used. So what violation did you expect  the eval tool to identify?
      Please see attached file. It has a 
      complex table   from HTML techniques page. I have  added headers and id to this table and it also has a footers section. I have added id to the footers section and referenced them in cells in tbody section. They work fine.
      WinEyes 4.5: does the best job and announces table section  too as one navigates into it. Reads headers correctly. WinEyes reads all header values  for a cell.
      HPR 3.02:  Does not announce table sections but reads headers correctly. Only reads header values as  row/column changes. But messes up reading headers for last line of footers.
      JAWS 5.812: Does not announce table sections. If one reads table in linear fashion (without table keys) it reads footers at end. With table nav keys, it reads footers once before body and then at end. Does headers association correctly for cells in body section. But for first row of footers, it reads column headings at top of table. Only reads header values as  row/column changes which is ok.
      If one uses headers and id, one must indicate all relevant header cells. HPR and WE do not read column headings that are not in the headers value which one expects them to read normally as one navigates sideways.  But JAWS reads them. For instance if header value does not include   id for meals / hotel/ transport, they are still read. e.g. first line of footers.
      Will be useful if JFW and HPR announce change in table section.
      Code follows
      Sailesh Panchang
      Senior Accessibility Engineer 
      Deque Systems,11180  Sunrise Valley Drive, 
      4th Floor, Reston VA 20191
      Tel: 703-225-0380 Extension 105 
      E-mail: sailesh.panchang@deque.com
      Fax: 703-225-0387
      * Look up <http://www.deque.com> *


       
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML lang="EN">
      <HEAD><TITLE>Table with TFOOT demonstrating use of color used to highlight some cells in accessible manner</TITLE>
      </HEAD>
      <h2>Table #2 </h2>
      <p>
      </p>
      <table border="1"
      summary="this table summarizes travel expenses incurred during August trips to San Jose and Seattle. The expenses are recorded for each day of visit in
      rows below the two places. Some cells are shaded grey or yellow; key to colors is at the bottomm of the table.">
      <caption>
      Table 1: Complex table- Travel Expense Report </caption>
      <thead>
      <tr>
      <th></th>
      <th id="c2">Meals</th>
      <th id="c3" >Hotels</th>
      <th id="c4" >Transport</th>
      <th id="c5">Total</th>
      </tr>
      </thead>
      <tfoot>
      <tr>
      <th id="r11">Key to color shading:</th>
      <th colspan="2" bgcolor="grey" id="grey" headers="r11">Grey</th>
      <th colspan="2" bgcolor="yellow" id="yellow" headers="r11">Yellow</th>
      </tr>
      <tr id="r12"><th>What it means</th>
      <td colspan="2" id="clr1" headers="grey r12">Pre-approved</td>
      <td colspan="2" id="clr2" headers="yellow r12">Approved post-visit</td>
      </tr>
      </tfoot>

      <tbody>
      <tr>
      <th id="r2" >San Jose</th>
      <th></th>
      <th></th>
      <th></th>
      <td></td>
      </tr>
      <tr>

      <th id="r3" headers="r2" >25-Aug-97</th>

      <td headers="r2 r3 c2 clr1" bgcolor="grey">37.74</td>

      <td headers="r2 r3 c3">112.00</td>

      <td headers="r2 r3 c4">45.00</td>

      <td></td>

      </tr>

      <tr>
      <th id="r4"headers="r2" >26-Aug-97</th>
      <td headers="r2 r4 c2">27.28</td>
      <td headers="r2 r4 c3">112.00</td>
      <td headers="r2 r4 c4 clr1"bgcolor="grey" >45.00</td>
      <td></td>
      </tr>
      <tr>
      <th id="r5" headers="r2" >Subtotals</th>
      <td headers="r2 r5 c2" >65.02</td>
      <td headers="r2 r5 c3" >224.00</td>
      <td headers="r2 r5 c4" >90.00</td>
      <td headers="r2 r5" >379.02</td>
      </tr>
      <tr>
      <th id="r6" >Seattle</th>
      <th></th>
      <th></th>
      <th></th>
      <td></td>
      </tr>
      <tr>
      <th id="r7" headers="r6" >27-Aug-97</th>
      <td headers="r6 r7 c2 clr2" bgcolor="yellow" >96.25</td>
      <td headers="r6 r7 c3">109.00</td>
      <td headers="r6 r7 c4">36.00</td>
      <td></td>
      </tr>
      <tr>
      <th id="r8" headers="r6" >28-Aug-97</th>
      <td headers="r6 r8 c2">35.00</td>
      <td headers="r6 r8 c3">109.00</td>
      <td headers="r6 r8 c4">36.00</td>
      <td></td>
      </tr>
      <tr>
      <th id="r9" headers="r6" >subtotals</th>
      <td headers="r6 r9 c2" >131.25</td>
      <td headers="r6 r9 c3">218.00</td>
      <td headers="r6 r9 c4">72.00</td>
      <td headers="r6 r9">421.25</td>
      </tr>
      <tr>
      <th>Totals for 4-days' trip</th>
      <td headers="c2">196.27</td>
      <td headers="c3">442.00</td>
      <td headers="c4">162.00</td>
      <td headers="c5">800.27</td>
      </tr>
      </tbody>
      </table>

      </BODY></HTML>




--------------------------------------------------------------------------


      Table #2 

        Table 1: Complex table- Travel Expense Report  
           Meals Hotels Transport Total 
            Key to color shading: Grey Yellow 
            What it means Pre-approved Approved post-visit 
            San Jose 
           
           
           
           
            25-Aug-97 37.74 112.00 45.00 
           
            26-Aug-97 27.28 112.00 45.00 
           
            Subtotals 65.02 224.00 90.00 379.02 
            Seattle 
           
           
           
           
            27-Aug-97 96.25 109.00 36.00 
           
            28-Aug-97 35.00 109.00 36.00 
           
            subtotals 131.25 218.00 72.00 421.25 
            Totals for 4-days' trip 196.27 442.00 162.00 800.27 
Received on Friday, 13 February 2004 16:20:13 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 07:17:55 UTC