Accessibility/XForms

From MozillaWiki
Jump to navigation Jump to search

<< Back to Accessibility Home Page

Intoduction

Assistive technologies API for XForms is supported starting from Firefox 3 (Gecko 1.9). XForms elements behavior is implemented in accordance with accessible toolkit checklist. This article provides a short documentation how accessibility is handled in Gecko for XForms.

Accessibility properties

This section describes common rules how accessibility properties are formed for forms control 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

children

Mozilla XForms implementation allows form control elements to have child elements. Therefore accessible children are formed from any accessible child elements of form control element and from elements that are introduced by its presentation.

Forms Controls Module

Some of form control elements may be represented in few ways by different widgets. This section lists accessible presentations for form control elements.

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). This element is represented by button.

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.