Visit Mozilla.org

ARIA: Accessible Rich Internet Applications

From MDC

(Redirected from Accessible DHTML)


Firefox's implementation of Accessibility Rich Internet Applications (ARIA) allows desktop-style widgets such as tree views, menu bars and spreadsheets which are accessible both with the keyboard and assistive technologies such as screen readers, screen magnifiers and alternative input devices. It also helps provide accessibility solutions for AJAX-style live updates to regions on a page.

ARIA, formerly known as DHTML accessibility, is a standard being developed at W3C - World Wide Web Consortium. All documents are available on the Protocols and Formats Working Group public page. This includes the ARIA roadmap, the ARIA roles spec and the states module.

The code for ARIA in Firefox has been contributed by IBM.

A new helpful FAQ on ARIA is also available.

Contents

ARIA examples which demonstrate the Firefox implementation are available. While the community waits for W3C's Protocols and Formats group to move the ARIA implementation through the various phases of the standardization process, web sites can already be written which take advantage of Firefox's ARIA support today. Bug fixing and small tweaks are still occurring -- there will continue to be evolutionary improvements in Firefox's support for ARIA.

[edit] Keyboard navigation

Keyboard navigation is supported in two ways:

  1. Via the HTML tabindex attribute, which allows any HTML element to be made tab navigable or, at least, focusable via script or the mouse. Differentiating between elements that are tab navigable and merely focusable allows the development of container widgets such as tree views and spreadsheets, where the arrow keys are used to navigate between child elements in the container. This currently works in Internet Explorer, Firefox and Opera. It does not work in Safari. Please see Practical documentation on building key navigable custom widgets, which describes how to tabindex to code key navigable DHTML widgets.
  2. Via the aria-activedescendant attribute. This can be much simpler, because the container widget (a list, tree or grid for example) can be added to the tab order by putting tabindex="0" on it. Then, point to the currently focused descendant with the aria-activedescendant="[id]" attribute. The keydown handler on the container widget should change which descendant is pointed to, and ensure that the current item is styled (e.g. with a border or background color) to show it is the current one. This technique can be made to work in all browsers. See the source code of the listbox example for a more direct illustration of how this works.

[edit] Basic support for assistive technologies

Assistive technology support requires Firefox 2 or later and content which uses ARIA markup to describe each widget. For example, each widget must use the ARIA role to specify the widget type, e.g. menu, slider or progress bar. Each role may support a small number of additional property attributes such as checked, selected, required, invalid, and expanded.

[edit] What does the markup look like?

The ARIA recommendation has now changed so that namespaces are no longer used in the markup. This allows it to be used in HTML.

For example, a checkbox may be specified as:

[edit] In HTML (requires Firefox 3)

<span tabindex="0" role="checkbox"
      aria-checked="true"
      onkeydown="return checkBoxEvent(event);"
      onclick="return checkBoxEvent(event);">
  Any checkbox label
</span>

[edit] Historical Namespace approach (no longer supported)

For historical purposes, here is the namespaced approach, which required XHTML in order to be used declaratively. This is no longer supported in Firefox 3:

<span tabindex="0" role="wairole:checkbox"
      aaa:checked="true"
      onkeydown="return checkBoxEvent(event);"
      onclick="return checkBoxEvent(event);">
  Any checkbox label
</span>


The above checkbox is custom built, but acts just like a normal checkbox as far as assistive technologies and the user are concerned. It can have any visual appearance the author wishes to code via CSS. Here is a breakdown of the attributes:

Attribute Meaning
tabindex="0" Put the <span>-based checkbox in the tab navigation cycle, and allow click-to-focus with the mouse. In contrast, tabindex="-1" would make the element focusable via script and mouse clicks, but not part of the default tab cycle.
role="checkbox" Specify that this is a checkbox, so that assistive technologies like screen readers know what it is.
aria-checked="true" Checkboxes support the checked property; specifying it indicates that the the checkbox is checkable. Properties are also exposed to assistive technologies.
onkeydown="return checkBoxEvent(event);" Allows trapping of the space bar for toggling the checked property. The checkBoxEvent() method is responsible for implementing this, as well as returning false if the event should not continue to be propagated (has been consumed).
onclick="return checkBoxEvent(event);" This is also necessary, in addition to the keyboard handler, so that clicking on the checkbox toggles its value.

