You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Andy Schwartz (JIRA)" <de...@myfaces.apache.org> on 2009/01/19 22:14:59 UTC

[jira] Created: (TRINIDAD-1371) JAWS: layout tables incorrectly identified as data tables

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.


[jira] Resolved: (TRINIDAD-1371) JAWS: layout tables incorrectly identified as data tables

Posted by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org>.
     [ https://issues.apache.org/jira/browse/TRINIDAD-1371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott O'Bryan resolved TRINIDAD-1371.
-------------------------------------

       Resolution: Fixed
    Fix Version/s:  1.2.11-core
                    1.0.11-core

This has been applied.  Thanks!

> 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.2.10-core, 1.0.10-core
>         Environment: Windows, JAWS8
>            Reporter: Andy Schwartz
>            Assignee: Scott O'Bryan
>            Priority: Minor
>             Fix For:  1.0.11-core,  1.2.11-core
>
>         Attachments: jira1371_for_Trinidad_trunk_1.0.x.patch, jira1371_for_Trinidad_trunk_1.2.x.patch
>
>
> 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.


[jira] Commented: (TRINIDAD-1371) JAWS: layout tables incorrectly identified as data tables

Posted by "Dave Robinson (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/TRINIDAD-1371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12668981#action_12668981 ] 

Dave Robinson commented on TRINIDAD-1371:
-----------------------------------------

I have fix and will attach the patches. -Dave

> 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.2.10-core, 1.0.10-core
>         Environment: Windows, JAWS8
>            Reporter: Andy Schwartz
>            Priority: Minor
>         Attachments: jira1371_for_Trinidad_trunk_1.0.x.patch, jira1371_for_Trinidad_trunk_1.2.x.patch
>
>
> 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.