Copyright© W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark document use rules apply.
The attributes defined in this specification provide XML languages with the ability to add extra information about the behavior of an element. States and Adaptable Properties are mapped to accessibility frameworks (such as a screen reader) that use this information to provide alternative access solutions. Similarly state and author properties can be used to dynamically change the rendering of content using different style sheet properties. The result is to provide an interoperable way for associating behaviors with document-level markup.
The PF working group has developed a roadmap on making dynamic web content more accessible to people with disabilities. To assure these technologies will interoperate in a manner that improves accessibility for the widest range of web technologies, the PF wokring group asks for comments and suggestions on how this specification can be improved for use in the technologies that you or your working group are developing. In general we prefer public comments so that all people (including the general public) reviewing the document can be aware of your comments, but you may also send member confidential comments that will be available only to the working group and other W3C members.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications can be found in the W3C technical reports index at http://www.w3.org/TR/. This report has not been published to the W3C technical reports index.
This document is a Draft by the Protocols & Formats Working Group of the Web Accessibility Initiative.
This specification adds semantics to content to improve the accessibility and interoperability of Web Content and Applications. This document and the Role Taxonomy for Accessible Adaptable Applications are the result of the gap analysis of the Dynamic Accessible Web Content Roadmap to enable accessible dynamic Web content and applications.
This document is for review purposes only. The web address, URL and file name of this document will change. The Working Group expects to advance this document to Working Draft and to Recommendation.
Publication as a Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced under the 5 February 2004 W3C Patent Policy. The Working Group maintains a public list of patent disclosures relevant to this document; that page also includes instructions for disclosing [and excluding] a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance with section 6 of the W3C Patent Policy
This section is informative.
States and Adaptable Properties are a simple interoperable way for an author to declare common, important properties of an element that affect and/or describe interaction. The user agent or operating system can then know how to handle the element by mapping the States and Adaptable Properties to an adaptive interface or to the accessibility API of the operating system. For example, alternative input and output technology such as screen readers, speech dictation software and on-screen keyboards need to know the state of an element (such as: if an object is disabled, checked, focused, collapsed, hidden, etc). This specification declares semantics and terms so that the user agent can understand and handle the content correctly, even when these properties are altered dynamically by scripts.For more information see the Dynamic Accessible Web Content Roadmap for the use of roles making dynamically generated content accessible.
This section is informative. This example shows a role being used to make a simple widget known to the user agent, so that the user agent can handle it correctly.
In this example a div has been used in place of a standard form element checkbox. The State and Adaptable Properties of checked has been set to true.
Also note that the XHTML role element informs use agent information that the behavior of the widget is similar to an HTML checkbox. For more information on Roles see the Role Taxonomy for Accessible Adaptable Applications.
<span class="checkbox" id="chbox1" x2:role="wairole:checkbox" aaa:checked="true" tabindex="0"
onkeydown="return checkBoxEvent(event);" onkeyup="return checkBoxEvent(event);" > A checkbox label </span>
Javascripts can then manipulate the widget via the Dom. However, because States and Adaptable Properties are mapped to accessibility platforms and API's, the assistive technology and user agents can understand the widget behavior and respond appropriately.
java script snippet :
if ((event.type == "keyup" && event.button == 0){
// Toggle checkbox
var checkbox = event.target;
if (checkbox.getAttributeNS("http://www.w3.org/2005/07/aaa", "checked") == "true") {
checkbox.removeAttributeNS("http://www.w3.org/2005/07/aaa", "checked");
}
return false; // Don't continue propagating event}
return true; // Browser can still use event
}
This section is informative.
While some terms are defined in place, the following definitions are used throughout this document. Familiarity with the W3C XHTML 1.1 Recommendation [XHTML] an the W3C XML 1.0 Recommendation [XML] is highly recommended.
This section is normative.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
States and Adaptable Properties is not a stand-alone document type. It is intended to be integrated into other host languages such as XHTML. A conforming document is a document that requires only the facilities described as mandatory in this specification and the facilities described as mandatory in its host language. Such a document must meet all the following criteria:
The document must conform to the constraints expressed in Appendix A. DTD Implementation combined with the constraints expressed in its host language implementation.
xmlns declaration for
the author properties namespace. The namespace for States and
Adaptable Properties module is defined to be: http://www.w3.org/2005/07/aaa.
An example start tag of a root element might look like:
<html xmlns="http://www.w3.org/2002/06/xhtml2" xml:lang="en" xmlns:aaa="http://www.w3.org/2005/07/aaa" >
When States and Adaptable Properties are included in a host language, all of the facilities required in this specification must be included in the host language.
A conforming user agent must support all of the features required in this specification in the DOM.
This section is normative.
This specification defines the States and Adaptable Properties module for XHTML.
All examples are informative. Examples in this document that use the namespace prefix "aaa" all assume a validxmlns declaration
xmlns:aaa="http://www.w3.org/2005/07/aaa"
in the document involved.
The remainder of this section describes the elements and attributes in this module, the semantics, and provides an abstract module definition as required in [XHTMLMOD].
Use of XHTML with States and Adaptable Properties (XHTML 1.1 For Accessible Adaptable Applications) requires the following doctype declaration:
<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 For Accessible Adaptable Applications//EN" "http://www.w3.org/2005/07/aaa/xhtml11-aaa.dtd">
Attributes for States and Adaptable Properties should be used with prefix
"aaa".
For example:
<?xml version="1.0" encoding="UTF-8"?>
<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 For Accessible Adaptable Applications//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>DHTML Checkbox</title>
</head>
<body>
<p>Here's a checkbox that you can click on.</p>
<div class="checkbox " id=" chbox1" aaa:required="true" aaa:readonly="true " aaa:random="sometext " onkeydown="return checkBoxEvent(event);" onclick="return checkBoxEvent(event);" >
Sign me up for weekly rdf newsletter :)
</div>
</body>
</html>
You can change the default prefix by extending the DOCTYPE of your XHTML
document.
For example:
<!DOCTYPE html PUBLIC "-//W3C//ELEMENTS DTD XHTML 1.1 For Accessible Adaptable Applications//EN"
"http://www.w3.org/2005/07/aaa/xhtml11-aaa-base.dtd" [
<!ENTITY % aaa.prefixed "INCLUDE">
<!ENTITY % aaa.prefix "state">
]>
Tabindex is not a state and has not been added to the basic namespace. However to help the accessibility of accessible XHTML applications Tabindex has been added to the tags div, span, p, td, th and li in the extended XHTML Doctype. Tabindex should not be used with a prefix.
Prefixes can sometimes be dropped when using XHTML 1.1 For Accessible
Adaptable Applications. For example:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//ELEMENTS DTD XHTML 1.1 For Accessible
Adaptable Applications//EN"
"http://www.w3.org/2005/07/aaa/xhtml11-aaa-base.dtd"> <html
xmlns="http://www.w3.org/1999/xhtml " xml:lang="en ">
<head>
<title>DHTML Checkbox</title >
</head>
<body>
<p >Here's a checkbox that you can click on.</ p>
<div class="checkbox " id="chbox1 " required="true" readonly="true "
random="sometext " onkeydown="return checkBoxEvent(event);" onclick="return
checkBoxEvent(event);">
Sign me up for weekly rdf newsletter :)
</div>
</body>
</html>
However, this is not advisable because of name space conflict. XHTML 1.1 For Accessible Adaptable Applications extends already existing attributes such as readonly. These attributes therefore require prefixing. We therefore recommend always using the default "aaa" prefix.
The list of conflicts are:
States and Adaptable Properties can also be used with other XML languages using the following namespace :
xmlns:aaa="http://www.w3.org/2005/07/aaa"
The following example demonstrates using States and Adaptable Properties
with SVG:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat-20030114.dtd">
<svg xmlns="http://www.w3.org/2000/svg " xmlns:aaa="http://www.w3.org/2005/07/aaa " width="100% " height="100% ">
<desc>
Example of using state-attributes from Accessible Adaptable Applications Namespace:
</desc>
<!-- an expanded group of rectangles -->
<g aaa:expanded="true ">
<!-- this rectangle is zoomed -->
aaa:zoom="150 " x="1cm " y="3cm " width="1cm " height="1cm " />
<rect x="3cm " y="3cm " width="1cm " height="1cm " />
</g>
</svg>
The States and Adaptable Properties Module supports the following
attributes:
| State | Value | Description | Base and Related Concepts |
|---|---|---|---|
| checked | (true | false) | Is set, usually, answers to Boolean true state for 2-state widgets. For all non-HTML checkboxes, this state is determined from the value property. If the value is true for the designated roles the corresponding checked state must be set to true. Otherwise, the checked state is determined from the form input control | |
| iconed | (true | false) | Indicates that the widget has in icon form | |
| disabled | (true | false) | Indicates that the widget is present, but is not allowed for user
actions - disabled elements cannot have focus.
Should also remove element from tab order and change appearance (grayed out, etc.), and prevent it from being interacted with. |
|
| readonly | (true | false) | Indicates that the widget is present, but is not allowed for user
actions - However readonly elements can have focus.
The user agent should not allow value to be changed in the case that this is set to true on an element. |
related concept from XFORMS |
| multiselectable | (true | false) | Indicates that user may select more than one item from the current list. | |
| domactive | (true | false) | The DOM activate event occurs when an element is activated, for instance, through a mouse-click or a key-press | SVG DOM active |
| zoom | CDATA | Defines the zoom of the element (e.g. 150%). | SVG |
| expanded | (true | false) | Indicates that an expandable/collapsible group of elements is currently expanded, i.e. all its child elements are shown | DOM ? |
| selected | (true | false) | Indicates that a selectable element is actually selected | domActive |
| pressed | (true | false) | Indicates that the button is pressed down
Q: Do we want it? Is it the same as selected? |
selected |
| important | (true | false) | Indicates an important widget. | XHTML roles Main / secondary |
| required | (true | false) | Indicates that some user-input is required before submission. | |
| haseffect | CDATA | Special effects working on a widget, such as fadeout | |
| valueNew | CDATA | The (default) value of a widget. | XFORMS Range start |
| valuemax | CDATA | Maximum allowed value for a Range type of widget | XFORMS range |
| valuemin | CDATA | Minimum allowed value for a Range type of widget | XFORMS range |
| step | CDATA | Minimal value by which a Range element value may be increased or decreased | XFORMS Range step |
| invalid | (true | false) | Indicates that the element's value is currently invalid, which prevents the form from being submitted. If the state is computed to be invalid, out-of-range, or required this value should be returned as true. | |
| describedby | IDREF | Points to element which describes the widget | |
| labeledby | IDREF | Points to element which labels the widget | |
| hasparent | IDREF | Points to parent element such as the menu item of which this is a pop up menu | baseConcept: DC:Source, DC:isPartOf |
| haschild | IDREF | Points to the child | |
| haspopup | CDATA (Q: what values do we want) | Type of has child (Q: do we need it? ) | haschild |
| alternatestyle | CDATA | Lists alternate styles for the element | |
| tabindex | Number (Q: what values do we want) | The ordinal number of the element on the screen/page Note: Tabindex has not been added to the basic namespace but only to div, span, p, td, th and li tags in the extended XHTML Doctype. Tabindex should not be used with a prefix. | |
| flowto | IDREF | The ID of the next element in the default page reading order | |
| flowfrom | IDREF | The ID of the previous element in the default page reading order | |
| controls | IDREF | The ID of the element that is controlled by this element | XML events object |
| controlledby | IDREF | The ID of the element that controls this element | XML events |
| subpageof | CDATA (Q: what values do we want) | Points to the parent page of the page Q: do we need it? | hasParent |
This section is informative. XForms is designed based on a model view controller architecture. Data model and styling are separated from the actual form elements. This provides for a much more flexible forms model. The rendering is up to the user agent and styling. If the author knows the type of widget that will be generated they may simply add role information to the element or this information could be provided by the User Agent depending on the deployment. The appearance may be suggested as parameters to the form elements such as in the case of a select1, which may be used to represent a radio button. In these situations it is less important to know what the rendering of the element is as the tag defines the semantics. Note: Invalid is a managed state in XFORMS. However in most other languages (such as HTML forms) it is not managed.
Note that this module defines the parameter entity
aaa.attrs.qname;. This entity is intended to be used in the
attribute lists of elements in any host language that permits the use of AAA
attributes on elements in its own namespace. In this case the Host Language
driver should set a parameter entity %aaa.prefixed; to
INCLUDE. The default prefix to be used is aaa:.
<!-- ...................................................................... -->
<!-- aaa-qname Module ................................................... -->
<!-- file: aaa-qname.mod
PUBLIC "-//W3C//DTD XHTML 1.1 For Accessible Adaptable Applications Namespace//EN"
SYSTEM "http://www.w3.org/2005/07/aaa/aaa-qname.mod">
xmlns:aaa="http://www.w3.org/2005/07/aaa "
...................................................................... -->
<!ENTITY % XHTML.version
"-//W3C//DTD XHTML 1.1 For Accessible Adaptable Applications Namespace//EN" >
<!-- 1. Namespace declarations ::::::::::::::::::::::::::::: -->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % aaa.prefixed "%NS.prefixed;" >
<!-- Declare the actual namespace of this module -->
<!ENTITY % aaa.xmlns "http://www.w3.org/2005/07/aaa" >
<!ENTITY % aaa.prefix "aaa" >
<![%aaa.prefixed;[
<!ENTITY % aaa.xmlns.extra.attrib "" >
]]>
<!ENTITY % aaa.xmlns.extra.attrib
"" >
<![%aaa.prefixed;[
<!ENTITY % aaa.pfx "%aaa.prefix;:" >
<!ENTITY % aaa.xmlns.attrib
"xmlns:%aaa.prefix; CDATA #FIXED '%aaa.xmlns;'
%aaa.xmlns.extra.attrib;"
>
]]>
<!ENTITY % aaa.pfx "" >
<!ENTITY % aaa.xmlns.attrib
"xmlns CDATA #FIXED '%aaa.xmlns;'
%aaa.xmlns.extra.attrib;"
>
<![%NS.prefixed;[
<!ENTITY % XHTML.xmlns.extra.attrib
"%aaa.xmlns.attrib;" >
]]>
<!-- 2. XML Qualified Names for AAA ::::::::::::::::::::::::::::: -->
<!-- This section declares parameter entities used to provide
namespace-qualified names for all element types.
-->
<!ENTITY % xhtml-datatypes.mod
PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod" >
%xhtml-datatypes.mod;
<!-- core attributes to add to all elements; -->
<!-- states -->
<!ENTITY % aaa.checked.qname "%aaa.pfx;checked" >
<!ENTITY % aaa.disabled.qname "%aaa.pfx;disabled" >
<!ENTITY % aaa.expanded.qname "%aaa.pfx;expanded" >
<!ENTITY % aaa.iconed.qname "%aaa.pfx;iconed" >
<!ENTITY % aaa.multiselectable.qname "%aaa.pfx;multiselectable" >
<!ENTITY % aaa.pressed.qname "%aaa.pfx;pressed" >
<!ENTITY % aaa.readonly.qname "%aaa.pfx;readonly" >
<!ENTITY % aaa.selectable.qname "%aaa.pfx;selectable" >
<!ENTITY % aaa.selected.qname "%aaa.pfx;selected" >
<!-- properties -->
<!ENTITY % aaa.alternatestyle.qname "%aaa.pfx;alternatestyle" >
<!ENTITY % aaa.controls.qname "%aaa.pfx;controls" >
<!ENTITY % aaa.controlledby.qname "%aaa.pfx;controlledby" >
<!ENTITY % aaa.describedby.qname "%aaa.pfx;describedby" >
<!ENTITY % aaa.domactive.qname "%aaa.pfx;domactive" >
<!ENTITY % aaa.flowfrom.qname "%aaa.pfx;flowfrom" >
<!ENTITY % aaa.flowto.qname "%aaa.pfx;flowto" >
<!ENTITY % aaa.haschild.qname "%aaa.pfx;haschild" >
<!ENTITY % aaa.haseffect.qname "%aaa.pfx;haseffect" >
<!ENTITY % aaa.hasparent.qname "%aaa.pfx;hasparent" >
<!ENTITY % aaa.haspopup.qname "%aaa.pfx;haspopup" >
<!ENTITY % aaa.invalid.qname "%aaa.pfx;invalid" >
<!ENTITY % aaa.important.qname "%aaa.pfx;important" >
<!ENTITY % aaa.labeledby.qname "%aaa.pfx;labeledby" >
<!ENTITY % aaa.readonly.qname "%aaa.pfx;readonly" >
<!ENTITY % aaa.required.qname "%aaa.pfx;required" >
<!ENTITY % aaa.state.qname "%aaa.pfx;state" >
<!ENTITY % aaa.step.qname "%aaa.pfx;step" >
<!ENTITY % aaa.subpageof.qname "%aaa.pfx;subpageof" >
<!ENTITY % aaa.value.qname "%aaa.pfx;value" >
<!ENTITY % aaa.valuemax.qname "%aaa.pfx;valuemax" >
<!ENTITY % aaa.valuemin.qname "%aaa.pfx;valuemin" >
<!-- tabindex -->
<!ENTITY % aaa.tabindex.qname "tabindex" >
<!-- The following defines a PE for use in the attribute sets of elements in
other namespaces that want to incorporate the XML Role attributes. Note
that in this case the XML-ROLES.pfx should always be defined. -->
<!ENTITY % aaa.states.qname
"%aaa.checked.qname; (true | false) #IMPLIED
%aaa.disabled.qname; (true | false) #IMPLIED
%aaa.expanded.qname; (true | false) #IMPLIED
%aaa.iconed.qname; (true | false) #IMPLIED
%aaa.multiselectable.qname; (true | false) #IMPLIED
%aaa.pressed.qname; (true | false) #IMPLIED
%aaa.readonly.qname; (true | false) #IMPLIED
%aaa.selectable.qname; (true | false) #IMPLIED
%aaa.selected.qname; (true | false) #IMPLIED"
>
<!ENTITY % aaa.props.qname
"%aaa.alternatestyle.qname; CDATA #IMPLIED
%aaa.controls.qname; IDREF #IMPLIED
%aaa.controlledby.qname; IDREF #IMPLIED
%aaa.describedby.qname; IDREF #IMPLIED
%aaa.domactive.qname; (true | false) #IMPLIED
%aaa.flowfrom.qname; IDREF #IMPLIED
%aaa.flowto.qname; IDREF #IMPLIED
%aaa.haschild.qname; IDREF #IMPLIED
%aaa.haseffect.qname; CDATA #IMPLIED
%aaa.hasparent.qname; IDREF #IMPLIED
%aaa.haspopup.qname; CDATA #IMPLIED
%aaa.invalid.qname; (true | false) #IMPLIED
%aaa.important.qname; (true | false) #IMPLIED
%aaa.labeledby.qname; IDREF #IMPLIED
%aaa.required.qname; (true | false) #IMPLIED
%aaa.state.qname; CDATA #IMPLIED
%aaa.step.qname; CDATA #IMPLIED
%aaa.subpageof.qname; CDATA #IMPLIED
%aaa.value.qname; CDATA #IMPLIED
%aaa.valuemax.qname; CDATA #IMPLIED
%aaa.valuemin.qname; CDATA #IMPLIED"
>
<!ENTITY % aaa.attrs.qname
"%aaa.states.qname;
%aaa.props.qname;"
>
<!ENTITY % aaa.extra.attrs.qname
"%aaa.tabindex.qname; %Number.datatype; #IMPLIED"
>
<!ENTITY % aaa-qname.module "IGNORE" >
<!-- End aaa-qname Module ................................................... -->
This DTD extends XHTML 1.1 and adds the States and Adaptable Property attributes to all its elements.
The attribute tabindex is added to elements p,
div, span, th, td and
li
<!-- ELEMENTS DTD XHTML 1.1 For Accessible Adaptable Applications -->
<!-- File: xhtml11-aaa-base.dtd
Copyright (c) 2005, Unbounded Access,
All Rights Reserved.
This DTD module is identified by the PUBLIC and SYSTEM identifiers:
PUBLIC "-//W3C//ELEMENTS DTD XHTML 1.1 For Accessible Adaptable Applications//EN"
SYSTEM "http://www.w3.org/2005/07/aaa/xhtml11-aaa-base.dtd"
xmlns:aaa="http://www.w3.org/2005/07/aaa"
The DOCTYPE declaration that should be used is as follows;
<!DOCTYPE html
PUBLIC "-//W3C//ELEMENTS DTD XHTML 1.1 For Accessible Adaptable Applications//EN"
"http://www.w3.org/2005/07/aaa/xhtml11-aaa-base.dtd">
...................................................................... -->
<!ENTITY % XHTML.version
"-//W3C//ELEMENTS DTD XHTML 1.1 For Accessible Adaptable Applications//EN" >
<!ENTITY % aaa-qname.mod
PUBLIC "-//W3C//DTD XHTML 1.1 For Accessible Adaptable Applications Namespace//EN"
"http://www.w3.org/2005/07/aaa/aaa-qname.mod" >
%aaa-qname.mod;
<!-- add AAA attribute set to all XHTML elements -->
<!ENTITY % Common.extra.attrib
"%aaa.attrs.qname;"
>
<!ENTITY % xhtml11.mod
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
%xhtml11.mod;
<!-- add tabindex to text containers -->
<!ATTLIST %div.qname;
%aaa.extra.attrs.qname;
>
<!ATTLIST %span.qname;
%aaa.extra.attrs.qname;
>
<!ATTLIST %p.qname;
%aaa.extra.attrs.qname;
>
<!ATTLIST %th.qname;
%aaa.extra.attrs.qname;
>
<!ATTLIST %td.qname;
%aaa.extra.attrs.qname;
>
<!ATTLIST %li.qname;
%aaa.extra.attrs.qname;
>
<!ENTITY % aaa.prefixed "INCLUDE">
<!-- End xhtml11-aaa-base.dtd -->
This DTD requires the use of the "aaa" prefix.
<!-- DTD XHTML 1.1 For Accessible Adaptable Applications -->
<!-- File: xhtml11-aaa.dtd
Copyright (c) 2005, Unbounded Access,
All Rights Reserved.
This DTD module is identified by the PUBLIC and SYSTEM identifiers:
PUBLIC "-//W3C//DTD XHTML 1.1 For Accessible Adaptable Applications//EN"
SYSTEM "http://www.w3.org/2005/07/aaa/xhtml11-aaa.dtd"
xmlns:aaa="http://www.w3.org/2005/07/aaa"
The DOCTYPE declaration that should be used is as follows;
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1 For Accessible Adaptable Applications//EN"
"http://www.w3.org/2005/07/aaa/xhtml11-aaa.dtd">
...................................................................... -->
<!ENTITY % XHTML.version
"-//W3C//DTD XHTML 1.1 For Accessible Adaptable Applications//EN" >
<!-- Enable prefixing -->
<!ENTITY % aaa.prefixed "INCLUDE">
<!ENTITY % xhtml11-aaa.mod
PUBLIC "-//W3C//ELEMENTS DTD XHTML 1.1 For Accessible Adaptable Applications//EN"
"http://www.w3.org/2005/07/aaa/xhtml11-aaa-base.dtd" >
%xhtml11-aaa.mod;
<!-- End xhtml11-aaa.dtd -->
Managed states are state attributes managed and controlled by the user agent. Often these states have corresponding CSS pseudo classes to reflect necessary style changes. The states in this specification are typically controlled by the author and are not managed (unmanaged) states.
Accessibility API's typically map to both managed and unmanaged states. An example of a managed state would be element focus and hover.
Note: Invalid is a managed state in XFORMS. However in most other languages (such as HTML forms) it is not managed.
This section is informative.
Mapped properties
| States and Adaptable Properties module | User Agent mapping via MSAA | User Agent mapping via ATK |
|---|---|---|
| disabled | MSAA:STATE_SYSTEM_UNAVAILABLE | ATK:ATK_STATE_DISABLED |
| checked | . MSAA: STATE_SYSTEM_CHECKED | ATK: ATK_STATE_CHECKED |
| expanded | If the hidden property is set to true
: MSAA:STATE_SYSTEM_COLLAPSED
If the hidden property is set to false: MSAA:STATE_SYSTEM_EXPANDE |
If the hidden property is set to true : ATK: ATK_STATE_EXPANDABLE
If the hidden property is set to false: ATK:ATK_STATE_EXPANDED |
| haspopup | This state should be mapped to true on
Windows systems when an event handler has a role of pop-up menu.
MSAA: haspopup |
ATK: not necessary in ATK because it has multiple actions with description |
| invalid | MSAA: no mapping
In the case of MSAA the user agent should provide a specialized API to return its value. Alternatively, if the user agent provides a specialized API for XForms it may provide invalid(), outOfRange(), or empty() (returns true when required but not available). This information is computed from the instance data associated with the form element. |
ATK:ATK_STATE_INVALID |
| multiselectable | MSAA:STATE_SYSTEM_EXTSELECTABLE | ATK:ATK_STATE_MULTISELECTABLE |
| pressed | MSAA: STATE_SYSTEM_PRESSED is true when checked. | ATK: ATK_STATE_PRESSED is true when checked |
| readonly | MSAA:STATE_SYSTEM_READONLY | ATK:ATK_STATE_READONLY=inverse of readonly |
| required | MSAA: There is no mapping.
User agent must make available through the DOM or a specialized API. Note: While optional could be combined with required this is kept to be consistent with CSS3 pseudo classes and XForms. |
ATK: There is no mapping. |
| selected | MSAA:STATE_SYSTEM_SELECTED | ATK:ATK_STATE_SELECTED |
| unknown | MSAA:mixed | ATK:indeterminate |
| value | MSAA: should return the value for getValue(). | ATK: should return this as part of of the AccessibleValue structure. |