Please see the provided ARIA samples for futher examples how this markup is used. Firefox implements the mapping from these markup roles and properties to MSAA - Microsoft Active Accessibility and ATK - Accessibility Toolkit (from Gnome Accessibility Project), which are the standard accessibility APIs on Windows and Linux. Because the widget information is exposed via standard accessibility APIs, assistive technologies get a large degree of compatibility with these widgets without any new code. The most complete support in screen readers currently requires Window-Eyes 5.5. Screen magnifiers such as ZoomText are also compatible with ARIA.

Internet Explorer support is not currently available for the role and properties pieces. Internet Explorer currently supports only keyboard navigation for these widgets. Assistive technology vendors should be able to support ARIAsemantics without changes in Internet Explorer by looking directly at the DOM and DOM change events.

[edit] Choosing XHTML or HTML

It now no longer matters whether you use XHTML or HTML (or for that matter, SVG or XUL). Firefox will process the new non-namespaced markup the same way on anything it renders. You can use ARIA markup declaratively and set it dynamically the same way, regardless of the content type. For those who dealt with ARIA in the beginning, this is a drastic improvement!

[edit] Sample widgets

[edit] Testing with keyboard and mouse navigation

Keyboard or mouse navigation works in both Internet Explorer and Firefox. Please note that only the HTML versions of the samples have been tested with and made to work in Internet Explorer. The XHTML versions of the samples have not.

[edit] Testing with Firefox Accessibility Extension

The Firefox Accessibility Extension has features to test for the accessibility of ARIA roles.

[edit] Testing with screen readers

Screen reader support is only available in Firefox 1.5 or later. Here are the required components that must be installed:

  1. Firefox: download and install Firefox.
  2. Screen reader: for testing with a screen reader, Window-Eyes 5.5 or later is required. In addition, JAWS 7.x or later has partial support for ARIA. Also, Orca 2.20 or later has support for most ARIA widget types for Firefox 3.0.

[edit] Where can I find samples?

Note: examples are also listed by role/property in the next sections.

[edit] Dojo Toolkit

All of the core Dijit widgets from the Dojo 1.0 widget toolkit now support ARIA. For screen reader support, the Dojo examples must be opened with Firefox 2 or Firefox 3.

[edit] University of Illinois

The University of Illinois ARIA test suite requires Firefox 3 for screen reader support.

[edit] Mozilla bare bones examples

The Mozilla.org ARIA test pages provide some examples to learn from. For screen reader support they require Firefox 3:

  1. Checkbox, Button with description
  2. Graphical slider, Simple slider, Progress bar
  3. Alert
  4. Grid (spreadsheet) with menubar
  5. Tab panel
  6. Listbox
  7. Tree view, Tree view #2

[edit] CLC World: live region examples

The http://accessibleajax.clcworld.net/ live region examples] currently work in Fire Vox. It does not matter which version of Firefox you are using when running the Fire Vox screen reading extension.

[edit] Supported roles

Here's a table delineating what roles supported by Firefox, which properties each role supports, and which currently have examples. Note that some properties are "universal properties" and work on all elements. See the supported properties section for more information.

Unless otherwise indicated, properties are boolean and support the values true or false. In the boolean case, an unset attribute is the equivalent of setting it to false.

Be aware that the attributes checked, selected, and expanded are special -- false is different from no attribute present in that false indicates that the widget is checkable/selectable/expandable and no attribute indicates that it isn't.

We also provide the technical details on how Firefox exposes all of this information through the accessibility APIs on Windows (MSAA) and Linux (ATK).

Role Supported author-defined properties† Automatically supported properties Samples Firefox 1.5 support Firefox 2 support Firefox 3 test build support
alert   name from child content or title attribute Mozilla.org alert, [1] Window-Eyes 5.5+, ZoomText 9.1+, JAWS 7.1+
alertdialog   name from child content or title attribute   no Window-Eyes 5.5+, ZoomText 9.1+, JAWS 7.1+ Window-Eyes 5.5+, ZoomText 9.1+, JAWS 7.1+
application     Mozilla.org Grid (spreadsheet) and menubar Window-Eyes 5.5+ Window-Eyes 5.5+, Orca 2.20+
button
  • disabled
  • pressed
name from child content or title attribute Weba11y button Mozilla.org button with description, UIUC button Window-Eyes 5.5+, JAWS 8.0+ Window-Eyes 5.5+, JAWS 8.0+, Orca 2.20+
checkbox
  • checked
  • disabled
  • readonly
  • required
  • invalid
