- From: Jean-Marie D'Amour <jmdamour@videotron.ca>
- Date: Thu, 12 Jul 2001 16:01:48 -0400
- To: "'Paul Bohman'" <paulb@cpd2.usu.edu>, "'Brooke Dine'" <dine@ncbi.nlm.nih.gov>, "'Kynn Bartlett'" <kynn-edapta@idyllmtn.com>
- Cc: "'w3cwai'" <w3c-wai-ig@w3.org>
Hello all,
Kynn's summary is very interesting and the precision add by Paul also.
For the scope attribute, it works fine in HPR but JAWS have a bug and
repeat twice each cell of the first row and the first column when you
read with the table navigation keystrokes.
Regards,
Jean-Marie D'Amour, M.Ed.
CAMO pour personnes handicapées
www.camo.qc.ca
Montréal, Québec, Canada
> -----Message d'origine-----
> De : w3c-wai-ig-request@w3.org
> [mailto:w3c-wai-ig-request@w3.org] De la part de Paul Bohman
> Envoyé : 12 juillet, 2001 13:25
> À : Brooke Dine; Kynn Bartlett
> Cc : w3cwai
> Objet : Re: w3c - Scope attribute in Table tag
>
>
> Great summary, Kynn! One thing to be very wary of is the
> rowspan attribute, as Kynn mentioned. If you have a row
> header cell which spans more than one row, it will mess up
> JAWS. Even if your markup is perfect, and you follow all of
> the accessibility recommendations, JAWS has a bug that causes the
> *wrong* column header to be read with the data cell contents.
>
> For an example of a table that would be read incorrectly by
> JAWS, see http://www.webaim.org/howto/tables3 (This is the
> third page in a brief and somewhat incomplete tutorial about
> creating accessible tables).
>
> The discovery of this bug in JAWS was quite frustrating,
> because it meant that I couldn't even count on correct,
> "accessible" markup to do what it is supposed to do. In fact,
> with JAWS reading the wrong headers with the cell contents,
> things are actually worse.
>
> Still, this is a relatively isolated circumstance. In the
> same tutorial (see link above), I give a couple of
> suggestions for workarounds for this JAWS bug. If anyone else
> has any other great ideas for workarounds, I'd love to know.
>
> Paul Bohman
> Technology Coordinator
> WebAIM: Web Accessibility in Mind (www.webaim.org)
> Center for Persons with Disabilities (www.cpd.usu.edu)
> Utah State University (www.usu.edu)
>
>
>
> ----- Original Message -----
> From: "Kynn Bartlett" <kynn-edapta@idyllmtn.com>
> To: "Brooke Dine" <dine@ncbi.nlm.nih.gov>
> Cc: "w3cwai" <w3c-wai-ig@w3.org>
> Sent: Thursday, July 12, 2001 11:02 AM
> Subject: Re: w3c - Scope attribute in Table tag
>
>
> > At 07:26 AM 7/12/2001 , Brooke Dine wrote:
> > >Yes, I'm just full of questions this week. Thanks to everyone for
> > >the
> info on requirements/procedures.
> > >
> > >Next question: I'm attempting to figure out the proper method of
> > >tagging
> for tables. In the past I had used <th> and <td> with
> "header" and "id" as per W3C. However, the 508 requirements
> from the Access Board say to just use the scope attribute.
> What do you all think? Which is better for data tables? and
> layout tables? Which readers pick up the scope tag?
> >
> > Tables are always hard to figure out. I can tell you what I think
> > should be done, but of course, I am not the Access Board so I can't
> > give you an answer on "what 508 requires". Here goes:
> >
> > Layout tables and data tables use the same markup, but do different
> > things. They need to be be treated differently as far as
> attributes.
> > And "simple" data tables should be distinguished from
> "complex" data
> > tables. Here is my summary list of suggestions for tables:
> >
> > LAYOUT TABLES:
> >
> > 1. Indicate layout tables with a human-readable @summary attribute
> > reading something like "Page Layout."
> >
> > 2. Only use <td> elements for layout. Do not use <th>, or
> any other
> > elements such as <thead>, <tbody>, <caption>, etc.
> >
> > 3. Do not use @headers, @scope, or @axis on layout tables.
> >
> > 4. Test your layout to make sure that it makes sense when read in
> > linear order -- the order in which it appears in the
> source code,
> > usually. (Change all <td> and <table> tags to <div> to test.)
> >
> > 5. Use CSS and/or HTML @align and @valign attributes to make your
> > page layouts align properly. This probably won't
> break anything.
> >
> > 6. Don't use a @title element on your layout table, or on any
> > cells of your layout table. This will cause unwanted tooltips.
> >
> > 7. OPTIONAL: Consider creative use of @colspan and
> @rowspan, and/or
> > nested tables, in order to make your layout work
> linearly as well
> > as graphically.
> >
> > DATA TABLES:
> >
> > 1. Use the @summary attribute to list the data represented; don't
> > just name it. Don't say, "Listings of television shows on
> > tonight," instead say "On channel 2, the news from 8 to 10. On
> > channel 3, the movie 'Jaws' from 7:30 to 11:00. ..."
> >
> > 2. Note! It will get tedious to do the above, and probably won't
> > all fit nicely in one attribute. Therefore, if your summary is
> > going to be more than about 200 characters (as it probably
> > will be), you should provide a link OUTSIDE of the table
> > reading something like "Text summary of table" which goes to
> > a page with a long summary. Then make the @summary attribute
> > read, "Listings of television shows on tonight: Summary link
> > follows table."
> >
> > 3. Use <th> tags for a header -- and a header is anything where
> > the content of the <th> applies to everything else in the same
> > row or column. For example: I have a matrix that lists
> > availability of various products in various stores. Across
> > horizontally on the first row, I list my products, one per
> > column. Going down, I list my store locations, one per row,
> > and the rest of the row is the intersection of the product and
> > the store data. The cells with the product identifiers, and
> > the cells with the store identifiers, should both be <th>
> > elements.
> >
> > 4. Use CSS and/or HTML @align tags to style your <th> headers if
> > you don't like the default appearance. This won't break
> > anything.
> >
> > 5. If you're creating a large table, consider using <thead>,
> > <tfoot>, <tbody>, <colgroup>, and <col>. The purpose of these
> > elements and attributes is to allow you to group together
> > rows or columns and give them a special designation. This can
> > be useful for styling, scrolling, or printing, but is usually
> > going to be overkill on any table with less than 50 cells.
> >
> > 6. Consider using abbreviations for your headers. There are
> > two issues here, and I'll try to untangle them for you. If
> > you want to display a short header which logically means
> > something larger -- such as using "PID" instead of "Product
> > Identification" -- then you will use the <abbr> tag within
> > the <th> to offer up the longer expansion. If you want
> > to display a long header, such as "Store Located in Temecula,
> > California", you should consider using an @abbr attribute
> > on the <th> tag, with a value such as "Temecula."
> >
> > 7. Use a <caption> attribute to label your table if the content
> > requires it. Don't use @title to label your data table.
> >
> > IDENTIFYING SIMPLE DATA TABLES:
> >
> > The "rules" are different -- or at least, lots of stuff is
> unnecessary
> > -- if you are dealing with a "simple" table vs. a complex one.
> >
> > 1. If you use @colspan or @rowspan, your table is not simple.
> >
> > 2. If you have "nested headers", then your table is not simple.
> > Nested headers means that more than one row header or more than
> > one column header applies to the same content. Let's look
> > at the product-store matrix -- if the first row, before the
> > listing of stores, were a row with headers reading "Product
> > Type", and under that, the specific product. Two column
> > headers ("Product Type" and the name of the product)
> would apply
> > to each cell.
> >
> > 3. If you've got headers which are not on the far edges of your
> > table -- on the top, the bottom, the left, or the right -- then
> > you don't have a simple table. For example, if row one is a
> > list of headers representing "data prior to 1994" and row
> > fifteen is a list of headers representing "after 1994", and
> > it splits your table in two, because you've got different
> > headers going across.
> >
> > 4. As the most simple check, each cell should be in a row with
> > only one row header in it, and in a column with only one
> > column header it, and both of those should be
> applicable headers
> > to the cell. If this is not the case, then you don't have a
> > simple table. For example: more than one row header, more
> > than one column header, a column or row header which doesn't
> > apply (see #3).
> >
> > SIMPLE DATA TABLES:
> >
> > 1. Don't use @scope, @headers, or @axis attributes on your simple
> > table cells.
> >
> > COMPLEX DATA TABLES:
> >
> > 1. Decide how you are going to associate data cells with headers.
> > There are three approaches: @headers, @scope, and @axis.
> > They are not incompatible with each other, so you can get
> > pretty complex.
> >
> > 2. @scope assumes that you can designate a header as applying to
> > "everything in this row" or "everything in this column", or
> > even "everything in this group of rows or columns," where
> > the row, column, colgroup, or rowgroup is the one containing
> > the header cell. This is how simple tables work, but it may
> > need to be spelled out for complex tables. @scope is an
> > attribute set on the header cell, not on the data cells.
> > (You may need to use <tbody>, <colgroup>, and <col> to
> > designate groups of rows or columns.)
> >
> > 3. @headers takes the opposite approach -- it assumes that you
> > may not be able to easily a header as applying to to whole
> > rows, columns, or groups thereof. You designate the
> relationship
> > on the data cells themselves, not on the header cells. The
> > header cells simply need an @id attribute to be set. More
> > than one header can be applied to each cell; you just give
> > a list of header ids separated by spaces.
> >
> > 4. @axis gets even stranger. @axis lets you associate together
> > cells, groups cells associated by @headers, and groups of cells
> > associated by @scope. You set the @axis attribute on a cell,
> > and that cell is part of the axis defined by that value. If
> > the cell has a @scope attribute set, the cells within that
> > scope are part of the axis. If a cell with an @axis has an
> > @id, then any other cells which list the id in their @headers
> > attributes are part of the @axis. In theory, this lets a
> > browser "query" a table and return information. In practice,
> > I don't know of any browsers which do that, and in general,
> > if you are at this level of complexity then you perhaps should
> > offer your content in alternate formats, or perhaps in multiple
> > tables.
> >
> >
> > Hope this helps.
> >
> > I've also put this summary up on http://access.idyllmtn.com/tables/
> >
> > --Kynn
> >
> > --
> > Kynn Bartlett <kynn@reef.com>
> > Technical Developer Liaison
> > Reef North America
> > Accessibility - W3C - Integrator Network
> > Tel +1 949-567-7006
> > ________________________________________
> > BUSINESS IS DYNAMIC. TAKE CONTROL.
> > ________________________________________
> > http://www.reef.com
> >
>
Received on Thursday, 12 July 2001 16:02:40 UTC