ARIA support in Opera Presto 2.8

ARIA (Accessible Rich Internet Applications) is a proposal/work in progress. Opera Software participates within this working
group which will ultimately release the ARIA specification. ARIA is recognized and supported by the Opera Presto HTML parser.
Please note that ARIA's capabilities are dependant upon the Opera product invoking them. Other markup language implementations
are experimental at this stage.

Opera Presto supports the HTML implementation of ARIA according to the latest draft. Here is an example:

<div role="checkbox" aria-checked="true" tabindex="0"></div>

Terms employed in the following data table:

Property

Attributes that are essential to the nature of a given object. As such, they are less likely to change than states; a change
of a property may significantly impact the meaning or presentation of an object. Properties mainly provide limitations on
objects from the most general case implied by roles without properties applied.

State

A state is a dynamic property expressing characteristics of an object that may change in response to user action or automated
processes. States do not affect the essential nature of the object, but represent data associated with the object or user
interaction possibilities.

Category

States and properties are categorized as follows:

Widget attributes

These attributes are specific to common user interface elements found on GUI systems or in rich internet applications which
receive user input and process user actions. These attributes are used to support the widget roles. Widget attributes might
be mapped by a user agent to platform accessibility API states, for access by assistive technologies, or they might be accessed
directly from the DOM. User agents MUST provide a way for assistive technologies to be notified when states change, either
through DOM attribute change events or platform accessibility API events.

Live Region attributes

These attributes are specific to live regions in rich internet applications. These attributes may be applied to any element.
The purpose of these attributes is to indicate that content changes may occur without the element having focus, and to provide
assistive technologies with information on how to process those content updates. Some roles specify a default value for
the aria-live attribute specific to that role. An example of a live region is a ticker section that lists updating stock
quotes.

Drag-and-Drop attributes

These attributes indicate information about drag-and-drop interface elements, such as draggable elements and their drop
targets. This information should be rendered visually and provided to assistive technologies through an alternate modality.

Relationship attributes

These attributes indicate relationships or associations between elements which cannot be readily determined from the document
structure.

Role attribute - value(s)

Property/State

Category

Description

Support

aria-activedescendant
- id reference

Property

Relationship

Identifies the currently
active descendant of a
composite widget.

Yes

aria-atomic
- true
- false

Property

Live region

Indicates if the
assistive technologies
should present all or
part of the changed
region to the user
when the region
is updated.

Yes

aria-autocomplete
- inline
- list
- both
- none

Property

Widget

Indicates whether user
input completion
suggestions are provided.

No

aria-busy
- true
- false

State

Live region

Indicates whether a
live region is
currently being updated.

Yes

aria-checked
- true
- false
- mixed
- undefined

State

Widget

Indicates the current
"checked" state of
checkboxes, radio buttons,
and other widgets.

Yes

aria-controls
- multiple refs to id(s)

Property

Relationship

Identifies the element
(or elements) whose
contents or presence
are controlled by the
current element.

Yes

aria-describedby
- multiple refs to id(s)

Property

Relationship

Identifies the element
(or elements) that
describes the object.

Yes

aria-disabled
- true
- false

State

Widget

Indicates that the
element is perceivable
but disabled, so it
is not editable
or otherwise operable.

Yes

aria-dropeffect
- copy
- move
- reference
- execute
- popup
- none

State

Drag-and-Drop

Indicates the effect
of a drag-and-drop
operation when the
dragged object is
released on the drop
target.

Yes

aria-expanded
- true
- false
- undefined

State

Widget

Indicates whether an
expandable/collapsible
group of elements is
currently expanded or
collapsed.

Yes

aria-flowto
- multiple refs to id(s)

Property

Relationship

Identifies the next
element (or elements)
in the recommended
reading order of
content, overriding
the general default
to read in document
source order.

Yes

aria-grabbed
- true
- false
- undefined

State

Drag-and-Drop

Indicates an element's
"grabbed" state in a
drag-and-drop operation.

Yes

aria-haspopup
- true
- false

Property

Widget

Indicates that the
element has a popup
context menu or
sub-level menu.

Yes

aria-hidden
- true
- false

State

Widget

Indicates that the
element is not
visible or perceivable
to any user.

No

aria-invalid
- grammar
- false
- spelling
- true

State

Widget

Indicates the entered
value does not
conform to the
format expected by
the application.

Yes

aria-label
- string

Property

Relationship

Defines a string
value that labels
the current element.

No

aria-labelledby
- multiple refs to id(s)

Property

Relationship

Identifies the element
(or elements) that
labels the current
element.

Yes

aria-level
- integer

Property

Widget

Defines the hierarchical
level of an element
within a structure.

Yes

aria-live
- off
- polite
- assertive

Property

Live region

Indicates that an
element will be
updated, and describes
the types of
updates the user
agents, assistive
technologies, and user
can expect from
the live region.

Yes

aria-multiline
- true
- false

Property

Widget

Indicates whether a
text box accepts
only a single line,
or if it can
accept multiline input.

Yes

aria-multiselectable
- true
- false

Property

Widget

Indicates that the
user may select
more than one item
from the current
selectable descendants.

Yes

aria-owns
- multiple refs to id(s)

Property

Relationship

Identifies an element
(or elements) in order
to define a visual,
functional, or contextual
parent/child relationship
between DOM elements
where the DOM
hierarchy cannot be
used to represent
the relationship.

Yes

aria-posinset
- integer

Property

Relationship

Defines an element's
number or position
in the current set
of list items or
tree items. Not
required if inferred
by the DOM.

Yes

aria-pressed
- true
- false
- mixed
- undefined

State

Widget

Indicates the current
"pressed" state of
toggle buttons.

Yes

aria-readonly
- true
- false

Property

Widget

Indicates that the
element is not
editable, but is
otherwise operable.

Yes

aria-relevant
- additions
- removals
- text
- all
- additions text

Property

Live Region

Indicates the nature
of changes within
a live region.

Yes

aria-required
- true
- false

Property

Widget

Indicates that user
input is required
on the element
before a form
may be submitted.

Yes

aria-selected
- true
- false
- undefined

State

Widget

Indicates the current
"selected" state of
various widgets.

Yes

aria-setsize
- integer

Property

Relationship

Defines the number
of items in the
current set of
list items or
tree items. Not
required if inferred
by the DOM.

Yes

aria-sort
- ascending
- descending
- none
- other

Property

Widget

Indicates if items
in a table or
grid are sorted
in ascending or
descending order.