name from child content or title attribute Mozilla.org checkbox, UIUC checkbox Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
columnheader
  • disabled
  • selected=true|false (no selected attribute indicates not selectable)
  • readonly
name from child content or title attribute Mozilla.org grid (spreadsheet) and menubar Window-Eyes 5.5+, JAWS 7.1+ Window-Eyes 5.5+, JAWS 7.1+, Orca 2.20+
combobox
  • disabled
  • readonly
  • expanded
name from title attribute Mozilla.org combo box Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
description   name from child content or title attribute Mozilla.org button Window-Eyes 5.5+, JAWS 7.0+
Needs to be used together with aria-describedby on the element it's a description for.
Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
dialog     Dojo dialog   Orca 2.20+
directory       Exposed, but no special AT support
document       Window-Eyes 5.5+
grid
    disabled
  • readonly
  • multiselectable
name from title attribute Mozilla.org grid (spreadsheet) and menubar, UIUC grid
  • Window-Eyes 5.5+ has full support
  • JAWS 7.1+ has partial support (JAWS does not read row/column headers)
  • Nothing has support for multiselectable in Firefox 1.5, because it is not yet exposed.
  • Window-Eyes 5.5+ has full support
  • JAWS 7.1+ has partial support (does not read row/column headers)
  • Need testing validation data to see if multiselectable support is picked up
  • Window-Eyes 5.5+ has full support
  • Orca 2.20+ has full support
  • JAWS 7.1+ has partial support (does not read row/column headers)
  • Need testing validation data to see if multiselectable support is picked up
gridcell
    disabled
  • selected=true|false (no selected attribute indicates not selectable)
  • readonly
  • invalid
  • required
name from child content or title attribute Mozilla.org grid (spreadsheet) and menubar, UIUC grid
  • Window-Eyes 5.5+ has full support
  • JAWS 7.1+ has partial support (does not read rowheader or columnheader cells relevant for each cell)
  • Window-Eyes 5.5+ has full support
  • JAWS 7.1+ has partial support (does not read rowheader or columnheader cells relevant for each cell)
  • Orca 2.20+
group   name from title attribute UIUC tree, Mozilla.org progress bar Window-eyes 5.5+, JAWS 7.1+ Window-eyes 5.5+, JAWS 7.1+, Orca 2.20+
img   name from title attribute Mozilla.org tiled image Not supported Not supported Orca 2.20+
label   name from child content or title attribute   Window-Eyes 5.5+, JAWS 7.1+
link   name from child content or title attribute, linked (always true) disabled Name incorrectly calculated Name incorrectly calculated Window-Eyes 5.5+, JAWS 7.1+
list
  • readonly
  • multiselectable
name from title attribute   Window-Eyes 5.5+, JAWS 7.1+
listbox
  • disabledreadonly
  • multiselectable
name from title attribute Mozilla.org listbox no Window-Eyes 5.5+, JAWS 7.1+ Window-Eyes 5.5+, JAWS 7.1+, Orca 2.20+
listitem
  • disabledselected=true|false (no selected attribute indicates not selectable)
  • checked=true|false (no checked attribute indicates not checkable)
