E-mail List Archives
Thread: Use of ROLE=GRID for identifying data tables is a POOR practice for future compatibility
Number of posts in this thread: 2 (In chronological order)
The blog entry "JAWS ate my tables " at states the use of ROLE=GRID will result in Jaws identifying the table as a data table:
It is true using ROLE=GRID will identify a table as being a data table, since the MSAA mapping of GRID is to MSAA TABLE roles, since MSAA does not have GRID roles.
But the use of ROLE=GRID is a poor practice for static data table identification and will cause confusion in the future, since the real purpose of using ROLE=GRID is to identify an interactive grid widget. The confusion will come as more real GRIDs become available on the web that are interactive, when users come to use the non-interactive GRIDs they will be confused.
So I recommend that people NOT use ROLE=GRID unless it fully supports the GRID related markup and keyboard navigation:
GRID related markup:
DHTML Style Guide for grid interactivity:
Example of an interactive GRID using ARIA markup and DHTML stlye guide:
Jon Gunderson, Ph.D.
Coordinator Information Technology Accessibility
Disability Resources and Educational Services
Rehabilitation Education Center
1207 S. Oak Street
Champaign, Illinois 61820
Voice: (217) 244-5870
This email (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged. It is intended for the use of the individual or entity to which it is addressed and may contain information that is privileged, confidential, and exempt from disclosure under applicable law. If the reader of this email is not the intended recipient, or agent responsible for delivering or copying of this communication, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, please reply to the sender that you have received the message in error, then delete it. Thank you.
On Tue, Jan 12, 2010 at 8:53 AM, Jon Gunderson < = EMAIL ADDRESS REMOVED = > wrote:
> But the use of ROLE=GRID is a poor practice for static data table
> identification and will cause confusion in the future, since the real
> purpose of using ROLE=GRID is to identify an interactive grid widget.
> The confusion will come as more real GRIDs become available on the
> web that are interactive, when users come to use the non-interactive
> GRIDs they will be confused.
Thanks for the update.
I don't see anything in the specification that limits grid to only
interactive elements. It says that the grid MAY contain editable
elements. I may be missing something. Of note is that no screen reader
I tested identifies a table with role="grid" any different than a
standard data table. If they are to identify grids as editable, this
functionality doesn't seem to be present yet.
The recommendation of using role="grid" was to force the screen reader
to treat data tables as such, rather than ignoring the data structure
and treating them as layout tables. Which is more problematic, to have
a data table's structure ignored entirely or to (conceivably) have a
static data table identified, but as editable? I would think the
former is much more significant - role="grid" seems to adequately fix
With this said, this is really less of an issue now that the most
current sub-version of JAWS more accurately detects data tables by
considering header structure in its heuristics (getting them to do
this was the main motivation behind the post). I've updated the blog