WebAIM - Web Accessibility In Mind

E-mail List Archives

Re: th scope=row

for

From: Birkir R. Gunnarsson
Date: Apr 6, 2016 10:20AM


Logan

I approach this more based on content than WCAG criteria.
I ask myself, "do I need to know the value of the leftmost cell in
this row (or any cell), in order to fully understand the cell I am
looking at)?
E.g. if your table is a task list that consists of "days of the week"
column headers, then you do not need to hear the value of the leftmost
column to fill in infor for any of the other columns.
You don't need to hear the tasks in the Sunday column (assuming it is
the lefmost column) in context of the tasks listed in the Thursday
column.

But if your table consists of the column headers "name, email, phone
number", then you need to know the name of the person in order to
fully understand the email or phone number cells. Making the name
cells into row headers communicates this relationship and enables
assistive technologies such as screen readers to announce these in
context.

A few other rules of thumb:
For two-column tables (or name, value pairs), I do not require row
headers, users can easily switch between columns (I recommend it as
good practice but definitely do not require it).

If you have a simple data table (with header cells in first row and/or
first column), you do not need to specify the scope attribute. Jaws 14
and older had a very annoying bug where it assumed all th cels where
column headers, so it would announce the first 20 cells in the first
column for cell 21 unless they had scope="row", but I think all more
recent screen reader versions since handle this correctly.

I could go on about complex tables, but I think, or at least hope,
this gets you started with this question. :)
Cheers
-Birkir



On 4/6/16, Trafford, Logan < <EMAIL REMOVED> > wrote:
> I'm documenting steps for non-technical content creators who have some
> limited control over table creation.
>
> I'm looking for a clear explanation of when to define a first column cell as
> a <th> with scope="row" as opposed to it just being a <td>. Anybody have
> one, or know where in the W3C or WCAG resources to find one? WCAG
> references to "simple tables" but it doesn't actually explain what is meant
> by that (at least I can't locate an explanation). It also references using
> scope, but I can't seem to find anything that references if or when the
> first column HAS to be defined as a <th>.
>
>
> Logan
>
>
> This e-mail originates from the City of Ottawa e-mail system. Any
> distribution, use or copying of this e-mail or the information it contains
> by other than the intended recipient(s) is unauthorized. Thank you.
>
> Le présent courriel a été expédié par le système de courriels de la Ville
> d'Ottawa. Toute distribution, utilisation ou reproduction du courriel ou des
> renseignements qui s'y trouvent par une personne autre que son destinataire
> prévu est interdite. Je vous remercie de votre collaboration.
> > > > >


--
Work hard. Have fun. Make history.