name from child content or title attribute   Window-Eyes 5.5+, JAWS 7.1+ Window-Eyes 5.5+, JAWS 7.1+, Orca 2.20+
log (chat logs, game logs, error logs etc. It's live by default)     AJAX chat Exposed, but currently no special AT support
menu disabled name from title attribute Mozilla.org grid (spreadsheet) and menubar Window-eyes 5.5+, JAWS 7.1+ Window-eyes 5.5+, JAWS 7.1+, Orca 2.20+
menubar disabled name from title attribute Mozilla.org grid (spreadsheet) and menubar, UIUC menubar Window-eyes 5.5+, JAWS 7.1+ Window-eyes 5.5+, JAWS 7.1+, Orca 2.20+
menuitem
  • disabled
  • checked=true|false|mixed
name from child content or title attribute Mozilla.org grid (spreadsheet) and menubar, UIUC menubar Window-Eyes 5.5, JAWS 7.1+ (but not checked=mixed) Window-Eyes 5.5, JAWS 7.1+ (need test validation data to see if checked=mixed support is picked up) Window-Eyes 5.5, Orca 2.20+, JAWS 7.1+ (need test validation data to see if checked=mixed support is picked up)
menuitemcheckbox
  • checked
  • disabled
checkable, name from child content or title attribute   no Need testing validation data Need testing validation data
menuitemradio
  • checked
  • disabled
checkable, name from child content or title attribute   Need testing validation data Need testing validation data Need testing validation data
option
  • selected=true|false (no selected attribute indicates not selectable)
  • checked=true|false (no checked attribute indicates not checkable)
  • disabled
name from child content or title attribute Mozilla.org listbox no Window-Eyes 5.5+, JAWS 7.1+ Window-Eyes 5.5+, JAWS 7.1+, Orca 2.20+
presentation   These items are automatically removed from the accessibility hierarchy. When put on a table, all table related descendants are also removed from the accessibility hierarchy.   All which use accessibility APIs like MSAA or ATK, but not DOM-based ATs
E.g., works with Window-Eyes 5.5+, JAWS 7.0+, ZoomText 9.1+, Orca 2.20+, but not Fire Vox
progressbar
  • disabled
  • valuenow="#"|"unknown"
  • valuemin="#"
  • valuemax="#"
name from title attribute Mozilla.org progress bar Window-eyes 5.5+, JAWS 7.1+ Window-eyes 5.5+, JAWS 7.1+, Orca 2.20+
radio
  • checked
  • disabled
name from child content or title attribute mock radio buttons ATRC radio buttons (namespaced ARIA only), UIUC radio buttons Window-eyes 5.5+, JAWS 7.1+ Window-eyes 5.5+, JAWS 7.1+, Orca 2.20+
radiogroup
  • disabled
  • invalid
  • required
name from title attribute UIUC radio buttons Window-eyes 5.5+, JAWS 7.1+ Window-eyes 5.5+, JAWS 7.1+, Orca 2.20+
region       Exposed, but no special AT support
row
  • disabled
  • selected=true|false (no selected attribute indicates not selectable)
  • checked=true|false|mixed (no checked attribute indicates not checkable)
  • expanded=true|false (no expanded attribute indicates not expandable)
name from child content or title attribute None None WIP in Firefox 3
rowheader
  • disabled
  • selected=true|false (no selected attribute indicates not selectable)
  • readonly
name from child content or title attribute Mozilla.org grid (spreadsheet) and menubar Window-Eyes 5.5+, JAWS 7.1+ Window-Eyes 5.5+, JAWS 7.1+, Orca 2.20+
separator       need testing verification data
slider
  • disabled
  • invalid
  • readonly
  • required
  • valuenow="#"
  • valuemin="#"
  • valuemax="#"
name from title attribute Mozilla.org plain slider, Mozilla.org graphical slider, UIUC slider Window-Eyes 5.5+, JAWS 7.1+ (arrow navigation broken in JAWS 8.0) Window-Eyes 5.5+, Orca 2.20+. JAWS 7.1+ (arrow navigation broken in JAWS 8.0)
spinbutton
  • disabled
  • invalid
  • readonly
  • required
  • valuenow="#"
  • valuemin="#"
  • valuemax="#"
name from title attribute Dojo spinner   Orca 2.20+
tab disabled name from child content or title attribute Mozilla.org tab panel, UIUC tab panel Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.21.5+
tablist     Mozilla.org tab panel, UIUC tab panel Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.21.5+
tabpanel     Mozilla.org tab panel, UIUC tab panel Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.21.5+
textbox
  • disabled
  • readonly
  • multiline
name from title attribute UIUC textfield Not supported Not supported Window-Eyes 5.5+, JAWS 7.0+
toolbar disabled     Exposed, but not clear whether AT's provide special support for it or even need it
tooltip   Mozilla.org tooltip      
tree
  • disabled
  • multiselectable
  • readonly
name from title attribute Mozilla.org tree, UIUC tree Windows-Eyes 5.5+, JAWS 7.0 Windows-Eyes 5.5+, JAWS 7.0, Orca 2.20+
treegrid
  • disabled
  • multiselectable
  • readonly
name from title attribute No No Not supported, WIP in Firefox
treeitem
  • disabled
  • selected=true|false (no selected attribute indicates not selectable)
  • checked=true|false|mixed (no checked attribute indicates not checkable)
  • expanded=true|false (no expanded attribute indicates not expandable)
name from child content or title attribute Mozilla.org tree, UIUC tree Windows-Eyes 5.5+, JAWS 7.0+, but no checked=mixed support Windows-Eyes 5.5+, JAWS 7.0 Windows-Eyes 5.5+, JAWS 7.0, Orca 2.20+

† all elements allow universal properties, which are marked with "all elements" in the applicability column in the property table below.

[edit] Landmark Roles from XHTML role attribute module

The XHTML role attribute module defines the following roles: banner, contentinfo, definition, main, navigation, note, search, secondary, seealso

In XHTML, these landmark roles can be used without the "wairole:" prefix, e.g. <div role="main">. Ideally screen readers will provide navigation mechanisms to get to these roles, or automatically start the user user at the main content. Screen magnifiers and cell phones could also default to the main content, or provide special highlighting or navigation mechanisms. However, while these roles are exposed via MSAA string roles, no special support is known to currently exist in assistive technologies.

[edit] Supported properties

Property name Applicability Samples Firefox 1.5 support Firefox 2 support Firefox 3 test build support
aria-activedescendant="[id]" All elements Mozilla.org Listbox none none Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
aria-atomic="true" All elements Fire Vox 2.7+ Fire Vox 2.7+ Fire Vox 2.7+
Also exposed via accessibility API's but not yet used by general purpose AT's
aria-busy="true" or "false" or "error" All elements Not implemented Not implemented
aria-channel="main" (default) or "notify" All elements Not implemented Not implemented Not implemented
aria-checked="true"
aria-checked="false" (means checkable but not checked)
roles: checkbox, menuitem, menuitemcheckbox, menuitemradio, listitem, option, radio, treeitem Mozilla.org checkbox,

UIUC checkbox

Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
aria-checked="mixed" (means checkable but indeterminate) roles: checkbox, menuitem, treeitem Mozilla.org checkbox need testing verification data need testing verification data need testing verification data
aria-controls=IDLIST All elements Fire Vox 2.7+
Also exposed via accessibility API's but not yet used by general purpose AT's
Fire Vox 2.7+
Also exposed via accessibility API's but not yet used by general purpose AT's
Fire Vox 2.7+
Also exposed via accessibility API's but not yet used by general purpose AT's
aria-datatype="xsd:DATATYPE" All elements no no Exposed, but no AT support
aria-describedby=IDLIST All elements Mozilla.org button with aria-describedby

Live region with aria-describedby

Window-Eyes 5.5+ Window-Eyes 5.5+ Window-Eyes 5.5+, Orca 2.20+
aria-disabled="true" roles: button, checkbox, columnheader, combobox, grid, gridcell, link, listbox, menu, menubar, menuitem, menuitemcheckbox, menuitemradio, option, progressbar, radio, radiogroup, row, rowheader, slider, spinbutton, tab, textbox, toolbar, tree, treegrid, treeitem Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+ (unless reference points to a span)
aria-dropeffect="copy" or "move" or "reference" or "none" All elements Not implemented Not implemented Not implemented
aria-expanded="true" roles: treeitem, region, (combobox?) Mozilla.org tree,

UIUC tree

Orca 2.20+
aria-flowto=IDLIST All elements Exposed, but no AT support Exposed, but no AT support Exposed, but no AT support
aria-grab= "true" or "false" or "supported" All elements Not implemented Not implemented Not implemented
aria-haspopup="true" All elements Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
aria-hidden="true" All elements Works if element is also styled to display: none Works if element is also styled to display: none Works if element is also styled to display: none
aria-invalid="true" All elements ATRC alert,

Mozilla.org checkbox

Window-Eyes 5.5+ Window-Eyes 5.5+ Window-Eyes 5.5+
aria-labelledby="[IDLIST]" All elements aria-labelledby=IDLIST Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
aria-level=POSITIVE_NUMBER All elements, especially useful on treeitem no no Works for tree views only, Window-Eyes 5.5+ and JAWS 7.0+
aria-live=POLITENESS All elements Fire Vox 2.7+ Fire Vox 2.7+ Fire Vox 2.7+
Also exposed via accessibility API's but not yet used by general purpose AT's
aria-multiselectable="true" roles: grid, list, tree UIUC grid not supported not supported need testing verification data
aria-owns All elements no no no
aria-pressed="true" roles: button UIUC button need testing verification data need testing verification data Orca 2.20+
aria-posinset=POSITIVE_NUMBER (usually together with aria-setsize, and aria-level if on a treeitem) All elements, especially useful on option, listitem, treeitem. mock radio buttons (namespaced/xhtml/FF2 only) no no Works for option, listitem and treeitem only, in Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
aria-readonly="true" roles: checkbox, columnheader grid, gridcell, list, rowheader, spinbutton, textarea, textfield Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
aria-relevant=RELEVANCE_LIST All elements Fire Vox 2.7+ Fire Vox 2.7+ Fire Vox 2.7+
Also exposed via accessibility API's but not yet used by general purpose AT's
role="[rolename]" All elements See role table above See role table above See role table above See role table above
aria-required="true" All elements Mozilla.org checkbox Window-Eyes 5.5+ Window-Eyes 5.5+ Window-Eyes 5.5+
selected="true"
selected="false" (means selectable but not selected)
roles: columnheader, gridcell, listitem, option, rowheader UIUC grid need testing verification data need testing verification data need testing verification data
aria-setsize=POSITIVE_NUMBER (usually together with posinset, and aria-level if on a treeitem)) All elements, especially useful on option, listitem, treeitem mock radio buttons (namespaced/xhtml/FF2 only) no no Works for option, listitem and treeitem only, in Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
aria-sort=SORT_TYPE
All elements no no Exposed via accessibility API's but not yet used by general purpose AT's
tabindex All HTML elements All AT's, supported in IE 5+ as well All AT's, supported in IE 5+ as well All AT's, supported in IE 5+ as well
valuenow="#"
valuemin="#"
valuemax="#"
roles: progressbar, slider, spinbutton Mozilla.org plain slider Mozilla.org graphical slider Mozilla.org plain progress bar Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+ Window-Eyes 5.5+, JAWS 7.0+, Orca 2.20+
valuenow not set (for indeterminate value) roles: progressbar need testing verification data need testing verification data need testing verification data

