Copyright © 2004 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use, and software licensing rules apply.
W3C roadmap for addressing the accessibility of dynamic web content.
The PF working group has developed this roadmap for making dynamic web content more accessible to people with disabilities. To assure this roadmap and the corresponding technologies produced to support it will interoperate in a manner that improves accessibility for the widest range of web technologies, the PF working group asks for comments and suggestions on how this roadmap 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 is the latest draft by Rich Schwerdtfeger of the Protocols and Formats
working
group.
JavaScript is found on over 50%
of all web sites today, dramatically
affecting the ability for persons with disabilities to access web
content. New Rich Internet web applications are being created to render
custom
widgets modeling rich desktop componentry. Legacy GUI accessibility
frameworks address these issues through a comprehensive accessibility
API and infrastructure to foster interoperability with assistive
technologies. These API's constitute a contract between applications
and assistive technologies, such as screen readers, to allow them to
gain access to rich dynamic content with the appropriate semantics
needed to produce a usable alternative.
Unfortunately, HTML and other markup does not provide adequate markup to support accessible dynamic content. Until now, the W3C WAI has discouraged the use of JavaScript per Web Content Accessibility Guidelines (WCAG) 1.0. The W3C has a number of initiatives in the pipeline to address this problem using a declarative markup approach. This roadmap is designed to create a bridge to fix the interoperability probem with assistive technologies today by incorporating the appropriate meta data in today's XHTML markup to support today's accessibility API. It will incorporate some of the advanced accessibility features in technologies like XHTML2. The intent of XHTML 2 is to make the enablement of web applications and documents easier for authors. This roadmap will create cross-cutting technologies which may be incorporated by XHTML 2 authors in their markup to describe GUI widgets and document structure to assist assistive technology vendors in providing accessible, usable solutions. The W3C WAI PF working group will work with User Agent manufacturers and assistive technology vendors to ensure we have a working solution.
Accessibility for traditional HTML suffers from a number of problems
that
make it difficult to support dynamic content:
Authors of JavaScript generated content do not want to tie themselves to the standard tag elements that define the actual user interface element such as tables, ordered lists, etc. JavaScript also make extensive use of tag elements such as DIVs where they will dynamically apply a UI through the use of style sheets and dynamic content changes. An HTML DIV provides no semantic information. The page author may define a DIV as the start of a pop-up menu or even an ordered list. No HTML facility provides a mechanism for the page author cannot convey the role of the DIV as being a pop-up menu. Consequently, a page author cannot tell an assistive technology when these elements have focus. There is no mechanism to convey accessibility property information as to whether the pop-up menu is collapsed or expanded. There is also no mechanism to define what the actions are that can be formed on the element other than through a device-dependent means through the event handler type (onmouseover, onclick, etc.)
In short JavaScript needs an accessibility architecture it can write to such that a solution could be mapped to the accessibility frameworks on the native platform by the user agent.
Figures1.0 Accessibility Interoperability at a
DOM Node
without JavaScript
Figure 1.0 illustrates a typical DOM node in a
Model-View-Controller architecture. On the node, data, or the "Model",
which should include semantic information, is separated from the user
interface presentation, the "View." Here, the document element is
managed by the user agent based on the default behavior of the element.
The user agent's default behavior at the document element forms the
controller. Placed between the DOM
node and the asssistive technology is a box containing the contract
provided
by the user agent to the assistive technology. This data includes
typical accessibility information found in the accessibility API for
many of
our accessible
platforms for GUIs (role, state, caret, selection, text, hypertext,
name description,
parent/child
information, parent/child information, and relations). For HTML and
other W3C
markup, the accessibility information provided is dependent on that
which is provided by the element's tag name and any accessibilility
attributes that map to that provided. For example, the accessible role
of a table is table. The accessible description would be provided by
the author by assigning a title attribute.
Figure 2.0 Accessibility Interoperability at a
DOM node with JavaScript)
Figure 2.0 shows the same DOM node provided in
Figure 1.0 but with JavaScript acting as the new controller.
JavaScript overrides the default user agent behavior at the DOM node.
It manipulates the data, content, and style in response to events
caused
by user interaction to produce Custom widgets. In this situation the
default accessibility information is no longer valid and therefore the
contract is now invalid. Figure 2.0 shows the contract with asterisks
in
front of role, state, actions, value, event changes, and
relations. These asterisks represent potential accessibility errors
and gaps in the base markup. These gaps result from the author's
inability to provide the new semantic data needed to support the
contract.
Web ontologies allow for storage of semantic information about
objects and how they relate to others in the ontology.
Accessibilty architecture today is centered around object technology. Each object in an application or document, exposes accessibility information about itself to an assistive technology.
Dynamic content authors must be able to store the accessible meta data in the document independent of how it is rendered.
Assistive technology vendors should not be required to poll an application for changes in accessibility information.
This problem needs to be solved quickly. There are a number of efforts underway, such that minimal changes may be required to bring them to the level needed.
The solution needs to be light-weight in order to see uptake among HTML authors.
The solution needs to be scalable, i.e., make simple things easy while making complex things possible.
Like other Web solutions, our solutions must be internationalizable.
We need to involve user agent manufacturers up front
Assistive technology vendors need to be involved from day one. We need to leverage support by AT vendors so that we can have a total solution available when the specification is complete
This is a critical mistake made by people creating a new accessibility model. Developers must be on board early on so that they may contribute feedback and start producing workable solutions early.
Table 1.0 Platform Gap Analysis for Accessible
Dynamic Web Content
for HTML and XHTML
Required Components | Who does what today? (HTML) |
---|---|
Events: | |
FocusChange | DOM 2, 3 events |
Activation |
User Agent API |
Caret Change | User Agent API |
Value Change | |
State Change | |
Selection Change | User Agent API |
Mutation | DOM Events |
Accessible Actions: |
|
Event Handler functional information to label the actions |
|
Access to the available event
handlers for enumerating the actions |
|
State Information: | |
Role Information: | Limited to standard HTML tag names. (Mix Content/presentation) |
Relationships: Parent/child | Limited DOM (affected by style) (Mix Content/presentation) |
Relationships: (Label, Group, ControllerFor) | Limited to HTML (Title, alt, label) |
Text | Core DOM from parsed HTML |
Content selection: | browser dependent (incomplete) |
Font/Font Style Information: | Can set but can’t get final format |
Description/Help: | limited to HTML 4.0 - Alt Text, title text |
Accessible value: | limited to form elements |
Coordinates (Bounding rectangle, etc.): | User Agents.platform accessibility API |
Accessible Name: | |
Respond Desktop Font/Color Changes: | partial (conflicts with CSS and JavaScript) |
Device independent navigation: | |
Accessibility API Mapping: | partial - User Agents |
Provide focus to all active elements (important for equivalent keyboard access on desktops) |
Limited to forms and achors |
At this time, the primary effort in the W3C WAI Protocols and
Formats working group is to focus on an extension to XHTML 1.1. It
should be noted that XHTML 1.0 could also be enhance to support this
extension through the use of a hybrid DTD which incorporates the
extensions. The reason for focusing on XHTML 1.X is that XHTML is
extensible through the use of namespaces and because it is renderable
by
today's browses. For this work, we will be producing a document called
the Accessible Adaptive Applications (AAA) document and a GUI role
taxonomy document. The AAA will constitue extensions to XHTML 1.1 to
fill most of the gaps needed to support accessibility API
infrastructures and dynamic XHTML content. It will also borrow the role
attribute from XHTML 2 for which a set of accessible role values may be
applied from the WAI GUI Role Taxonomy specification. The Role
taxonomy specification will provide the necessary core roles found in
Accesssibility API sets for Windows and Linux. Additionally, it will
contain roles which are representative of document structure. The use
of document structure is necessary for assistive technologies to
navigate complex documents and to know when they have entered active
areas of a web page such as in the case of a dynamic scripted web
application. It will be designed to assist the user agent or authoring
tool in determining what properties are supported by a given role and
assist with accessibility api mapping of these properties. The taxonomy
will be like a class hierarchy used to convey semantics and structure
and therefor knowledge about each role. At this time that taxonomy will
be written in RDF.
The GUI Role Taxonomy specification is meant to be cross-cutting.
XHTML 2
introduces the role attribute as part of its built-in accessibility
support. The common roles defined in this taxonomy may also be applied
to XHTML 2 content and other markup such as SVG should those efforts
allow for a mechanism to reference these common roles.
Table 2.0 GAP Analysis - Progressive
Filling of the Gaps for HTML
in support of Accessibility API
Required Components | Who does what today? (HTML) |
Plan to fill the gaps for XHTML 1.X |
Plan to fill gaps for XHTML 1.X + XForms |
XML Events | Plan to fill the gaps for XHTML 2.0 |
---|---|---|---|---|---|
Events: | |||||
FocusChange | DOM 2 UI Events | ||||
Activation |
DOM Level 2 Device Independent UI Events | ||||
Caret Change | User Agent API | User Agent API | User Agent API |
User Agent API | |
* Value Change | User Agent to monitor specific
accessibility properties in the AAA. For
properties representing platform accessibility API values as specified
by a given role, it will
generate an accessible value change event. (See Value
Change) |
User Agent to monitor change
from WAI
State Taxonomy information supplied by the Author and fire the platform specific Accessibility API event |
|||
* State Change | User Agent to monitor specific accessibility properties in the AAA. For properties representing platform accessibility API states, it will generate an AccessibleState Change event. (See State Change Event) | User Agent to monitor change
from WAI
State Taxonomy information supplied by the Author and fire the platform specific Accessibility API event |
|||
Selection Change | User Agent API |
User Agent API |
User Agent API |
User Agent API |
|
Mutation | DOM Events | ||||
Accessible Actions: | |||||
* Event Handler functional information and descriptive
shortcus |
Details:Need for XML Events |
Details:Need for XML Events* |
|||
* Access to the available event handlers for enumerating the actions | DOM 3 Events |
||||
* State Information: | Supplied by the AAA specification. | User Agent to map
information found in
XForms data model with limited use of AAA. User Agent of XForms data model to accessible state meta found in: (WAI States and Adaptable Properties Module) |
User Agent to
map information found in
XForms data model with limited use of AAA. User Agent of XForms data model to accessible state meta found in: (WAI States and Adaptable Properties Module) |
||
* Role Information: | Limited to standard HTML tag names. (Mix Content/presentation) | ||||
Relationships: Parent/child | Limited DOM (affected by style) (Mix Content/presentation) | ||||
Relationships: (Label, Group, ControllerFor) | Limited to HTML (Title, alt, label) | AAA Specification |
|
label, group acquired from XForms incorporated into XHTML 2 |
|
Text: | Core DOM 1 from parsed HTML | ||||
Content selection: | User Agent |
||||
Font/Font Style Information: | Can set but can’t get final format | User Agents final format styling
using CSS2 APIs |
User Agents final format styling using CSS2 APIs | User Agents final format styling using CSS2 APIs | |
* Description/Help: | limited to HTML 4.0 - Alt Text, title text | AAA Specification |
Acquired from XForms help, hint | Acquired from XForms
help, hint incorporated into XHTML 2 |
|
* Accessible value: | limited to form elements |
AAA Specification |
User Agent acquires from XForms data model | User Agent Acquires from XForms
data model incorporated into XHTML 2 |
|
Coordinates (Bounding rectangle, etc.): | User Agents.platform accessibility API |
||||
Accessible Name: | User Agent determines from HTML tag |
||||
* Respond Desktop Font/Color Changes | partial (conflicts with CSS and JavaScript) | CSS3 - Requires User Agent
support |
CSS3 - Requires User Agent support | CSS3 - Requires User Agent
Support |
|
* Device independent navigation: | Use of xhtml2 landmarks through the <link rel""> |
XHTML 2 Role land
marks |
XHTML 2 Role land marks | XHTML 2 Role land
marks, and Access Key replacement |
|
*Accessibility API Mapping: | partial - User Agents |
User Agent to map new AAA
properties and role meta data to the platform accessibility API |
|||
Provide focus to all
active elements |
TABINDEX=-1 best practice |
TABINDEX |
TABINDEX |
All XHTML 2 elements shall be
focusable. |
Table 2.0 shows the roadmap for filling the gaps in Table 1.0. The effort is designed to fill the gaps for HTML content. Required components marked with an asterisk indicate gaps to fill in the roadmap. As you move to the right in the table a transition to more declarative markup will take place. The use of declarative markup reduces the enablement effort required while better addressing accessibility. Declarative markup is used to build accessibility in rather than bolting it on. Subsequent sections highlight the requirements and standards efforts set to address the gaps.
A way to summarize this chart is that the critical extensions needed
to
make accessible dynamic web content accessible for XHTML 1.x, that may
be made interoperable with assistive technologies, will be provided
through the use of:
<?xml version="1.1" encoding="us-ascii"?>
<!DOCTYPE html PUBLIC "Accessible Adapative Applicaitons//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:x2="http://www.w3.org/2002/06/xhtml2"
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
>
<body>
<div x2:role="wairole:menu">
File
</div>
</body>
</html>
<?xml version="1.1" encoding="us-ascii"?>
<!DOCTYPE html PUBLIC "Accessible Adapative Applicaitons//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:x2="http://www.w3.org/2002/06/xhtml2"
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
xmlns:waistate="http://www.w3.org/2005/07/aaa"
>
<body>
<div x2:role="wairole:menu" waistate:haspopup="true">
File
</div>
</body>
</html>
tabindex attribute | Focusable with mouse or JavaScript via element.focus() | Tab navigable |
---|---|---|
not present | Follows default behavior of element (yes for form controls, links, etc.) | Follows default behavior of element |
Negative, e.g. tabindex="-1" |
Yes | No, author must focus it with element.focus()
as a result of arrow or other key press |
Zero, e.g. tabindex="0" |
Yes | In tab order relative to element's position in document |
Positive, e.g. tabindex="33" |
Yes | Tabindex value directly specifies where this element is
positioned in the tab order. These elements will be positioned in the tab order before elements that have tabindex="0" or that are naturally included in the tab order (form elements and links) |
<?xml version="1.1" encoding="us-ascii"?>
<!DOCTYPE html PUBLIC "Accessible Adapative Applicaitons//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:x2="http://www.w3.org/2002/06/xhtml2"
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
xmlns:waistate="http://www.w3.org/2005/07/aaa"
>
<body>
<div x2:role="wairole:menu" waistate:haspopup="true" tabindex=-1>
File
</div>
</body>
</html>
<?xml version="1.1" encoding="us-ascii"?>
<!DOCTYPE html PUBLIC "Accessible Adapative Applicaitons//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:x2="http://www.w3.org/2002/06/xhtml2"
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
>
<body>
<div role="x2:navigation">
<ul>
<li> <a href="www.w3.org/WAI">WAI</li>
</li>
<li>
<a href="www.ibm.com/able">IBM Accessibility Center</a>
</li>
<li>
<a href="www.opera.com">Opera Software</a>
</li>
<li>
<a href="www.mozilla.org/access">Mozilla Accessibility</a>
</li>
<li>
<a href="www.ubaccess.com">UB Access</a>
</li>
</ul>
</div>
</body>
</html>
<html lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
<title>Career Center Home Page</title><link rel="x2:banner" href="#title" title="Career Center">
<link rel="x2:navigation" href="#nav1-links" title="Career Counseling Resources">
<link rel="x2:navigation" href="#nav2-links" title="Resources by Audience">
<link rel="x2:navigation" href="#leftnav-links" title="Career Center Services">
<link rel="x2:navigation" href="#bottomnav-links" title="Quick Links">
<link rel="x2:main" href="#content-col-1" title="Welcome to the Career Center">
<link rel="x2:secondary" href="#content-col-2" title="Featured Events">
<link rel="x2:secondary" href="#contact-info" title="Contact Info">
<link rel="x2:search" href="#search" title="Search Career Center website">
<link href="styles/career-main.css" type="text/css" rel="stylesheet">
</head>
HTML is a device dependent solution. An impaired user needs to make
an intelligent decision as to what actions they can perform on a
document element. An impaired user wishing to enumerate the available
actions that may be performed on a page element is confronted with the
non-informative information provided by HTML's
intrinsic events. The information provided is very device specific
and non-informative. For example, what action does an event handler
perform in
response to an onclick
event? This is problematic for blind, low vision, and mobility impaired
users. There may be more than one action to be performed on a given
element. A mobility impaired user would like to enumerate the handlers
and make a decison. Generating the appropriate mouse event is
problematic. Blind users and low vision users would like to make
informed decisions before they accidentally make a purchase. Some
information can be gleaned from the UI by sited users, however some of
this information may be obscured from view due to the use of a
magnifier by low vision users.
The HTML working group is working to address this problem through
the use of XML
events. XML Events provide XML languages with the ability to
uniformly
integrate event listeners and associated event handlers with Document
Object Model (DOM) Level 2 event interfaces [DOM2EVENTS]. The result is
to provide an interoperable way of associating behaviors with
document-level markup. Through the use of XML this is done
declaratively. Having the ability to use XML to integrate listeners and
handlers will allow us in in future versions of the XML event
specification to tie a descriptive purpose to the handlers.
This problem also manifests itself when encountering
event handlers
authored via element script. XML Events and XML Handlers solves the
first half of the
accessibility problem by introducing a clean declarative syntax while
encouraging authors to use high-level event names and descriptions.
This gives the author the flexibility to assign device specfic mappings
to event handlers while providing for added semantics. In XForms 1.0,
we
have
gone one step further by introducing declarative action handlers for
commonly
used event handlers, e.g., setfocus. The combination of REL navigation
semantics, XML events, XML handlers, and XForms declarative markup set
the stage for an access key replacement. Access key suffers from a lack
of
semantics and support for device independence.
Dynamic web content implies the use of event handlers. From an
accessibility perspective we need to assist the user in determining how
to
interact with a web application in a device independent way. The
provision
for named events and the ability to bind event handlers to document
element events in the XML Event specification is critical. At the
time of binding we can incoporate the additional Role information as
well as make use of the name information to provide semantics about
what the event handler does. In the future, this
information should be mapped to the available accessibility
infrastructure
by a, UAAG conforming, user agent on the platform. Once complete, a
user agent conforming to the DOM 3 event specification will allow
for enumeration of event handlers with corresponding
descriptions. The ability to ask this
information
has been added to the EventTarget interface in DOM3 events through the
hasEventListenerNS
method.
Platform accessibility API like the Gnome
ATSPI Accessible Action interface may now enumerate these actions
for assistive
technologies so that the user may be provided with
descriptive information to make an informed decision as to which action
to take.
Screen Reader user would be able to pop-up a list of event handlers in a list such as follows:
XForms addresses the accessibility problem in the following ways:
The first benefit is less JavaScript. XForms provides a common set
of available actions that can be performed
on a form. XForms
is a delarative markup. The engineers who designed XForms took the
standard use cases for how we create forms and built in support for the
standard actions performed in a web form. From an accessibility
perspective, this means these functions should be available from the
browser independent of platform. So, rather than guess what an onclick
does on a form, the user should be able to access the available
functions and Notification events that are used in that specific form
as defined by the XForms standard.
Interaction events:
- next and previous
- focus change
- help and hint
- refresh
- revalidate
- recalculate
- rebuild
- reset
- submit
You are also notified of events which actually occur during form
operation. These types of events allow applications, like a screen
reader, to provide alternative modalities such as speech.
Notification Events:
- Activate
- Value change
- Select and Deselect
- Scroll First, Scroll Last
- Insert, Delete
- Valid, Invalid
- FocusIn
- FocusOut
- ReadOnly, ReadWrite
- Required, Optional
- in-range, out-of-range
- submit-done
- submit-error
In addition to device independent events, XForms also provides another
powerful feature by its model-view-controller design. XForms separates
content from presentation while embedding relevant meta data in user
interface constructs.
XForms provides the following meta data:
label for the user interface control
hint help text for the user interface control
help help text for the user interface control
XForms also encourages intent-based authoring by introducing these
constructs:
group to group a set of user interface controls
switch , and case which can be used to hide or
reveal logical groups of controls
case includes a Boolean attribute called selected
that allows the group of controls within that case to become active.
This is important to assistive technologies, such as a screen reader,
which would monitor the document to determine when to speak selected
elements. If none of the cases within the switch are selected, the
first case in document order becomes active by default. How those
elements are rendered visually is of no consequence. The semantics are
preserved.
The use of a standard data model reduces extensive author enablement
work in the area of adding accessibility properties to content. The
model, when bound to XForms elements, may be used by the user agent to
directly support the platform accessbility API as shown in this
abridged
table:
State |
XForms today | User Agent Mapping (MSAA) |
User Agent Mapping ATK (Gnome,KDE) |
---|---|---|---|
disabled |
<select1>, <item>, <textarea>, <secret>, <input> | STATE_SYSTEM_UNAVAILABLE This is determined from relevant. If relevant is false this disabled shall be mapped |
ATK:ATK_STATE_DISABLED |
focusable |
<select1>, <item>, <textarea>, <secret>, <input>, <choices>, <repeat> |
STATE_SYSTEM_FOCUSABLE
|
ATK:ATK_STATE_FOCUSABLE |
invalid |
<select1>, <item>, <textarea>, <secret>, <input> |
no mapping |
ATK:ATK_STATE_INVALID If the state is computed to be invalid, out-of-range, or required this value should be returned as true. 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. |
hidden |
<select1>, <item>, <textarea>,
<secret>, <input>, <choices>, <repeat>,
<submit>, <trigger> |
STATE_SYSTEM_INVISIBLE: true if hidden=true; Otherwise false The user agent will need to set this to true when there is no binding to data in a form element. Elements with this state should not be made available to users. |
ATK_STATE_VISIBLE : false if
hidden=true. Otherwise false The user agent will need to set this to true when there is no binding to data in a form element. Elements with this state should not be made available to users. |
multiline |
<textarea> |
no mapping. This is implied based on the textarea being representative of it role. | ATK_STATE_MULTI_LINE |
multiple |
<select>, <repeat> |
STATE_SYSTEM_EXTSELECTABLE This attribute is implied based on the element type in XForms. It is up to the User Agent to do the implied mapping to the appropriate state. |
ATK_STATE_MULTISELECTABLE This attribute is implied based on the element type in XForms. It is up to the User Agent to do the implied mapping to the appropriate state. |
optional |
<select1>, <item>, <textarea>,
<secret>, <input>, <choices> |
no mapping This attributed is determined from from the XForms model. The XForms implementation should provide a method either in the DOM or a specialized API since this value should be calculated as optional may be set to true or be evaluated based on an XPath. For example, a method of isOptional() is suggested. |
no mapping This attributed is determined from from the XForms model. The XForms implementation should provide a method either in the DOM or a specialized API since this value should be calculated as optional may be set to true or be evaluated based on an XPath. For example, a method of isOptional() is suggested. |
readonly |
<select1>, <item>, <textarea>,
<secret>, <input>, <choices> |
STATE_SYSTEM_READONLY an XPath. In the case of Windows this would be computed and added to the MSAA accessible states. In ATK this would be computed and added to the AccessibleStateSet. On other systems a method could be provided such as isReadOnly(). |
ATK_STATE_READONLY=inverse of
readonly This attributed is determined from from the XForms model. The XForms implementation should provide a method either in the DOM or a specialized API since this value should be calculated as required may be set to true or be evaluated based on an XPath. In the case of Windows this would be computed and added to the MSAA accessible states. In ATK this would be computed and added to the AccessibleStateSet. On other systems a method could be provided such as isReadOnly(). |
required | <select1>, <item>, <textarea>, <secret>, <input>, <choices> | no mapping. This attributed is determined from from the XForms model. The XForms implementation should provide a method either in the DOM or a specialized API since this value should be calculated as required may be set to true or be evaluated based on an XPath. For example, a method of isRequired() is suggested. |
no mapping. This attributed is determined from from the XForms model. The XForms implementation should provide a method either in the DOM or a specialized API since this value should be calculated as required may be set to true or be evaluated based on an XPath. For example, a method of isRequired() is suggested. |
secret |
<secret | STATE_SYSTEM_PROTECTED ROLE_SYSTEM_TEXT This is state is managed by the user agent. Use of secret as a tag implies secret.
|
ATK_ROLE_PASSWORD_TEXT This is state is managed by the user agent. Use of secret as a tag implies secret. |
selectable |
<item> |
STATE_SYSTEM_SELECTABLE Note: <itemset> should be expanded by the user agent. An attribute of selectable should automatically be set by the user agent as long as it is bound. |
ATK_STATE_SELECTABLE Note: <itemset> should be expanded by the user agent. An attribute of selectable should automatically be set by the user agent as long as it is bound. |
singleline | <input> | implied by <input> being representative of its
role. |
ATK_STATE_SINGLE_LINE |
User agents may need to adjust their user interface in response to
state information stored in document elements. For example, an
element having the focusable attribute set to true should result in a
desktop user agent's placing the element in the keyboard tabbing order.
Specfication | WD 1.0 |
LC |
CR | Implementation Report | PR | REC |
---|---|---|---|---|---|---|
WAI States and Adaptable Properties Module | 3Q05 |
4Q05 |
1Q06 |
2Q06 |
3Q06 |
TBD |
WAI Role Taxonomy for Accessible Adaptable Applications | 3Q05 |
4Q05 |
1Q06 |
2Q06 |
3Q06 |
TBD |
XHTML2 Specificaton (includes XForms) | 2Q05 |
TBD |
TBD |
TBD |
TBD |
TBD |
Forward Looking
Efforts: |
||||||
XML Events with handler descriptions (not critical for XHTML) | TBD |
TBD |
TBD |
TBD |
TBD |
TBD |
XForms 1.0 |
3Q03 |
Specfication | XHTML 1.0, XHTML 1.1 |
XHTML 2.0 |
---|---|---|
Accessible State Meta Data |
WAI States and Adaptable Properties Module | XHTML2
Specificaton (includes XForms) |
TABINDEX Correction for focus |
WAI States and Adaptable Properties Module | All elements are focuseble in
XHTML 2 |
Accessible Role Meta Data |
WAI Role Taxonomy for Accessible Adaptable Applications | WAI Role Taxonomy for Accessible Adaptable Applications |
Role Attribute |
Borrow from XHTML2: XHTML
2 Role Specification |
XHTML2
Role Specification |
CSS3 Basic User Interface Module
http://www.w3.org/TR/css3-ui/CSS3 Selectors
http://www.w3.org/TR/css3-selectors/Microsoft Active Accessibility (MSAA) state information
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msaa/msaaccrf_8y2b.aspGnome Accessibility Project (GAP) State and StateSets.
http://developer.gnome.org/projects/gap/tech-docs/at-spi-docs/at-spi-cspi-state-and-statesets.html