JAWS: layout tables incorrectly identified as data tables
---------------------------------------------------------

                 Key: TRINIDAD-1371
                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1371
             Project: MyFaces Trinidad
          Issue Type: Bug
          Components: Components
    Affects Versions: 1.0.10-core, 1.2.10-core
         Environment: Windows, JAWS8
            Reporter: Andy Schwartz
            Priority: Minor


JAWS distinguishes between two types of HTML tables:

1. Data tables
2. Layout tables

Data tables should have markup that identify column/row headers (eg. <th> 
elements with scope="col|row") as well as non-empty summary attributes.  JAWS 
provides special support for navigating to data tables as well as for 
navigating between cells within data tables.

Layout tables should not contain any row/column header markup and should 
specify an empty summary attribute.  These tables should be completely 
transparent to screen reader end users since they are only used for layout 
purposes.

Unfortunately JAWS sometimes gets confused and treats some layout tables as if 
they are data tables.  This is bad, since this adds "noise" to the screen read 
reader experience - ie. JAWS reports the presence of tables that are not 
interesting to blind users.

To see this in action, access the following panelFormLayout demo via JAWS:

http://www.irian.at/trinidad-demo/faces/components/panelFormLayout.jspx

To see which tables JAWS considers to be data tables, do the following:

- Hit Insert+F3 to bring up the JAWS "Virtual HTML Featuers" dialog
- Arrow down to the "Tables List" item and hit Enter
- JAWS brings up the "Select a Table" dialog, which lists the data tables.

In the panelFormLayout demo, the only data table in the page is the 
"Attributes" table.  However, JAWS incorrectly reports 4 other layout tables 
rendered by the panelFormLayout component as being data tables.

A simple technique for forcing JAWS to recognize layout tables is to include 
the  datatable="0" attribute on the HTML table element.  This is non-standard 
attribute that JAWS checks to determine whether a particular HTML table is a 
data/layout table.  

This fix for this bug is to enhance OutputUtils.renderLayoutTableAttributes() 
to render the datatable="0" attribute when in screen reader mode (ie. when 
CoreRenderer.isScreenReaderMode() returns true).  This will force JAWS to treat 
any Trinidad-rendered layout tables as layout tables and avoid confusion with 
data tables.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to