[edit] Live regions

Some web pages have live regions which can updated based on user actions or real world events. An example of changes based on user actions is the preferences page for this wiki. Examples of changes based on real-world events include chat regions, live game statistics or live financial information.

Screen reader accessibility for live regions is currently problematic. If a screen reader were to read all live changes on a page, it would be annoying to the user. If a screen reader were to read none of them, the user could miss vital information.

A solution is being developed via ARIA, where web authors can specify what live regions there are, as well as additional useful information about the live region. This will help the screen reader determine what to read and when.

These ARIA properties include aria-live, aria-atomic, aria-relevant, aria-controls, aria-channel, aria-labelledby and aria-describedby. Currently support is being developed in the Fire Vox screen reading extension, in order to help move the standards writing effort forward, to demonstrate the benefits of adopting WAI-ARIA to the web developer community, and to show the screen reader developer community what works as far as an end user experience.

For more information:

  • See a full report on the current state of live region markup development at AJAX:WAI_ARIA_Live_Regions. It also provides links to testcases that work with Fire Vox.
  • Simple and advanced test cases are provided by Charles Chen, the developer of the Fire Vox extension. These examples all work with Fire Vox.
  • Another description of the markup is provided at ARIA live region article on Juicy Studio, by Gez Lemon.

It is not expected that live regions will be supported in all-purpose screen readers until the Firefox 3 timeframe.

[edit] Standards development for ARIA

Inside the W3C's Web Accessibility Initiative is the Protocols and Formats Working Group (PFWG). This group has largely been focusing on what they call the Dynamic Web Content Accessibility Work roadmap, which is both a short term effort of defining basic roles and properties as well as a long term effort of filling in every important gap.

[edit] Open Bugs in Firefox

Here is the complete ARIA bug list for Firefox. You can track progress of Firefox's ARIA support there.

[edit] Future of ARIA

Additional ARIA support is being planned for future releases. This work is dependent on getting a relatively stable standard from the W3C PF group. These changes include support for allowing authors to define new roles via inheritance from known roles, support for describable actions, specifying custom relationships between elements, and semantic access keys that work around today's keyboard conflicts between the browser and a web page's keyboard accelerators.

[edit] ARIA IRC channel and mailing list

Please join the #wai-aria channel (irc.w3.org:6665) for public discussions about WAI-ARIA, Members should keep discussion of internal drafts on #pf.

The mailing list for public dicussions is wai-xtech. People who want to participate in wai-xtech should email the PFWG Chair (wai-pf-call@w3.org) to request a subscription.