ARIA Concepts Derived from or Related to XForms

Introduction:

Accessible Rich Internet Applications (ARIA) is a means of expressing
Roles, States and Properties for both declarative markup languages, as
well as for enabling access to javascripted widgets and embedded objects
which have hitherto formed perceptual black holes for users who either 
can not see or who cannot physically move an input device to manipulate 
the object; those who cannot understand how the elements of the component 
fit together; those who cannot ascertain the objective or target of the 
scripted widget without the aid of assistive technology (AT).

Many of the basic concepts underlying ARIA are derived from or are 
related to concepts pioneered and specified by the XForms WG.  This 
document is an attempt to list all of the ARIA concepts that are either
derived from or related to XForms constructs.

(Note: All of the excerpted text which follows is taken from the 5 August
2008 Editor's Draft of ARIA 1.0 (http://www.w3.org/WAI/PF/group/aria/)


PART ONE: ARIA Roles

1.1. ARIA Role: input
* definition: Generic type for widgets for which users can input a value.
* Related Concepts: XForms input


1.2. ARIA Role: listbox
* definition: A widget that allows the user to select one or more items 
  from a list of choices. Items within the list are static and may 
contain 
  images. List boxes contain children whose role is option. Instances of 
  this role MUST manage focus of descendants, as described in Managing 
  Focus. Although listbox inherits the expanded state, if there is a use 
  case to use that state, authors should consider using a combobox 
  instead.
* Related Concepts: XForms select


1.3. ARIA Role: combobox
* definition: Combobox is a presentation of a select, where users can 
  type to select an item. Combobox is the combined presentation of a 
  single line textbox with a drop down select widget. The combobox may 
  be editable. Typically editable combo boxes are used for autocomplete 
  behavior, and the autocomplete property would be used on the child 
  textbox.

  NOTE: In XForms the same select can have one of 3 appearances: 
  combo-box, drop-down box, or group of radio-buttons. Many browsers (if 
  not all of them) allow users to type in a drop-down select as well. 
  This specification does not constrain the presentation of the combobox.

  Instances of this role MUST manage focus of descendants, as described
  in Managing Focus. []

* Related Concepts: XForms select, HTML select


1.4. ARIA Role: option
* definition: A selectable item in a list represented by a select. An 
  option MUST appear inside an element with select role.
* Base Concept: HTML option
* Related Concepts: aria-listitem, XForms: item


1.5. ARIA Role: textbox
* definition: Inputs that allow free-form text as their value. If the 
  multiline property is true, the widget accepts line breaks within the 
  input, as in a HTML textarea. Otherwise this is a simple text box.

  Intended use is in languages that do not have a text input object
  (such as SVG), or cases in which an element with different semantics
  is repurposed as an input box. Another use is for a rich text edit
  textbox, or one that validates input as users type (perhaps marking
  specific subregions with errors with the invalid state ). Content
  authors MAY also use this role when additional states or properties
  are applied to a standard text input widget. This is to indicate to
  the user agent that it must process additional states and properties
  such as invalid and required.

* Related Concepts: XForms input; HTML textarea


1.6. ARIA Role: button

* definition: Allows for user-triggered actions. Buttons are mostly used 
  for discrete, atomic actions. Standardizing the appearance of buttons 
  enhances recognition as buttons and arraying them compactly in 
toolbars, 
  for example.

  Buttons support the optional state pressed. Buttons with a non-empty
  pressed state are toggle buttons. When pressed is "true" the button is
  depressed, when pressed is "false" it is not depressed. If the state
  is not present, the button is a simple command button.

* Base Concept: HTML button
* Related Concepts: HTML link, XForms trigger


1.7. ARIA Role: menu

* definition: Offers a list of choices to the user.

  A menu is often a list of links to important sections of a document or
  a site. The menu role is appropriate when the list of links is
  presented in a manner similar to a menu on a desktop application.

  Instances of this role MUST manage focus of descendants, as described
  in Managing Focus.

* Related Concepts: DTB sidebar; XForms select; JAPI MENU


1.8. ARIA Role: listitem

* definition: A single item in a list.
* Base Concept: HTML li
* Related Concepts: XForms item
* Parent Element: list
* Supported States and Properties:
    + level
    + posinset
    + setsize


1.9. ARIA Role: alert

* definition: A message with important information.

  Alerts are used to convey messages to alert the user. In the case of
  audio warnings this is an accessible alternative for a hearing
  impaired user. The alert role goes on the container of the subtree
  containing the alert message. Alerts are specialized forms of the
  status role, which should be processed as an atomic live region.

  Alerts do not require user input and therefore should not receive
  focus. Since alerts do not receive focus users SHOULD NOT be required
  to close an alert. The user agent MAY fire an accessibility alert
  event, when the alert is created, provided one is specified by the
  intended accessibility API. If an alert requires focus to close the
  alert, then an alertdialog SHOULD be used instead.

* Related Concepts: XForms alert
* Inherited States and Properties:
    + expanded
    + Global States


1.10. ARIA Role: alertdialog

* definition: A separate window (may be simulated) with an alert, where 
  initial focus goes to the window or a widget within it.

  Alert dialogs are used to convey messages to alert the user. The
  alertdialog role goes on the container of the subtree containing the
  alert message.

  Unlike alert, alertdialog can receive a response from the user, such
  as to confirm that the user understands the alert being generated.
  When the alert dialog is displayed, authors MUST set focus to an
  active element within the alert dialog, such as a form edit field or
  an ok pushbutton. The user agent MAY fire an accessibility alert
  event, when the alert is created, provided one is specified by the
  intended accessibility API.

* Related Concepts: XForms alert
* Inherited States and Properties:
     + expanded
     + Global States


PART 2: ARIA Properties

2.1 ARIA Property: autocomplete

* definition: Indicates whether user input completion suggestions are 
  provided.

  For a textbox with autocomplete="inline" or autocomplete="both", the
  completion text should be selected and come after the caret. The
  haspopup property can be used in conjunction with this to indicate
  that a popup containing choices appears, notwithstanding the fact that
  it is a simple text box.

  For an element which already has a drop-down (i.e., a combobox), it is
  assumed that the dropdown behavior is still present. This means that
  if autocomplete is true, haspopup should also be true on a combobox.

* Related Concepts: XForms selection attribute in select
* Used in Roles: textbox
* Value: NMTOKEN


2.2 ARIA State: invalid

* definition: Indicates that data the user has input fails rules 
  established by the application.

  If the value is computed to be invalid or out-of-range, this value
  should be set to true. User agents SHOULD inform the user of the
  error. Applications should provide suggestions for correction where
  they are known. User agents may refuse to submit the form as long as
  there is a widget for which invalid is true.

  When the user attempts submit data involving a field for which
  required is true, the application may use the invalid property to
  signal there is an error. However, the invalid property should not be
  set on required widgets simply because the user has not yet input data
  but has not not attempted to submit it.

  For future expansion, the invalid state is an enumerated type. Any
  value not recognized in the list of allowed values must be treated as
  if the value "true" had been provided. The default value, however, is
  still "false". If the state is not present, its value is "false", or
  its value is the zero length string (it is present with a blank
  value), this default applies.

  The invalid property applies only to the element on which it is
  applied. The state of being invalid does not propogate either to
  descendant elements nor to ancestor elements.

* Related Concepts: XForms 'invalid' event
  http://www.w3.org/TR/2006/REC-xforms-20060314/slice4.html#evt-revalidate

  Note: This state is true if a form field is required but empty. 
However, 
  XForms's valid property would be set to false.

* Used in Roles: All elements of the base markup
* Value: NMTOKEN
* Values:
   + true: The value entered by the user has failed automated validation.
   + false: There are no detected errors in the value.
   + spelling: A spelling error was detected.
   + grammar:  A grammatical error was detected.


2.3 ARIA Property: readonly

   Indicates that the widget is not editable.

   This means the user can read but not set the value of the widget.
   Readonly objects are relevant to the user and applications must not
   restrict navigation to focusable descendants. Other actions such as
   copying the value of the widget are also supported. Todo: we might
   want to explore this a bit more. Also note that disabled is more
   likley to change than readonly, hence is a state; explain?This is in
   contrast to disabled objects for which applications might choose not
   to allow users to navigate to descendants.

   Examples include:
     * A form element which represents a constant.
     * Row or column headers in a spreadsheet.
     * The result of a calculation such as a shopping cart total.

* Related Concepts: XForms [XForms] Readonly
* Used in Roles:
    + grid
    + gridcell
    + textbox
* Inherits into Roles:
    + columnheader
    + rowheader
    + treegrid
* Value: boolean


2.4. ARIA Property: valuemax

* definition: Maximum allowed value for a range type of widget.

  A range widget may start with a given value, which can be increased
  until a maximum value, defined by this property, is reached.

  Declaring the valuemax will allow for alternate device to calibrate an
  arrow up effect, validate, or simply let the user know the size of the
  range on offer. If the valuenow has a known maximum and minimum, the
  author SHOULD provide properties for valuemax and valuemin.

* Related Concepts: XForms [XForms] range
* Used in Roles:
    + progressbar
    + range
* Inherits into Roles:
    + slider
    + spinbutton
* Value: decimal



2.5. ARIA Property: valuemin
* definition: Minimum allowed value for a range type of widget.

  A range widget may start with a given value, which can be decreased
  until a minimum value, defined by this property, is reached.

  Declaring the valuemin allows for alternate device to calibrate an
  arrow up effect, validate, or simply let the user know the size of the
  range on offer. If the valuenow has a known maximum and minimum, the
  author SHOULD provide properties for valuemax and valuemin.

 * Related Concepts:    XForms [XForms] range
 * Used in Roles:
    + progressbar
    + range
* Inherits into Roles:
    + slider
    + spinbutton
* Value: decimal


2.6. ARIA Property: valuenow

* definition: The current value of a widget.

  Used, for example, for a range widget such as a slider or progress
  bar, and for a date.

  If the value is not known (as often occurs with progress bars) then
  the valuenow attribute should not be set at all. If the valuenow
  attribute is absent, no information is implied about the current
  value. If the valuenow has a known maximum and minimum, the author
  SHOULD provide properties for valuemax and valuemin.

  The type of valuenow is a number. If the value type of the widget is
  not a number, provide an index value for this field (i.e., a numeric
  value that represents the position of the present value within the set
  of possible values), plus a proper value with the valuetext property.

* Related Concepts: XForms [XForms] range, start
* Used in Roles:
    + progressbar
    + range
* Inherits into Roles:
    + slider
    + spinbutton
* Value: decimal


2.7. ARIA Property: valuetext

* definition: The human readable text equivalent of valuenow for a widget.

  Used, for example, for a range widget such as a slider or progress bar.

  In order for the valuetext property to be set, the valuenow property
  MUST also be set (as often occurs with progress bars). The valuetext
  should be set by authors only when the rendered slider value cannot be
  completely be represented in the form of a number. For example, a
  slider may has rendered values of {"small", "medium", "large", "extra
  large"}. In this instance the values of valuenow range from 0 through
  3, which indicate the position of each value in the value space, but
  the valuetext would be one of the strings: "small", "medium", "large",
  and "extra large". If the valuetext property is absent, the assistive
  technology will rely solely on the valuenow property for the current
  value.

* Related Concepts: XForms [XForms] range, start
* Used in Roles:
    + progressbar
    + range
* Inherits into Roles:
    + slider
    + spinbutton
* Value: string


2.8. ARIA Property: describedby

* definition: Points to an element which describes the object.

  This is very similar to labeling an object with labelledby. A label
  should provide the user with the essence of the what the object does,
  whereas a description is intended to provide additional information
  that some users might need.

* Related Concepts:
     + Hint or Help in XForms [XForms]
     + Label in XForms
     + Label in HTML [HTML]
     + online help
     + HTML table cell headers

  HTML label element, and HTML table cell headers are de facto
  describedby values.

* Used in Roles: All elements of the base markup
* Value: IDREFS


2.9. ARIA Property: labelledby

* definition: Points to the element which labels the current element.

  This is very similar to describing an object with describedby. A label
  should provide the user with the essence of the what the object does,
  whereas a description is intended to provide additional information
  that some users might need.

  Note: the expected spelling of this property in U.S. English would be
  "labeledby". However, the accessibility API features to which this
  property is mapped have established the "labelledby" spelling. This
  property is spelled that way to match the convention and minimize the
  difficulty for developers.

* Related Concepts: A related concept is label in XForms and HTML
* Used in Roles: All elements of the base markup
* Value: IDREFS

-------------------------------------------------------
lex parsimoniae:
  * entia non sunt multiplicanda praeter necessitatem.
-------------------------------------------------------
the law of succinctness:
  * entities should not be multiplied beyond necessity.
-------------------------------------------------------
Gregory J. Rosmaita, oedipus@hicom.net
         Camera Obscura: http://www.hicom.net/~oedipus/
-------------------------------------------------------

Received on Monday, 18 August 2008 22:03:46 UTC