This document is also available in these non-normative formats: PostScript version, PDF version, ZIP archive, and Gzip'd TAR archive.
The English version of this specification is the only normative version. Non-normative translations may also be available.
Copyright © 2007-2008 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
The XHTML Access module defines an element that, when used in conjunction with other XHTML modules in XHTML Family Markup Languages, enables a more robust accessibility model than is presently possible.
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 and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This is a First Public Working Draft produced by the XHTML 2 Working Group. The goals of the XHTML 2 Working Group are discussed in the XHTML 2 Working Group charter. Note that the content of this document is based upon materials from [XHTML2] and is therefore considered relatively mature.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
Publication as a Working 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.
Please report errors in this specification to www-html-editor@w3.org (archive). It is inappropriate to send discussion email to this address. Public discussion may take place on www-html@w3.org (archive).
access
element
activate
= ( yes | no* )key
=
Charactertargetid
= IDREFs
targetrole
= CURIEs
This section is informative.
This document contains a single module designed to be used to help make XHTML-family markup languages more effective at supporting the needs of the Accessibility Community. It has been developed in conjunction with the W3C's Web Accessibility Initiative and other interested parties. It provides a generic mechanism for defining the relationship between document components and well-known accessibility taxonomies.
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].
Note that all examples in this document are informative, and are not meant to be interpreted as normative requirements.
XHTML Access is not a stand-alone document type. It is intended to be integrated into other XHTML Family Markup Languages. A conforming XHTML Access 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 its host language implementation.
If the host language is not in the XHTML namespace, and the host language does not incorporate this module into its own namespace, then the document MUST contain an
xmlns:
declaration for the XHTML Access namespace [XMLNAMES]. The namespace for XHTML Access Module is defined to be
http://www.w3.org/1999/xhtml
. An example start tag of a root element might look like:
Example
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
When XHTML Access is included in a host language, all of the facilities required in this specification MUST be included in the host language. In addition, the element defined in this specification MUST be included in the content model of the host language. The element defined in this specification MAY be incorporated into the namespace of the host language, or it MAY remain in the XHTML namespace. Finally, XHTML Access requires the availability of the XHTML Role Attribute Module [XHTMLROLE] and of the Core Attribute Collection as defined in XHTML Modularization [XHTMLMOD].
Chameleon Namespace
It is not clear that there is a benefit in making this module chameleon. However, since the Role Attribute Module is chameleon, this one likely should be as well.A conforming user agent MUST support all of the features required in this specification.
This section is normative.
This module defines the access element.
Element | Attributes | Minimal Content Model |
---|---|---|
access | Common, activate, key, targetid, targetrole | EMPTY |
Implementations: XML DTD
access
elementThe access element assigns an accessibility mapping to elements within a document. Actuating the mapping results in the element gaining focus or, optionally, in some other event being delivered.
Attributes
activate
= ( yes | no* )The activate attribute indicates whether a target element should be activated or not once it obtains focus. The default value for this attribute is "no", indicating that the element will not be "activated".
key
= CharacterThis attribute assigns a key mapping to an access shortcut. An access key is a single character from the document character set. Note: Authors should consider the input method of the expected reader when specifying an accesskey.
Triggering an access key defined in an access element changes focus to the next element in navigation order from the current focus that has one of the the referenced role or id values. Note that it is possible to deliver alternate events via [XMLEVENTS]. It is also possible to have the target element activated through the use of the activate attribute. Finally, it is possible to associate additional event handlers with target which might then perform additional actions once focus is changed.
If neither a targetrole
nor a targetid
attribute are specified, the user agent MUST NOT define a mapping nor deliver any events.
An access
element must have either a targetrole
or a targetid
attribute specified.
The invocation of access keys depends on the implementation. For instance, on some systems one may have to press the "alt" key in addition to the access key. On other systems, one generally has to press the "cmd" key in addition to the access key.
The rendering of access keys depends on the user agent. We recommend that authors include the access key in label text or wherever the access key is to apply. User agents should render the value of an access key in such a way as to emphasize its role and to distinguish it from other characters (e.g., by underlining it).
The character assigned to a key, and its relationship to a role or id attribute, are a suggestion of the author. User agents may provide mechanisms for overriding, disabling, or re-assigning keys. In such user agents, user-specified assignments must take precendence. If no key attribute is specified, the user agent SHOULD assign a key.
id and xml:id
We talk about the id attribute, but we might also need to accomodate xml:id. How can we do that consistently?targetid
= IDREFs
The targetid attribute specifies one or more IDREFs related to target elements for the associated event (i.e., the node to which the event should be delivered).
targetrole
= CURIEs
The targetrole attribute specifies a space separated list of CURIE
s [CURIE] that maps to an element with a role attribute with the same value.
If a targetid and a targetrole are both specified for an element, the targetid attribute value must take precedence.
If the prefix is omitted from a CURIE, the default value of http://www.w3.org/1999/xhtml/vocab#
MUST be used.
Access element that focuses into a field
<access key="s" title="Social Security Number" targetrole="ss:number" />
Accessing a table of contents
<access key="c" title="Table of Contents" targetrole="toc" />
Access that moves to the main content
<access key="m" title="Main content" targetrole="main" />
Access element that goes to a specific element
<access key="u" title="Username" targetid="username" />
Access element with no specific key mapping
<access title="Navigation bar" targetrole="navigation" />
This appendix is informative.
There will be an XML Schema implementation of this module in the next version.
This appendix is normative.
The DTD implementation of XHTML Access Module conforms to the requirements defined in [XHTMLMOD]. Consequently, it provides a Qualified Names sub-module, and a module file for the XHTML Access Module defined in this specification.
<!-- ....................................................................... --> <!-- XHTML Access Qname Module ............................................ --> <!-- file: xhtml-access-qname-1.mod This is XHTML Access - the Access Attribute Module for XHTML. Copyright 2007-2008 W3C (MIT, ERCIM, Keio), All Rights Reserved. This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XHTML Access Attribute Qnames 1.0//EN" SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-access-qname-1.mod" Revisions: (none) ....................................................................... --> <!-- XHTML Access Attribute Qname (Qualified Name) Module This module is contained in two parts, labeled Section 'A' and 'B': Section A declares parameter entities to support namespace- qualified names, namespace declarations, and name prefixing for XHTML Access and extensions. Section B declares parameter entities used to provide namespace-qualified names for the XHTML access element: %XHTML-ACCESS.access.qname; the xmlns-qualified name for access ... XHTML Access extensions would create a module similar to this one. --> <!-- Section A: XHTML Access Attribute XML Namespace Framework ::::::::::::::: --> <!-- 1. Declare a %XHTML-ACCESS.prefixed; conditional section keyword, used to activate namespace prefixing. The default value should inherit '%NS.prefixed;' from the DTD driver, so that unless overridden, the default behavior follows the overall DTD prefixing scheme. --> <!ENTITY % NS.prefixed "IGNORE" > <!ENTITY % XHTML-ACCESS.prefixed "%NS.prefixed;" > <!-- 2. Declare a parameter entity (eg., %XHTML-ACCESS.xmlns;) containing the URI reference used to identify the XHTML Access Attribute namespace --> <!ENTITY % XHTML-ACCESS.xmlns "http://www.w3.org/1999/xhtml" > <!-- 3. Declare parameter entities (eg., %XML.prefix;) containing the default namespace prefix string(s) to use when prefixing is enabled. This may be overridden in the DTD driver or the internal subset of an document instance. If no default prefix is desired, this may be declared as an empty string. NOTE: As specified in [XMLNAMES], the namespace prefix serves as a proxy for the URI reference, and is not in itself significant. --> <!ENTITY % XHTML-ACCESS.prefix "" > <!-- 4. Declare parameter entities (eg., %XHTML-ACCESS.pfx;) containing the colonized prefix(es) (eg., '%XHTML-ACCESS.prefix;:') used when prefixing is active, an empty string when it is not. --> <![%XHTML-ACCESS.prefixed;[ <!ENTITY % XHTML-ACCESS.pfx "%XHTML-ACCESS.prefix;:" > ]]> <!ENTITY % XHTML-ACCESS.pfx "" > <!-- declare qualified name extensions here ............ --> <!ENTITY % xhtml-access-qname-extra.mod "" > %xhtml-access-qname-extra.mod; <!-- 5. The parameter entity %XHTML-ACCESS.xmlns.extra.attrib; may be redeclared to contain any non-XHTML Access namespace declaration attributes for namespaces embedded in XML. The default is an empty string. XLink should be included here if used in the DTD. --> <!ENTITY % XHTML-ACCESS.xmlns.extra.attrib "" > <!-- Section B: XML Qualified Names ::::::::::::::::::::::::::::: --> <!-- 6. This section declares parameter entities used to provide namespace-qualified names for the XHTML Access element. --> <!ENTITY % XHTML-ACCESS.access.qname "%XHTML-ACCESS.pfx;access" > <!-- end of xhtml-access-qname-1.mod -->
<!-- ...................................................................... --> <!-- XHTML Access Module .................................................. --> <!-- file: xhtml-access-1.mod This is XHTML Access - the Access Module for XHTML. Copyright 2007-2008 W3C (MIT, ERCIM, Keio), All Rights Reserved. This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ELEMENTS XHTML Access Element 1.0//EN" SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-access-1.mod" Revisions: (none) ....................................................................... --> <!ENTITY % Character.datatype "CDATA" > <!ENTITY % CURIEs.datatype "CDATA" > <!ENTITY % IDREFs.datatype "CDATA" > <!ENTITY % access.element "INCLUDE" > <![%access.element;[ <!ENTITY % access.content "EMPTY" > <!ENTITY % XHTML-ACCESS.access.qname "access" > <!ELEMENT %XHTML-ACCESS.access.qname; %access.content; > <!-- end of access.element -->]]> <!ENTITY % access.attlist "INCLUDE" > <![%access.attlist;[ <!ATTLIST %access.qname; %Common.attrib; activate ( yes | no ) #IMPLIED key %Character.datatype; #IMPLIED targetid %IDREFs.datatype; #IMPLIED targetrole %CURIEs.datatype; #IMPLIED > <!-- end of access.attlist -->]]> <!-- end of xhtml-access-1.mod -->
This appendix is normative.
This section is informative.
At the time of publication, the participants in the W3C XHTML 2 Working Group were: