WebAIM - Web Accessibility In Mind

E-mail List Archives

Re: Use of the scope attribute with TH elements


From: Paul Bohman
Date: Feb 4, 2014 9:59AM

Using only <th> for cells across the top (column headers) works pretty
universally without scope, but I still recommend using scope, to make the
purpose of the th unambiguous.

Using <th> for cells in the left column (row headers) is not as universally
supported without scope, so always include the scope for row headers.

The headers + id method for complex tables with spanned cells works great
in JAWS and NVDA and does not work at all in VoiceOver. The VoiceOver
implementation is quite broken. VoiceOver requires simple table structure,
or else you have to essentially create the table from scratch using ARIA
grid structure, which is no fun, and works only in the OSX and not in
mobile iOS. I don't know of a solution for iPhones/iPads. Only simple table
structures work on Mac mobile platforms, as far as I know.

Paul Bohman, PhD
Director of Training
Deque Systems, Inc
703-225-0380, ext.121

On Tue, Jan 28, 2014 at 7:17 AM, Liko, Todd < <EMAIL REMOVED> > wrote:

> Hi Olaf.
> Thank you for your reply.
> When you say 'it is almost impossible to interpret this structure in the
> wrong fashion; scope attributes could not add any information' you are
> referring to assistive technologies such as screen readers. I realize we
> should not be coding for assistive technologies, they should be conforming
> with the standards. I tend to err on the side of caution and given that the
> scope attribute has defined purpose and does not hinder the reading of a
> table when used, that is why I have continued to use it.
> In addition, as previously noted, most of the information out there,
> including the revamped WebAim website, still say to use the scope attribute
> for simple tables.
> Once again, I appreciate your reply.
> Todd.
> -----Original Message-----
> From: <EMAIL REMOVED> [mailto:
> <EMAIL REMOVED> ] On Behalf Of Olaf Drümmer
> Sent: January 27, 2014 8:22 AM
> To: WebAIM Discussion List
> Subject: Re: [WebAIM] Use of the scope attribute with TH elements
> Hi Todd
> On 27 Jan 2014, at 14:02, "Liko, Todd" < <EMAIL REMOVED> > wrote:
> > My question is about the use of the scope attribute with the TH elements.
> here is my take (which I actually consider supported by HTML 4, HTML 5 and
> WCAG 2):
> - keep simple tables simple; if simple tables either have only one row of
> column headers in their top row, or one column of row headers in their
> first column, it is almost impossible to interpret this structure in the
> wrong fashion; Scope attributes could not add any information; the same
> would also apply where there are two or even three top levels of header
> cells at the top or left.
> - there is a class of still relatively simple tables, that have headers in
> the first column and in the first row; some of these have the upper left
> corner cell unused (i.e. it is not a TH cell), but others do use it as a TH
> cell, to serve as a header in the horizontal or vertical direction; in that
> case - and only in that case - the Scope attribute is valuable, as it can
> indicate what the scope of that TH cell is; as far as I can tell that is
> the only instance where the Scope attribute can be really useful
> - finally there are those tables that are not so simple - they have nested
> use of TH cells in vertical and horizontal direction, they have TH cells
> not only at the beginning of the table rows or columns, but rather
> somewhere in the middle; in almost all such cases the Headers attribute
> will have to be used, for all cells that have a header cell associated with
> them, to indicate which header cells to associate with a given cell.
> Note: where I am using words like top or left, this is based on tables in
> the Western writing mode (left to right, top to bottom).
> Olaf
> > > messages to <EMAIL REMOVED>
> > > >