<< Back to Accessibility Home Page

AT API support for XForms elements

Assistive technologies API for XForms is supported starting from Firefox 3 (Gecko 1.9). This article provides a short documentation how accessibility is handled in Gecko for XForms.

Forms Controls Module

Usually the following rules are applied to forming of accessible properties for form elements.

name

It is formed from value of child XForms label element if the element doesn't have labelledby attribute.

description

It is formed from value of child XForms hint element if the element doesn't have describedby attribute.

state

It is formed as well from model item properties (MIPs) of instance node that XForms element is bound to as from valid/invalid or in-range/out-of-range states of instance node. Instance node states are mapped to accessibility state constants declared in nsIAccessible like it shown below:

  • relevant - STATE_UNAVAILABLE
  • readonly - STATE_READONLY
  • required - STATE_REQUIRED
  • invalid - STATE_INVALID
  • out of range - STATE_INVALID

You will find a list of accessible form control elements below.

input

A key xforms element to show and change the instance data to which it is bound (see the spec, the docs). The follwoing representations input element are accessible:

secret

Used for inputting passwords (see the spec, the docs). This element is represented by password field.

textarea

Serves to show/change multiline text (see the spec, the docs). This element is represented by multiline text field.

output

Serves to show instance data that the element is bound to (see the spec, the docs). It can have the following presentations:

  • text - default representation for data of most types, especially static text.
  • calendar - used for date data types when appearance = 'full'.

upload

Provides a means for the user to select a file (see the spec, the docs).

range

Allows the user to choose a value from within a specific range of values (see the spec, the docs). Currently it is represented by a slider only.

trigger

Allows the user to initiate actions (see the spec, the docs). It can have the following representations:

  • button - default representation.
  • link/clickable text - used when appearance = 'minimal'.

submit

Invokes the submission of the selected instance data to its target destination (see the spec, the docs). It can have the following representations:

  • button - default representation.
  • link/clickable text - used when appearance = 'minimal'.

select

Allows the user to choose one or multiple values from a list of pre-defined values (see the spec, the docs). It can have the following representations:

  • listbox - default representation
  • checkbox group - used when appearance = 'full'

select1

Allows the user to choose a single value from a list of pre-defined values (see the spec, the docs). It can have the following representations:

  • combobox - default representation
  • listbox - used when appearance = 'compact'
  • radio group - used when appearance = 'full'

Additional Elements

These elements may be used as child elements to the form controls described above. Some of these elements are not accessible itself but they makes accessibility properties for XForms elements that hold them.

label

Specifies the label for the xforms control (see the spec, the docs). Every form control other than the output element must contain a label element. The value of label element is used as name of accessible object.

help

Specifies contextual help for the containing form control (see the spec, the docs). The help element has alert role.

hint

Similar to a tooltip (see the spec, the docs). The value of hint element is used as description of accessible object.

alert

This message will be shown when the form control cannot properly bind to instance data or when the instance data value is invalid or out of the specified range of selectable values (see the spec, the docs). The alert element has alert role for both usual and inline alert elements.

message

Used in combination with event listeners to display a message to the user when the specified event occurs (see the spec, the docs). The message element has alert role.