Interface Accessibility

public interface Accessibility

Accessibility / Section 508 compliance

Smart GWT is a fully accessible technology which fulfills the Section 508 requirements of U.S. government law and similar international standards. Specificallly:

WAI-ARIA support

ARIA is a standard from the WAI (Web Accessibility Institute) that allows modern Ajax applications to add semantic markup to the HTML used to create modern Ajax interfaces to enable screen reader support. This semantic markup allows a screen reader to identify the function and state of complex components such as load-on-demand lists and trees even though they are composed of simple elements such a <div>s.

Note that ARIA support is the correct way to evaluate the accessibility of a web application. Standards which apply to a web site, such as ensuring that all interactive elements are composed of native HTML anchor (<a>) or <form> controls, cannot and should not be applied to a web application. A web application's accessibility must be evaluated in terms of its ARIA support.

By default, Smart GWT components will write out limited ARIA markup sufficient to navigate basic menus and buttons. Full screen reader mode is not enabled by defaut because it has a small performance impact and subtly changes the management of keyboard focus in a way that is slightly worse for unimpaired users.

The limited ARIA support which is enabled by default is intended to allow a screen reader user to navigate to a menu to enable full screen reader support. This is analogous to a partially visually impaired user ariving at a site with normal theming and needing to switch to a high-contrast skin.

To enable full screenReader mode, call isc.setScreenReaderMode before any Smart GWT components are created or drawn. This implies that if an end user dynamically enables full screen reader support, the application page must be reloaded, as an any existing components will not have full ARIA markup.

For an overview of ARIA, see

To completely disable ARIA markup, call isc.setScreenReaderMode(false) before any components are drawn.

Recommended Screen Reader Configuration

The recommended configuration for screen reader use is the most recent available release of Firefox and either the JAWS or NVDA screen reader.

While WAI-ARIA markup is provided for other browsers, support for WAI-ARIA itself is known to be limited in current release versions of IE and other browsers supported by Smart GWT.

Application-level concerns

While Smart GWT enables accessible web applications to be created, it is always possible for an application to violate accessibility standards. The following is a brief and not exhaustive list of concerns for application authors:

Known Screen Reader bugs / quirks

JAWS: By default, JAWS treats a web page as a web document - text interspersed with graphics, links, etc. - and not as an application consisting of form controls, interactive buttons, lists, and so on. To enable application mode in JAWS, it is necessary to add role="application" to the <body> tag. See Freedom Scientific Bulletin 1404 - In ARIA, what is the difference in how JAWS treats role="application" and role="document"?

See Also:
Canvas.setAriaState(java.lang.String, java.lang.Object), Canvas.getAriaRole(), com.smartgwt.client.widgets.Canvas#getAriaState, FormItem.getAriaRole(), com.smartgwt.client.widgets.form.fields.FormItem#getAriaState, ListGrid.getCanTabToHeader(), ListGrid.getScreenReaderCellSeparator(), ListGrid.getScreenReaderRowSeparator(), Img.getAltText()