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 © 2006 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
The XHTML Role Attribute defined in this specification provides XML languages with the ability integrate a "role" attribute into any markup language based upon [XHTMLMOD].
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 document is a First Public Working Draft, but is nearly complete. It is based upon work done in the definition of [XHTML2], and is therefore relatively mature.
This document has been produced by the W3C HTML Working Group (Members only) as part of the HTML Activity. The goals of the HTML Working Group are discussed in the HTML Working Group charter.
This document was produced by a group operating under the 24 January 2002 CPP as amended by the W3C Patent Policy Transition Procedure. 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).
This section is informative.
This document is the first of a series of XHTML modules designed to be used to help extend the scope of XHTML-family markup languages into new environments. It has been developed in conjunction with the accessibility community and other groups to make it easier to describe the semantic meaning of XHTML-family document content.
Note that this work was originally done as part of the [XHTML2] activity. It is being released in a separate, stand-alone module in order to speed its adoption and ease the migration to XHTML 2 when that is released.
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].
XHTML Role Attribute Module is not a stand-alone document type. It is intended to be integrated into other host languages such as XHTML. A conforming XHTML Role Attribute Module 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.
If the host language does not incorporate the XHTML Role Attribute Module attribute into its own namespace, the document MUST contain an xmlns
declaration for the XHTML Role Attribute
Module namespace [XMLNAMES]. The namespace for XHTML Role Attribute Module is defined to be http://www.w3.org/1999/xhtml
. An example start tag of
a root element might look like:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
When the XHTML Role Attribute Module is included in a host language, all of the facilities required in this specification MUST be included in the host language. In addition, the attribute defined in this specification MUST be included in the content model of the host language.
A conforming user agent must support all of the features required in this specification.
This section is normative.
This specification defines the XHTML Role Attribute Module. The XHTML Role Attribute Module uses the XML namespace [XMLNAMES] identifier
http://www.w3.org/1999/xhtml
.
The role attribute takes as its value one or more white-space separated QNames. The attribute describes the role(s) the current element plays in the context of the document. It is used by applications and assistive technologies to determine the purpose of UI widgets. In the case of a web page it may be declarative as a function of particular elements or it may be an attribute which is configurable by the page author. Additionally, role information may be used to define each action which may be performed on an element. This allows a user to make informed decisions on which actions may be taken on an element and activate the selected action in a device independent way.
<ul role="navigation wai:sitemap"> <li href="downloads">Downloads</li> <li href="docs">Documentation</li> <li href="news">News</li> </ul>
It is possible to define additional role values. Such values MUST be defined in their own namespace. Note that current best practice is that the URI associated with that namespace resolve to a resource that allows for the discovery of the definition of the roles in the namespace. Example definitions include the RDF Schema for the XHTML role attribute values in Appendix B, and the Web Accessibility Initiative's work on an RDF Taxonomy [WAIRDF].
Authors may use the following relationship names, listed here with their conventional interpretations. User agents, search engines, etc. may interpret these relationships in a variety of ways. For example, user agents may provide access to linked documents through a navigation bar.
The following attribute values are designed to define pertinent parts of a document for the purpose of accessibility. User agents may incorporate device equivalents, such as key mappings in the case of a desktop user agent, to navigate to these sections of a document.
This appendix is normative.
The DTD implementation of XHTML Role Attribute Module conforms to the requirements defined in [XHTMLMOD]. Consequently, it provides a Qualified Names sub-module, and a module file for the XHTML Role Attribute Module module defined in this Proposed Recommendation.
Note that this module defines the parameter entity %xhtml-role-attrs.qname;
. This entity is intended to be used in the attribute lists of elements in any host language that permits
the use of event attributes on elements in its own namespace. In this case the Host Language driver should set a parameter entity %XHTML-ROLE.prefixed;
to INCLUDE
and a
parameter entity %XHTML-ROLE.prefix;
to a value that is the prefix for the XHTML Role Attribute Module attributes.
<!-- ....................................................................... --> <!-- XHTML Role Qname Module ............................................ --> <!-- file: xhtml-role-qname-1.mod This is XHTML Role - the Role Attribute Module for XHTML. Copyright 2006 W3C (MIT, ERCIM, Keio), All Rights Reserved. This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XHTML Role Attribute Qnames 1.0//EN" SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-role-qname-1.mod" Revisions: (none) ....................................................................... --> <!-- XHTML Role 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 Role and extensions. Section B declares parameter entities used to provide namespace-qualified names for the XHTML role attribute: %role.qname; the xmlns-qualified name for @role ... XHTML Role extensions would create a module similar to this one. --> <!-- Section A: XHTML Role Attribute XML Namespace Framework ::::::::::::::: --> <!-- 1. Declare a %XHTML-ROLE.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-ROLE.prefixed "%NS.prefixed;" > <!-- 2. Declare a parameter entity (eg., %XHTML-ROLE.xmlns;) containing the URI reference used to identify the XHTML Role Attribute namespace --> <!ENTITY % XHTML-ROLE.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-ROLE.prefix "" > <!-- 4. Declare parameter entities (eg., %XHTML-ROLE.pfx;) containing the colonized prefix(es) (eg., '%XHTML-ROLE.prefix;:') used when prefixing is active, an empty string when it is not. --> <![%XHTML-ROLE.prefixed;[ <!ENTITY % XHTML-ROLE.pfx "%XHTML-ROLE.prefix;:" > ]]> <!ENTITY % XHTML-ROLE.pfx "" > <!-- declare qualified name extensions here ............ --> <!ENTITY % xhtml-role-qname-extra.mod "" > %xhtml-role-qname-extra.mod; <!-- 5. The parameter entity %XHTML-ROLE.xmlns.extra.attrib; may be redeclared to contain any non-XHTML Role Attribute 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-ROLE.xmlns.extra.attrib "" > <!-- Section B: XML Qualified Names ::::::::::::::::::::::::::::: --> <!-- 6. This section declares parameter entities used to provide namespace-qualified names for the XHTML role attribute. --> <!ENTITY % xhtml-role.role.qname "%XHTML-ROLE.pfx;role" > <!-- The following defines a PE for use in the attribute sets of elements in other namespaces that want to incorporate the XML Event attributes. Note that in this case the XHTML-ROLE.pfx should always be defined. --> <!ENTITY % xhtml-role.attrs.qname "%XHTML-ROLE.pfx;role CDATA #IMPLIED" > <!-- end of xhtml-role-qname-1.mod -->
<!-- ...................................................................... --> <!-- XHTML Role Module .................................................... --> <!-- file: xhtml-role-1.mod This is XHTML Role - the Role Attribute Module for XHTML. Copyright 2006 W3C (MIT, ERCIM, Keio), All Rights Reserved. This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XHTML Role Attribute 1.0//EN" SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-role-1.mod" Revisions: (none) ....................................................................... --> <!-- XHTML Role Attribute Module does nothing, since role is not incorporated in any elements content model as part of this module. --> <!-- end of xhtml-role-1.mod -->
This section is informative
This section will contain an example RDF specification for the roles that are defined in this document.
This appendix is normative.
This section is informative.
At the time of publication, the participants in the W3C HTML Working Group were: