Accessibility/XForms
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:
- text field - see the docs.
- checkbox - see the docs
- datepicker - see the docs.
- calendar - see the docs.
- days list - see the docs.
- months list - see the docs.
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.