Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 140816 of JAWS Issues with Firefox

  • Revision slug: Accessibility/JAWS_Issues_with_Firefox
  • Revision title: JAWS Issues with Firefox
  • Revision id: 140816
  • Created:
  • Creator: Aaronlev
  • Is current revision? No
  • Comment /* ARIA Issues */

Revision Content

Known JAWS Firefox Issues

These are bugs believed to be in the JAWS code, not in Firefox. For Firefox bugs, please search within Bugzilla.

ARIA Issues

This table does not include ARIA bugs in the Firefox code.

Versions tested with: Firefox version 2 and nightly Firefox 3 builds from 4/17/2007, and JAWS 8.*

Summary Description or steps Priority (P1-P5, P1 = highest)
AR-1: Descriptions (via aaa:describedby) are not spoken by JAWS
  1. Load https://www.mozilla.org/access/dhtml/button. There is a description associated with the entire groupbox, as well as a specific description associated with the button.
  2. Test both tabbing forward or backward through the groupbox.
  3. When any control is focused inside the groupbox, where focus was previously outside of the groupbox, the description for the entire groupbox should be read by JAWS.

Note: the description is exposed via accDescription as well as DESCRIBED_BY/DESCRIPTION_FOR relations (via accNavigate currently, will also get IAccessibleRelation support in FF3).

P1
AR-2: Cannot activate forms mode with Enter key while in advanced form controls, such as tree views and tab panels
  1. Load https://www.mozilla.org/access/dhtml/tabpanel, https://www.mozilla.org/access/dhtml/tree or https://www.mozilla.org/access/dhtml/spreadsheet
  2. Tab to one of the widgets
  3. Notice that Enter doesn't turn on forms mode

These are just a few examples of new ARIA controls that need to handle this. JAWS will need a different method to determine when to allow Enter = forms mode. Because of ARIA, a blacklist might work better than a whitelist (don't use Enter for links or buttons -- things that use Enter as a trigger). Alternatively, JAWS will need to support any MSAA or IA2 role in a web page. It seems that JAWS may be swallowing the Enter key in some or all cases. Perhaps it is trying to fire doDefaultAction().

P1
AR-3: JAWS uses window class to trigger doc reading, instead of ROLE_DOCUMENT vs. ROLE_APPLICATION/ROLE_DIALOG/ROLE_ALERT
  1. Load https://www.mozilla.org/access/dhtml/spreadsheet
  2. JAWS still uses the "MozillaDocumentWindowClass" , to trigger doc reading -- JAWS needs to recognize the root MSAA role for the content window. If it's ROLE_DOCUMENT then document reading mode should be the default, otherwise forms mode should be (although watch the READONLY flag -- if it's clear that means it's an editable document).

It would be better if JAWS completely removed use of the window class usage for Firefox support. Using the role is a better way of determining that forms mode should be on by default (although document reading should still be available). This would also help with XUL-as-content (about:config is one example that seems to be hardcoded into JAWS). To find the content window, take the top level window's OBJID_CLIENT root accessible, and use accNavigate with the EMBEDS relation.

An example of AR-3 through XUL as content is available, where JAWS reads incorrect labels.

P1
AR-4: JAWS reads the ARIA alert twice
  1. Load https://david.atrc.utoronto.ca/aria/errorAlert.xhtml
  2. Tab to one of the entry boxes, enter invalid data (such as nothing),
  3. You will notice that the error message "error: entry must be an integer value" is read twice.
P1
AR-5: JAWS does not support landmark roles, such as main content
  1. Load https://www.mozilla.org/access/dhtml/maincontent
  2. Notice that JAWS has no quick way of navigating to the roles.

Check the XHTML Role Attribute Module and the WAI-ARIA roles for a full list of navigation landmarks that may be useful for JAWS users.

P1
AR-6: JAWS does not support ARIA live regions

This is a larger feature request that requires taking a look at the live region report and test cases, and implementation discussions with Aaron

P1
AR-7: JAWS does not support rich text editing Basically, this is like a word processor in a web page. It's the same editor used by Thunderbird. Rich text editing is also known as design mode. See the design mode demo.
  • Do not use OSM. This requires using the IAccessible2/IAccessibleText/IAccessibleHyperText interfaces
  • Caret tracking
  • Font, color and emphasis support
  • Deal with embedded objects such as tables and images
  • Read line by line
  • Other support on par with Microsoft Word
P1
AR-8: Support the flowto/flowfrom relation This should affect the default reading order P2
AR-9: Support complex ARIA tree grids This is a placeholder for support of advanced ARIA tree grids, which may get events on the rows or the cells. Needs testcases and work in Firefox. P2
AR-10: Support required, checkable and invalid states In Firefox we've reused some rarely used MSAA states:
  • STATE_REQUIRED = STATE_ALERT_LOW
  • STATE_INVALID = STATE_ALERT_HIGH
  • STATE_CHECKABLE = STATE_MARQUEED

Or, if you want to use IA2 states then wait until Firefox 3 to support those.

P1
AR-11: New roles The direct ARIA roles are available via xml-roles. We need to look at marquee and the others. P3
AR-12: ARIA menus

Example: Spreadsheet with menubar

Two problems:

  1. When an ARIA menu becomes active JAWS should allow menubar navigation instead of using the arrow keys for the virtual cursor
  2. Do not send an extra down arrow key when a menu item gets focused -- this is currently focusing the second menu item when the user enters a submenu.
P1
AR-13: ARIA grid navigation

Example: Spreadsheet with menubar

Two problems:

  1. When the user traverses the spreadsheet, they should be able to change col/row header reading modes (e.g. read column header, row and col header, row or col header, row header only, nothing, etc.)
  2. As the user navigates it should read the "cell" so that users know they can navigate up/down and left/right
P2

Other areas to discuss:

  • Is datatype a useful property for JAWS?
  • How to deal with the sort property?

Revision Source

<h2 name="Known_JAWS_Firefox_Issues">Known JAWS Firefox Issues</h2>
<p>These are bugs believed to be in the JAWS code, not in Firefox. For Firefox bugs, please search within <a class="external" href="https://bugzilla.mozilla.org">Bugzilla</a>.
</p>
<h3 name="ARIA_Issues">ARIA Issues</h3>
<p>This table does not include <a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=dhtmla11y">ARIA bugs in the Firefox code</a>.
</p><p>Versions tested with: Firefox version 2 and nightly Firefox 3 builds from 4/17/2007, and JAWS 8.*
</p>
<table border="1" cellpadding="1" cellspacing="1" summary="Mozilla ARIA Issues with JAWS" width="90%">
<tbody><tr>
<th> Summary
</th><th> Description or steps
</th><th> Priority (P1-P5, P1 = highest)
</th></tr>
<tr>
<td> AR-1: Descriptions (via aaa:describedby) are not spoken by JAWS
</td><td>
<ol><li> Load https://www.mozilla.org/access/dhtml/button.  There is a description associated with the entire groupbox, as well as a specific description associated with the button. 
</li><li> Test both tabbing forward or backward through the groupbox.
</li><li> When any control is focused inside the groupbox, where focus was previously outside of the groupbox, the description for the entire groupbox should be read by JAWS.
</li></ol>
<p>Note: the description is exposed via accDescription as well as DESCRIBED_BY/DESCRIPTION_FOR relations (via accNavigate currently, will also get IAccessibleRelation support in FF3).
</p>
</td><td> P1
</td></tr>
<tr>
<td> AR-2: Cannot activate forms mode with Enter key while in advanced form controls, such as tree views and tab panels
</td><td>
<ol><li> Load https://www.mozilla.org/access/dhtml/tabpanel, https://www.mozilla.org/access/dhtml/tree or https://www.mozilla.org/access/dhtml/spreadsheet
</li><li> Tab to one of the widgets
</li><li> Notice that Enter doesn't turn on forms mode
</li></ol>
<p>These are just a few examples of new ARIA controls that need to handle this. JAWS will need a different method to determine when to allow Enter = forms mode. Because of ARIA, a blacklist might work better than a whitelist (don't use Enter for links or buttons -- things that use Enter as a trigger). Alternatively, JAWS will need to support any MSAA or IA2 role in a web page.
It seems that JAWS may be swallowing the Enter key in some or all cases. Perhaps it is trying to fire doDefaultAction().
</p>
</td><td> P1
</td></tr>
<tr>
<td> AR-3: JAWS uses window class to trigger doc reading, instead of ROLE_DOCUMENT vs. ROLE_APPLICATION/ROLE_DIALOG/ROLE_ALERT
</td><td>
<ol><li> Load https://www.mozilla.org/access/dhtml/spreadsheet
</li><li> JAWS still uses the "MozillaDocumentWindowClass" , to trigger doc reading -- JAWS needs to recognize the root MSAA role for the content window. If it's ROLE_DOCUMENT then document reading mode should be the default, otherwise forms mode should be (although watch the READONLY flag -- if it's clear that means it's an editable document).
</li></ol>
<p>It would be better if JAWS completely removed use of the window class usage for Firefox support. Using the role is a better way of determining that forms mode should be on by default (although document reading should still be available). This would also help with XUL-as-content (about:config is one example that seems to be hardcoded into JAWS).
<a class="external" href="https://www.mozilla.org/access/windows/at-apis#content-window">To find the content window</a>, take the top level window's OBJID_CLIENT root accessible, and use accNavigate with the EMBEDS relation.
</p><p>An example of <a class="external" href="https://www.tombrunet.com/archive/jawsxul1/jawsframe.html">AR-3 through XUL as content</a> is available, where JAWS reads incorrect labels.
</p>
</td><td> P1
</td></tr>
<tr>
<td> AR-4: JAWS reads the ARIA alert twice
</td><td>
<ol><li> Load https://david.atrc.utoronto.ca/aria/errorAlert.xhtml
</li><li> Tab to one of the entry boxes, enter invalid data (such as nothing),
</li><li> You will notice that the error message "error: entry must be an integer value" is read twice.
</li></ol>
</td><td> P1
</td></tr>
<tr>
<td> AR-5: JAWS does not support landmark roles, such as main content
</td><td>
<ol><li> Load https://www.mozilla.org/access/dhtml/maincontent
</li><li> Notice that JAWS has no quick way of navigating to the roles.
</li></ol>
<p>Check the <a class="external" href="https://www.w3.org/TR/xhtml-role/">XHTML Role Attribute Module</a> and the <a class="external" href="https://www.w3.org/TR/aria-role/">WAI-ARIA roles</a> for a full list of navigation landmarks that may be useful for JAWS users.
</p>
</td><td> P1
</td></tr>
<tr>
<td> AR-6: JAWS does not support ARIA live regions
</td><td>
<p>This is a larger feature request that requires taking a look at the <a class="external" href="https://developer.mozilla.org/en/docs/AJAX:WAI_ARIA_Live_Regions">live region report and test cases</a>, and implementation discussions with Aaron
</p>
</td><td> P1
</td></tr>
<tr>
<td> AR-7: JAWS does not support rich text editing
</td><td> Basically, this is like a word processor in a web page. It's the same editor used by Thunderbird. Rich text editing is also known as design mode. See the <a class="external" href="https://www.mozilla.org/editor/midasdemo/">design mode demo</a>.
<ul><li> Do not use OSM. This requires using the IAccessible2/IAccessibleText/IAccessibleHyperText interfaces
</li><li> Caret tracking
</li><li> Font, color and emphasis support
</li><li> Deal with embedded objects such as tables and images
</li><li> Read line by line
</li><li> Other support on par with Microsoft Word
</li></ul>
</td><td> P1
</td></tr>
<tr>
<td> AR-8: Support the flowto/flowfrom relation
</td><td> This should affect the default reading order
</td><td> P2
</td></tr>
<tr>
<td> AR-9: Support complex ARIA tree grids
</td><td> This is a placeholder for support of advanced ARIA tree grids, which may get events on the rows or the cells. Needs testcases and work in Firefox.
</td><td> P2
</td></tr>
<tr>
<td> AR-10: Support required, checkable and invalid states
</td><td> In Firefox we've reused some rarely used MSAA states:
<ul><li> STATE_REQUIRED  = STATE_ALERT_LOW 
</li><li> STATE_INVALID   = STATE_ALERT_HIGH
</li><li> STATE_CHECKABLE = STATE_MARQUEED
</li></ul>
<p>Or, if you want to use IA2 states then wait until Firefox 3 to support those.
</p>
</td><td> P1
</td></tr>
<tr>
<td> AR-11: New roles
</td><td> The direct ARIA roles are available via xml-roles. We need to look at marquee and the others.
</td><td> P3
</td></tr>
<tr>
<td> AR-12: ARIA menus
</td><td>
<p>Example: <a class="external" href="https://www.mozilla.org/access/dhtml/spreadsheet">Spreadsheet with menubar</a>
</p><p>Two problems:
</p>
<ol><li> When an ARIA menu becomes active JAWS should allow menubar navigation instead of using the arrow keys for the virtual cursor
</li><li> Do not send an extra down arrow key when a menu item gets focused -- this is currently focusing the second menu item when the user enters a submenu.
</li></ol>
</td><td> P1
</td></tr>
<tr>
<td> AR-13: ARIA grid navigation
</td><td>
<p>Example: <a class="external" href="https://www.mozilla.org/access/dhtml/spreadsheet">Spreadsheet with menubar</a>
</p><p>Two problems:
</p>
<ol><li> When the user traverses the spreadsheet, they should be able to change col/row header reading modes (e.g. read column header, row and col header, row or col header, row header only, nothing, etc.)
</li><li> As the user navigates it should read the "cell" so that users know they can navigate up/down and left/right
</li></ol>
</td><td> P2
</td></tr></tbody></table>
<p>Other areas to discuss:
</p>
<ul><li> Is datatype a useful property for JAWS?
</li><li> How to deal with the sort property?
</li></ul>
Revert to this revision