W3C

User Agent Accessibility Guidelines 1.0

W3C Working Draft 7 May 2000

This version:
http://www.w3.org/WAI/UA/WD-UAAG10-20000507
(plain text, gzip PostScript, PDF, gzip tar file of HTML, zip archive of HTML)
Latest version:
http://www.w3.org/WAI/UA/UAAG10
Previous version:
http://www.w3.org/TR/2000/PR-UAAG10-20000310
Editors:
Jon Gunderson, University of Illinois at Urbana-Champaign
Ian Jacobs, W3C

Abstract

The guidelines in this document explain to developers how to design user agents that are accessible to people with disabilities. User agents include graphical desktop browsers, multimedia players, text browsers, voice browsers, plug-ins, and other assistive technologies that provide access to Web content. While these guidelines primarily address the accessibility of general-purpose graphical user agents, the principles presented apply to other types of user agents as well. Following these principles will help make the Web accessible to users with disabilities and will benefit all users.

This document is part of a series of accessibility documents published by the Web Accessibility Initiative (WAI) of the World Wide Web Consortium (W3C).

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.

This Working Draft follows the Proposed Recommendation review of User Agent Accessibility Guidelines 1.0, which ended 7 April 2000. Since that date, the Working Group has endeavored to resolve the issues raised during the review. This release of the document incorporates resolutions as of 4 May 2000 and is intended for review by the Working Group to evaluate whether the resolutions are accurately represented. A history of changes to this document is available on the Web.

Note: Three checkpoints in this document (checkpoint 5.1, checkpoint 5.2, and checkpoint 5.7) refer to the W3C DOM Level 2 [DOM2] specification, which is a Candidate Recommendation as of 7 May 2000. The User Agent Guidelines Working Group continues to track the progress of that specification and expects to maintain its dependency on DOM Level 2 if that specification advances to Proposed Recommendation before the UA Working Group has resolved its open issues. At its 25 April 2000 teleconference, the Working Group resolved that it may modify the checkpoints in question to depend on DOM 1 if that will accelerate the progress of this document.

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 W3C Working Drafts as other than "work in progress."

Please send comments about this document to the public mailing list w3c-wai-ua@w3.org (public archives).

This document has been produced as part of the Web Accessibility Initiative. The goals of the User Agent Working Group are described in the charter. A list of the Working Group participants is available.

A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR.

Table of contents

An appendix to this document [UAAG10-CHECKLIST] lists all checkpoints for convenient reference.

Note: This document supports direct keyboard navigation to the table of contents via the "c" character. Users may have to use additional keyboard strokes depending on their operating environment. Not all user agents support direct keyboard access.


1. Introduction

This introduction (section 1) provides context for understanding the guidelines listed in section 2. In different sections, the introduction explains:

1.1 Benefits of accessible design

For those unfamiliar with accessibility issues pertaining to user agent design, consider that many users with disabilities may be accessing the Web in contexts very different from your own:

User agents must be designed to take into account the diverse requirements of users with disabilities. This document specifies requirements that user agent developers must satisfy to ensure accessibility of the user agent.

Software that follows the guidelines in this document will not only benefit users with disabilities, it will be more flexible, manageable, extensible, and beneficial to all users. Many users browse the Web with requirements similar to those of users with disabilities. For instance:

The guidelines in this document describe some basic principles of accessible design. As the previous examples illustrate, accessible design generally benefits all users.

1.2 Principles of accessible design

This document is organized according to several principles that, if followed, will improve the design of any type of user agent:

Ensure that the user interface is accessible

A user with a disability must have access to all the functionalities offered by the user agent through its user interface. Since some users cannot use some parts of the user interface, it needs to be adaptable to their particular needs. To ensure the accessibility of the user interface, people with disabilities should be involved in its design and testing.

One requirement is that users be able to operate the user interface with a variety of input devices (mouse, keyboard, speech input, etc.) and output devices (graphical display, speech output, Braille display, etc.). Redundant input and output methods (accomplished through the standard input and output Application Programming Interfaces (APIs) implemented by the user agent) help users operate controls of the user agent as well as those included as part of content.

In order for people to use the user agent at all, the installation procedure (and any subsequent software update procedures) must be accessible according to the guidelines of this document. For example, the user agent must provide device-independent access and accessible documentation of the installation.

This document includes a number of user interface requirements that are similar to, or related to, general guidelines for user interface design. The general topic of user interface design for computer software exceeds the scope of this document, though some user interface requirements have been included because of their importance to accessibility. The Techniques document [UAAG10-TECHS] includes some references to general software design guidelines and platform-specific accessibility guidelines.

Note: This document addresses accessible user agent support for some markup language features (e.g., tables for layout, etc.) that may be widely deployed, but whose use may be discouraged.

Ensure that the user has access to content

User agents must ensure access to content:

Help orient the user

User agents can help the user remain oriented in a page or site by supplying context, including:

The user agent should also minimize chances that user will become disoriented. User agents should:

Follow operating system standards and conventions and use open specifications

Following platform and operating system standards and guidelines promotes accessibility, usability, and predictability. Platform guidelines explain what users will expect from the look and feel of the user interface, keyboard conventions, documentation, etc. Platform guidelines also include information about accessibility features that the user agent should adopt rather than reimplementing them.

So that desktop browsers can make information available to assistive technologies, they must communicate through standard interfaces. An architecture that makes possible programmatic access to content and the user interface will benefit assistive technologies, scripting tools, and automated test engines. It will also promote software modularity and reuse.

1.3 How the guidelines are organized

The eleven guidelines in this document state general principles for the development of accessible user agents. Each guideline includes:

Each checkpoint definition includes:

Each checkpoint is intended to be specific enough so that someone reviewing a user agent may verify that the checkpoint has been satisfied. Note: The checkpoints have been designed to be verifiable, although some may be difficult to verify without documentation from vendors about what features and APIs they implement.

This document includes as an appendix a glossary. Another appendix lists all checkpoints in tabular and linear format for convenient reference [UAAG10-CHECKLIST].

1.4 Related resources

A separate document, entitled "Techniques for User Agent Accessibility Guidelines 1.0" [UAAG10-TECHS], provides suggestions and examples of how each checkpoint might be satisfied. It also includes references to other accessibility resources (such as platform-specific software accessibility guidelines) that provide additional information on how a user agent may satisfy each checkpoint. Readers are strongly encouraged to become familiar with the Techniques document. Note that the techniques provided are informative examples only, and other strategies may be used to meet the checkpoint as well as, or in place of, those listed therein. The Techniques document is expected to be updated more frequently than the current guidelines.

"User Agent Accessibility Guidelines 1.0" is part of a series of accessibility guidelines published by the Web Accessibility Initiative (WAI). The series also includes "Web Content Accessibility Guidelines 1.0" [WCAG10] and "Authoring Tool Accessibility Guidelines 1.0" [ATAG10]. In addition to this series, WAI provides other resources and educational materials about Web accessibility.

1.5 Document conventions

The following editorial conventions are used throughout this document:

1.6 Priorities

Each checkpoint in this document is assigned a priority that indicates its importance for users with disabilities.

[Priority 1]
This checkpoint must be satisfied by user agents, otherwise one or more groups of users with disabilities will find it impossible to access the Web. Satisfying this checkpoint is a basic requirement for enabling some people to access the Web.
[Priority 2]
This checkpoint should be satisfied by user agents, otherwise one or more groups of users with disabilities will find it difficult to access the Web. Satisfying this checkpoint will remove significant barriers to Web access for some people.
[Priority 3]
This checkpoint may be satisfied by user agents to make it easier for one or more groups of users with disabilities to access information. Satisfying this checkpoint will improve access to the Web for some people.

1.7 Conformance

This section explains how to make a valid claim that a user agent conforms to this document. The terms "must", "should", and "may" (and related terms) are used in this document in accordance with RFC 2119 [RFC2119].

Who may claim conformance

Anyone may make a claim (e.g., vendors about their own products, third parties about those products, journalists about products, etc.). Claims may be published anywhere (e.g., on the Web or in product documentation).

Claimants are solely responsible for their claims and the use of the conformance icons. If the subject of the claim (i.e., the software) changes after the date of the claim, the claimant is responsible for updating the claim. Claimants are encouraged to conform to the most recent guidelines available.

Which user agents may conform

This document has been designed to promote the accessibility of general-purpose graphical user agents. While many of the principles set forth in this document apply to other classes of user agents, including assistive technologies, many of the checkpoints do not. As the number of applicable checkpoints decreases for a piece of software, the likelihood increases that the guidelines are not an accurate gauge of the accessibility of that piece of software. Therefore, while assistive technologies and other specialized user agents obviously promote accessibility, they are not expected to conform (for instance, because they target a particular user group, or they do not make available information through APIs) because they generally do strive to be general purpose user agents. This document will help assistive technology developers understand what functionalities and communication an accessible general purpose user agent should provide.

Note: These guidelines aim to make conforming user agents accessible. This includes the accessibility of the user agent's user interface in addition to the accessibility of Web content. When used in conjunction with assistive technology, conforming user agents are expected to be accessible to most users with disabilities; in some cases, accessibility is "completed" by the use of an assistive technology. Some user agents may not conform to these guidelines but still be accessible to some users with disabilities. By following the principles of this document, developers of all user agents (not just conforming user agents) should improve the accessibility of their products.

Conformance levels

A conformance claim must indicate what conformance level is met:

Note: Conformance levels are spelled out in text (e.g., "Double-A" rather than "AA") so they may be understood when rendered as speech.

Well-formed conformance claims

A well-formed claim must include the following information:

About the guidelines:
About the subject of the claim:
Properties of the claim:

There is no restriction on the format used to make the claim, except that at least one representation of the claim must be accessible according to the Web Content Accessibility Guidelines 1.0 [WCAG10]. For instance, the claim may be marked up using HTML, or expressed in the Resource Description Framework (RDF) [RDF10] Here is an example of a claim expressed in HTML:

<p>On 7 May 2000, this product (version 2.3 on MyOperatingSystem) conforms to <abbr title="the World Wide Web Consortium">W3C</abbr>'s "User Agent Accessibility Guidelines 1.0", http://www.w3.org/WAI/UA/WD-UAAG10-20000507, level Double-A. The <a href="http://example.com/checkpoints"> list of checkpoints that do not apply</a> is available online.</p>

Validity of a claim

A conformance claim is valid for a given conformance level if:

  1. The claim is well-formed, and
  2. The subject of the claim satisfies all the applicable checkpoints for that level.

Claimants (or relevant assuring parties) are responsible for the validity of a claim. As of the publication of this document, W3C does not act as an assuring party, but it may do so in the future, or establish recommendations for assuring parties.

Claimants are expected to modify or retract a claim if it may be demonstrated that the claim is not valid. Please note that it is not currently possible to validate claims completely automatically.

Conformance icons

As part of a conformance claim, people may use a conformance icon on a Web site, on product packaging, in documentation, etc. Each conformance icon (chosen according to the appropriate conformance level) must link to the W3C explanation of the icon. The appearance of a conformance icon does not imply that W3C has reviewed or validated the claim. An icon must be accompanied by a well-formed claim.

Note: In the event this document becomes a W3C Recommendation, additional information about the icons and how to use them will be available at the W3C Web site.

Checkpoint applicability

Not every checkpoint or guideline is applicable to every user agent. Generally, a user agent must adhere to checkpoints that ensure accessibility of functionalities that it offers to users and it must implement required functionalities natively. If the user agent supports keyboard input, it must support accessible keyboard input. If the user agent supports images, it must ensure access to each image or an equivalent alternative specified by the author. If a user agent supports style sheets, it must implement the accessibility features of the style sheet language. If the user agent supports frames, it must ensure access to frame alternatives specified by the author. In short, if a user agent offers a functionality, it must ensure that people with disabilities have access to that functionality or an equivalent alternative.

Not all user agents support every content type, markup language feature, input or output device interface, etc. When a content type, feature, or device interface is not supported, checkpoints with requirements related to it do not apply to the user agent. Thus, if a user agent supports style sheets at all, all checkpoints related to style sheet accessibility apply. If a user agent does not support style sheets at all, the checkpoints do not apply.

The applicability of checkpoints related to markup language features is determined similarly. If a user agent supports tables, it must support the accessibility features of the language related to tables (and so on, for images, frames, video, links, etc.). The Techniques document includes information about the accessibility features of W3C languages such as HTML, CSS, and SMIL.

To summarize, a checkpoint (or portion of a checkpoint) applies to a user agent unless at least one of the following is true:

Each checkpoint requirement must be satisfied by making information or functionalities available through the user agent's user interface unless the checkpoint explicitly states that the requirement must be met by making information available through an Application Programming Interface (API).


2. User agent accessibility guidelines

Guideline 1. Support input and output device-independence.

Ensure that the user can interact with the user agent (and the content it renders) through all of the input and output APIs used by the user agent.

Since people use a variety of devices for input and output, user agent developers must ensure redundancy in the user interface. Messages and alerts to the user must not rely on auditory or graphical cues alone; text, beeps, flashes, and other techniques used together will make these alerts accessible. Text messages are generally accessible since they may be used by people with graphical displays, speech synthesizers, or Braille displays.

People who cannot or do not use a mouse must be able to operate the user interface with the keyboard, through voice input, a head wand, touch screen, or other device. Keyboard operation of all functionalities offered through the user interface is one of the most important aspects of user agent accessibility on almost every platform. The keyboard is available to most users, it is widely supported, and hooks provided for the keyboard can be used for other types of input.

To ensure that assistive technologies can both operate the user agent programmatically (e.g., through simulated keyboard events) and monitor user agent output (e.g., output text), developers are expected to use each API appropriately. Developers should not, for example, pre-rasterize text or convert text to a series of strokes since doing so may prevent assistive technologies from being able to render the text as speech or Braille.

Checkpoints for communication with other software:

1.1 Ensure that every functionality available through the user interface is also available through every input API implemented by the user agent. [Priority 1]
Note: This checkpoint does not require developers to implement all operating system input APIs, only to make the software accessible through those they do implement. The device-independence required by this checkpoint applies to the functionalities described by the other checkpoints in this document (e.g., installation, documentation, user agent user interface configuration, etc.). This checkpoint does not require developers to reimplement the input methods associated with the keyboard, pointing device, voice, and other device APIs. For example, developers are not required to implement text input through a mouse API or pointer motion through a keyboard API.
Techniques for checkpoint 1.1
1.2 Use the standard input and output device APIs of the operating system. [Priority 1]
Do not bypass the standard output APIs when rendering information (e.g., for reasons of speed, efficiency, etc.). For example, do not bypass standard APIs to manipulate the memory associated with rendered content, since assistive technologies monitor rendering through the APIs. Note: When available, developers should use APIs at a higher level of abstraction than the standard device APIs for the operating system. If these higher level APIs do not use the standard device APIs properly, developers should also use the standard device APIs.
Techniques for checkpoint 1.2
1.3 Implement the standard keyboard API of the operating system and ensure that every functionality available through the user interface is available through this API. [Priority 1]
Note: This checkpoint always applies on systems with a standard keyboard API. This checkpoint is an important special case of checkpoint 1.1. Refer also to checkpoint 10.8.
Techniques for checkpoint 1.3

Checkpoints for user interface accessibility:

1.4 Ensure that the user can interact with all active elements in a device-independent manner. [Priority 1]
For example, users who are blind or have physical disabilities must be able to activate text links, the links in a client-side image map, and form controls without a pointing device. Note: This checkpoint is an important special case of checkpoint 1.1.
Techniques for checkpoint 1.4
1.5 Ensure every non-text message (e.g., prompt, alert, notification, etc.) that is part of the user agent's user interface also has a text equivalent in the user interface. [Priority 1]
Note: For example, if the user is notified of an event by an auditory cue, a text equivalent in the status bar would satisfy this checkpoint. Use standard interface controls so that text equivalents are available through standard APIs. The text equivalent must be available to assistive technologies so that it can be rendered visually, as synthesized speech, or as Braille. Refer also to checkpoint 5.5.
Techniques for checkpoint 1.5

Guideline 2. Ensure user access to all content.

Ensure that users have access to all content, notably author-specified equivalent alternatives for content such as text equivalents and auditory descriptions.

Just as people use a variety of devices for user interface input and output, they require that content be available in different modes -- auditory (synthesized and prerecorded), tactile (Braille), graphical, or a mix of some of these. Authors and user agents share responsibility for ensuring redundant modes. Web content providers specify equivalent alternatives for content, such as text equivalents for images or video, according to the conventions of the markup language they are using (refer to the Techniques document [UAAG10-TECHS] for details). User agents must ensure that users have access to this content, as well as any alternatives generated by the user agent itself. User agents should allow users to specify whether primary content should be rendered, equivalent alternatives should be rendered, or both.

Ensuring access to equivalent alternatives benefits all users since some users may not have access to some content due to a technological limitation (e.g., their mobile browser cannot display graphics) or simply a configuration preference (e.g., they have a slow Internet connection and prefer not to download images).

Checkpoints for content accessibility:

2.1 Make all content available through the user interface. [Priority 1]
Users must have access to the entire document object, including equivalent alternatives for content, attributes, style sheets, etc. through the user interface. This checkpoint does not require that all content be available in every view. A document source view is part of a solution for providing access to content, but is not a sufficient solution on its own. Refer to guideline 5 for more information about programmatic access to content.
Techniques for checkpoint 2.1
2.2 For presentations that require user input within a specified time interval, allow the user to configure the time interval (e.g., to extend it or to cause the user agent to pause the presentation automatically and await user input before proceeding). [Priority 1]
Techniques for checkpoint 2.2
2.3 If content available in a viewport has equivalent alternatives, provide easy access in context to the alternatives. [Priority 1]
For example, if an image in an HTML document has text equivalents, provide access to them by rendering them nearby, allowing the user to configure the user agent to render them in place of the image, or allowing the user to follow a readily available link to them.
Techniques for checkpoint 2.3
2.4 Allow the user to specify that text transcripts, collated text transcripts, captions, and auditory descriptions be rendered at the same time as the associated auditory and visual tracks. Respect author-specified synchronization cues during rendering. [Priority 1]
Techniques for checkpoint 2.4
2.5 When the author has not specified a text equivalent for content as required by the markup language, make available other author-specified information about the content (e.g., object type, file name, etc.). [Priority 2]
Techniques for checkpoint 2.5
2.6 When a text equivalent for content is explicitly empty (i.e., an empty string), render nothing. [Priority 3]
Techniques for checkpoint 2.6
2.7 For author-identified but unsupported natural languages, allow the user to request notification of language changes in content. [Priority 3]
Techniques for checkpoint 2.7

Guideline 3. Allow the user to turn off rendering or stop behavior that may reduce accessibility.

Ensure that the user may turn off rendering or stop behavior specified by the author that may reduce accessibility by obscuring content or disorienting the user.

Some content or behavior specified by the author may make the user agent unusable or may obscure information. For instance, flashing content may trigger seizures in people with photosensitive epilepsy, or may make a Web page too distracting to be usable by someone with a cognitive disability. Blinking can affect screen reader users, since screen readers (in conjunction with speech synthesizers or Braille displays) may repeat the text every time it blinks. Distracting background images, colors, or sounds make make it impossible for users to see or hear other content.

Dynamically changing Web content may cause problems for some assistive technologies. Scripts that cause unanticipated changes (viewports that open, automatically redirected or refreshed pages, etc.) may disorient some users with cognitive disabilities.

Users may need to turn off these effects in order to have access to content. A user agent must provide on/off control even when it hands off content (e.g., a sound file) to the operating system or to a helper application for rendering; the user agent is aware of the content type and thus can choose not to render it. Please also refer to guideline 4 and guideline 10.

Checkpoints for content accessibility:

3.1 Allow the user to turn on and off rendering of background images. [Priority 1]
Techniques for checkpoint 3.1
3.2 Allow the user to turn on and off rendering of background audio. [Priority 1]
Techniques for checkpoint 3.2
3.3 Allow the user to turn on and off rendering of video. [Priority 1]
Techniques for checkpoint 3.3
3.4 Allow the user to turn on and off rendering of audio. [Priority 1]
Techniques for checkpoint 3.4
3.5 Allow the user to turn on and off animated or blinking text. [Priority 1]
Techniques for checkpoint 3.5
3.6 Allow the user to turn on and off animations and blinking images. [Priority 1]
Techniques for checkpoint 3.6
3.7 Allow the user to turn on and off support for scripts and applets. [Priority 1]
Note: This is particularly important for scripts that cause the screen to flicker, since people with photosensitive epilepsy can have seizures triggered by flickering or flashing, particularly in the 4 to 59 flashes per second (Hertz) range.
Techniques for checkpoint 3.7
3.8 For automatic content changes specified by the author (e.g., redirection and content refresh), allow the user to slow the rate of change. [Priority 2]
Techniques for checkpoint 3.8
3.9 Allow the user to turn on and off rendering of images. [Priority 2]
Techniques for checkpoint 3.9

Guideline 4. Ensure user control of styles.

Ensure that the user can select preferred styles (colors, text size, synthesized speech characteristics, etc.) from choices offered by the user agent. The user must be able to override author-specified styles and user agent default styles.

Providing access to content (refer to guideline 2) includes enabling users to configure its presentation. Users with low vision may require larger text than the default size specified by the author or the user agent. Users with color blindness may need to impose or prevent certain color combinations. Users with physical or cognitive disabilities may need to configure the rate of a multimedia presentation.

For dynamic presentations such as synchronized multimedia presentations created with SMIL 1.0 [SMIL], users with cognitive, hearing, visual, and physical disabilities may not be able to interact with a presentation within the time delays assumed by the author. To make the presentation accessible to these users, user agents rendering synchronized multimedia presentations or audio presentations must provide access to content in a time-independent manner and/or allow users to adjust the playback rate of the presentation.

User agents must also allow users to configure the style of the user interface elements, such as styles for selection and content focus (e.g., to ensure adequate color contrast).

For more information about configuration, refer to guideline 10.

Note: The checkpoints in this guideline apply to all content, including equivalent alternatives.

Checkpoints for fonts and colors:

4.1 Allow the user to configure the size of text. [Priority 1]
For example, allow the user to specify a font size directly through the user agent user interface or in a user style sheet. Or, allow the user to zoom or magnify content.
Techniques for checkpoint 4.1
4.2 Allow the user to configure font family. [Priority 1]
Techniques for checkpoint 4.2
4.3 Allow the user to configure foreground color. [Priority 1]
Techniques for checkpoint 4.3
4.4 Allow the user to configure background color. [Priority 1]
Techniques for checkpoint 4.4

Checkpoints for multimedia and audio presentations:

4.5 Allow the user to slow the presentation rate of audio, video, and animations. [Priority 1]
Refer also to checkpoint 2.4.
Techniques for checkpoint 4.5
4.6 Allow the user to start, stop, pause, advance, and rewind audio, video, and animations. [Priority 1]
Techniques for checkpoint 4.6
4.7 Allow the user to position text transcripts, collated text transcripts, and captions on graphical displays. [Priority 1]
The user agent is expected to allow the user the same range of positions that is available to the author according to specification.
Techniques for checkpoint 4.7
4.8 Allow the user to configure the audio volume. [Priority 2]
Techniques for checkpoint 4.8

Checkpoints for synthesized speech:

4.9 Allow the user to configure synthesized speech playback rate. [Priority 1]
Techniques for checkpoint 4.9
4.10 Allow the user to configure synthesized speech volume. [Priority 1]
Techniques for checkpoint 4.10
4.11 Allow the user to configure synthesized speech pitch, gender, and other articulation characteristics. [Priority 2]
Techniques for checkpoint 4.11

Checkpoints for user interface accessibility:

4.12 Allow the user to select from available author and user style sheets or to ignore them. [Priority 1]
Note: By definition, the user agent's default style sheet is always present, but may be overridden by author or user styles.
Techniques for checkpoint 4.12
4.13 Allow the user to configure how the selection is highlighted (e.g., foreground and background color). [Priority 1]
Techniques for checkpoint 4.13
4.14 Allow the user to configure how the content focus is highlighted (e.g., foreground and background color). [Priority 1]
Techniques for checkpoint 4.14
4.15 Allow the user to configure whether the current focus moves automatically to a viewport that opens without an explicit request from the user. [Priority 2]
Techniques for checkpoint 4.15
4.16 Allow the user to configure the user agent to limit the number of open viewports. [Priority 2]
Some users may become disoriented when there are too many open viewports. Refer also to checkpoint 4.15, checkpoint 5.5, and checkpoint 9.3.
Techniques for checkpoint 4.16

Guideline 5. Observe system conventions and standard interfaces.

Communicate with other software (e.g., assistive technologies, the operating system, plug-ins) through applicable interfaces. Observe system and programming language conventions for the user agent user interface, documentation, installation, etc.

Part of user agent accessibility involves communication within the user's "accessibility environment." This includes:

Using interoperable APIs and following system conventions increases predictability for users and for developers of assistive technologies.

Checkpoints for communication with other software:

5.1 Provide programmatic read access to HTML and XML content by conforming to the W3C Document Object Model (DOM) Level 2 Core and HTML modules and exporting the interfaces they define. [Priority 1]
Note: These modules are defined in DOM Level 2 [DOM2], chapters 1 and 2. Please refer to that specification for information about which versions of HTML and XML are supported and for the definition of a "read-only" DOM. This checkpoint is an important special case of checkpoint 2.1. For content other than HTML and XML, refer to checkpoint 5.3.
Techniques for checkpoint 5.1
5.2 If the user can modify HTML and XML content through the user interface, provide the same functionality programmatically by conforming to the W3C Document Object Model (DOM) Level 2 Core and HTML modules and exporting the interfaces they define. [Priority 1]
For example, if the user interface allows users to complete HTML forms, this must also be possible through the DOM APIs. Note: These modules are defined in DOM Level 2 [DOM2], chapters 1 and 2. Please refer to DOM Level 2 [DOM2] for information about which versions of HTML and XML are supported. This checkpoint is an important special case of checkpoint 2.1. For markup languages other than HTML and XML, refer to checkpoint 5.3.
Techniques for checkpoint 5.2
5.3 For markup languages other than HTML and XML, provide programmatic access to content using standard APIs (e.g., platform-independent APIs and standard APIs for the operating system). [Priority 1]
Note: This checkpoint addresses content not covered by checkpoints checkpoint 5.1 and checkpoint 5.2. This checkpoint is an important special case of checkpoint 2.1.
Techniques for checkpoint 5.3
5.4 Provide programmatic read and write access to user agent user interface controls using standard APIs (e.g., platform-independent APIs such as the W3C DOM, standard APIs for the operating system, and conventions for programming languages, plug-ins, virtual machine environments, etc.) [Priority 1]
For example, provide access to information about the user agent's current input configuration so that assistive technologies can trigger functionalities through keyboard events, mouse events, etc.
Techniques for checkpoint 5.4
5.5 Provide programmatic notification of changes to content and user interface controls (including selection, content focus, and user interface focus). [Priority 1]
Use the standard APIs required by guideline 5.
Techniques for checkpoint 5.5
5.6 Ensure that programmatic exchanges proceed in a timely manner. [Priority 2]
For example, the programmatic exchange of information required by other checkpoints in this document must be efficient enough to prevent information loss, a risk when changes to content or user interface occur more quickly than the communication of those changes. The techniques for this checkpoint explain how developers can reduce communication delays, e.g., to ensure that assistive technologies have timely access to the document object model and other information needed for accessibility.
Techniques for checkpoint 5.6
5.7 Provide programmatic access to Cascading Style Sheets (CSS) by conforming to the W3C Document Object Model (DOM) Level 2 CSS module and exporting the interfaces it defines. [Priority 3]
Note: This module is defined in DOM Level 2 [DOM2], chapter 5. Please refer to that specification for information about which versions of CSS are supported. This checkpoint is an important special case of checkpoint 2.1.
Techniques for checkpoint 5.7

Checkpoints for user interface accessibility:

5.8 Follow operating system conventions that affect accessibility. In particular, follow conventions for user interface design, keyboard configuration, product installation, and documentation. [Priority 2]
Note: Operating system conventions that affect accessibility are those described in this document and in platform-specific accessibility guidelines. Some of these conventions (e.g., sticky keys, mouse keys, show sounds, etc.) are discussed in the Techniques document [UAAG10-TECHS]. Refer also to checkpoint 10.2.
Techniques for checkpoint 5.8

Guideline 6. Implement accessible specifications.

Support the accessibility features of all implemented specifications. Implement W3C Recommendations when available and appropriate for a task.

Developers should implement open and accessible specifications. Conformance to open specifications promotes interoperability and accessibility by making it easier to design assistive technologies (also discussed in guideline 5).

While developers should implement the accessibility features of any specification, this document promotes W3C specifications for several reasons:

Checkpoints for content accessibility:

6.1 Implement the accessibility features of supported specifications (markup languages, style sheet languages, metadata languages, graphics formats, etc.). [Priority 1]
Note: This checkpoint applies to all specifications, not just W3C specifications. The Techniques document [UAAG10-TECHS] provides information about the accessibility features of some specifications, including W3C specifications.
Techniques for checkpoint 6.1
6.2 Use and conform to W3C Recommendations when they are available and appropriate for a task. [Priority 2]
For instance, for markup, implement HTML 4.01 [HTML4], XHTML 1.0 [XHTML10], or XML 1.0 [XML]. For style sheets, implement CSS ([CSS1], [CSS2]). For mathematics, implement MathML [MATHML]. For synchronized multimedia, implement SMIL 1.0 [SMIL]. For information about programmatic access to HTML and XML content, refer to guideline 5.
Note: For reasons of backward compatibility, user agents should continue to implement deprecated features of specifications. The current guidelines refer to some deprecated language features that do not necessarily promote accessibility but are widely deployed. Information about deprecated language features is generally part of the language's specification.
Techniques for checkpoint 6.2

Guideline 7. Provide navigation mechanisms.

Provide access to content through a variety of navigation mechanisms: direct navigation, sequential navigation, searches, structured navigation, etc.

Providing a variety of navigation mechanisms helps users with disabilities (and all users) access content more quickly. Content navigation is particularly important to users who access content serially (e.g., as synthesized speech or Braille).

Sequential navigation (e.g., line scrolling, page scrolling, sequential navigation through active elements, etc.) means advancing (or rewinding) through rendered content in well-defined steps (line by line, screen by screen, link by link, etc.). Sequential navigation can provide context, but can be time-consuming. Sequential navigation is important to users who cannot scan a page visually for context and benefits all users unfamiliar with a page. Sequential access may be based on element type (e.g., links only), content structure (e.g., navigation from heading to heading), or other criteria.

Direct navigation (go to a particular link or paragraph, search for instances of a string, etc.) is faster than sequential navigation, but generally requires familiarity with the content. Direct navigation is important to users with some physical disabilities (who may have little or no manual dexterity and/or increased tendency to push unwanted buttons or keys) and benefits all "power users." Selecting text or structured content with the pointing device is another form of direct navigation. Searching on text is one important variant of direct navigation.

Structured navigation mechanisms such as navigation of headings, tables, lists, etc., offer both context and speed. Structured access. For information about programmatic access to document structure, refer to guideline 5.

User agents should allow users to configure navigation mechanisms (e.g., to allow navigation of links only, or links and headings, or tables and forms, etc.). For more information about configuration, refer to guideline 10.

Checkpoints for user interface accessibility:

7.1 Allow the user to navigate among viewports (including frames). [Priority 1]
Note: For example, when all frames of a frameset are displayed side-by-side, allow the user to navigate among them with the keyboard. Or, when frames are accessed or viewed one at a time (e.g., by a text browser or speech synthesizer), provide a list of links to other frames. Navigating into a viewport makes it the current viewport.
Techniques for checkpoint 7.1
7.2 For user agents that offer a browsing history mechanism, when the user returns to a previous viewport, restore the point of regard in the viewport. [Priority 1]
For example, when users navigate "back" and "forth" among viewports, they should return to the same position they left in the viewport.
Techniques for checkpoint 7.2
7.3 Allow the user to navigate all active elements. [Priority 1]
Navigation may include non-active elements in addition to active elements. Note: This checkpoint is an important special case of checkpoint 7.6.
Techniques for checkpoint 7.3
7.4 Allow the user to choose to navigate only active elements. [Priority 2]
Techniques for checkpoint 7.4
7.5 Allow the user to search for rendered text content, including rendered text equivalents. [Priority 2]
Note: Use operating system conventions for marking the result of a search (e.g., selection or content focus).
Techniques for checkpoint 7.5
7.6 Allow the user to navigate efficiently to and among important structural elements identified by the author. [Priority 2]
Structured navigation of headings, tables, forms, lists, etc. is most effective when available in conjunction with a configurable view (checkpoint 8.4 and checkpoint 8.5). Users should be able to navigate to important pieces of content within a configurable view, identify the type of object they have navigated to, interact with that object easily (if its an active element), and recall the surrounding context (orient themselves). Use operating system conventions to indicate navigation progress (e.g., selection or content focus).
Techniques for checkpoint 7.6
7.7 Allow the user to configure structured navigation. [Priority 3]
For example, allow the user to navigate only paragraphs, or only headings and paragraphs, etc.
Techniques for checkpoint 7.7

Guideline 8. Orient the user.

Provide information that will help the user understand browsing context.

All users require clues to help them understand their "location" when browsing. Some mechanisms that provide such clues include:

Orientation mechanisms such as these are especially important to users who view content serially, (e.g., when rendered as speech or Braille). For instance, these users cannot "scan" a graphically displayed table with their eyes for information about a table cell's headers, neighboring cells, etc. User agents must provide other means for users to understand table cell relationships, frame relationships (what relationship does the graphical layout convey?), form context (have I filled out the form completely?), link information (have I already visited this link?), etc.

User agents must make orientation information available in an output device independent manner. Refer also to guideline 1.

Checkpoints for content accessibility:

8.1 Make available to the user the author-specified purpose of each table and the relationships among the table cells and headers. [Priority 1]
For example, provide information about table headers, how headers relate to cells, table summary information, cell position information, table dimensions, etc. Graphical user agents may satisfy this checkpoint by rendering a table as a two dimensional grid and by ensuring that users can find headers associated with cells. Refer also to checkpoint 5.3. Note: This checkpoint is an important special case of checkpoint 2.1.
Techniques for checkpoint 8.1
8.2 Indicate to the user whether a link has been visited. [Priority 2]
Note: Do not use color as the only distinguishing factor between visited and unvisited links as some users may not perceive colors and some devices may not render them. This checkpoint is an important special case of checkpoint 8.6.
Techniques for checkpoint 8.2
8.3 Indicate to the user whether a link has been marked up to indicate that following it will involve a fee. [Priority 2]
Note: This checkpoint is an important special case of checkpoint 8.6. The W3C specification "Common Markup for micropayment per-fee-links" [MICROPAYMENT] describes how authors may mark up micropayment information in an interoperable manner.
Techniques for checkpoint 8.3
8.4 Make available to the user an "outline" view of content, built from structural elements (e.g., frames, headings, lists, forms, tables, etc.). [Priority 2]
For example, for each frame in a frameset, provide a table of contents composed of headings (e.g., the H1 - H6 elements in HTML) where each entry in the table of contents links to the heading in the document. Note: This checkpoint does not require that the outline view be navigable, but this is recommended (refer to checkpoint 7.6).
Techniques for checkpoint 8.4
8.5 Allow the user to configure the outline view. [Priority 3]
For example, allow the user to configure the level of detail of the outline. Refer also to checkpoint 8.4 and checkpoint 5.4.
Techniques for checkpoint 8.5
8.6 To help the user decide whether to follow a link, make available link information specified by the author and computed by the user agent. [Priority 3]
Information specified by the author includes link content, link title, whether the link is internal, whether it involves a fee, and hints on the content type, size, or natural language of the linked resource. Information computed by the user agent includes whether the user has already visited the link. Note: User agents are not required to retrieve the resource designated by a link as part of computing information about the link.
Techniques for checkpoint 8.6
8.7 Allow the user to configure what information about links to present. [Priority 3]
Note: Refer also to checkpoint 8.6.
Techniques for checkpoint 8.7

Checkpoints for user interface accessibility:

8.8 Implement selection, content focus, and user interface focus mechanisms. [Priority 1]
Follow system conventions for these mechanisms, per checkpoint 5.8. Refer also to checkpoint 7.1.
Techniques for checkpoint 8.8
8.9 Provide a mechanism for highlighting and identifying (through a standard interface where available) the current viewport, selection, and content focus. [Priority 1]
Note: This includes highlighting and identifying frames. Note: This checkpoint is an important special case of checkpoint 1.1. Refer also to checkpoint 8.6.
Techniques for checkpoint 8.9
8.10 Provide a mechanism for highlighting and identifying active elements. [Priority 2]
On most systems, the focus is used to identify and highlight active elements.
Techniques for checkpoint 8.10

Guideline 9. Notify the user of content and viewport changes.

Alert users, in an output device independent fashion, of changes to content or viewports.

For people with visual disabilities or certain types of learning disabilities, it is important that the point of regard remain as stable as possible. Unexpected changes may cause users to lose track of how many viewports are open, which is the current viewport, etc. User agents should notify the user of content and viewport changes caused by scripts, or allow users to turn off scripts entirely (refer to checkpoint 3.7).

Refer to checkpoint 5.5 for requirements about notification of user interface changes through an API.

Checkpoints for user interface accessibility:

9.1 Ensure that when the selection or content focus changes, it is in a viewport after the change. [Priority 2]
For example, if users navigating links move to a portion of the document outside the viewport, the viewport should scroll to include the new location of the focus.
Techniques for checkpoint 9.1
9.2 Allow configuration so the user is prompted to confirm any form submission not caused by explicit activation of a form submit control. [Priority 2]
For example, do not submit a form automatically when a menu option is selected, when all fields of a form have been filled out, or when a mouseover event occurs.
Techniques for checkpoint 9.2
9.3 Allow the user to configure notification preferences for common types of content and viewport changes. [Priority 3]
For example, allow the user to choose to be notified (or not) that a script has been executed, that a new viewport has been opened, that a pulldown menu has been opened, that a new frame has received focus, etc.
Techniques for checkpoint 9.3
9.4 When transferring content (e.g., a document, image, audio, video, etc.) indicate what proportion of the content has been transferred and whether the transfer has stalled. [Priority 3]
Techniques for checkpoint 9.4
9.5 Indicate the relative position of the viewport in rendered content (e.g., the percentage of an audio or video clip that has been played, the percentage of a Web page that has been viewed, etc.). [Priority 3]
Note: The user agent may calculate the percentage according to content focus position, selection position, or viewport position, depending on how the user has been browsing.
Techniques for checkpoint 9.5

Guideline 10. Allow configuration and customization.

Allow users to configure the user agent so that frequently performed tasks are made convenient, and to save their preferences.

Web users have a wide range of capabilities and must be able to configure the user agent according to their preferences for styles, graphical user interface configuration, keyboard configuration, etc.

Checkpoints for user interface accessibility:

10.1 Provide information to the user about current user preferences for input configurations (e.g., keyboard or voice bindings). [Priority 1]
Techniques for checkpoint 10.1
10.2 Avoid default input configurations that interfere with operating system accessibility conventions. [Priority 1]
In particular, default configurations should not interfere with operating conventions for keyboard accessibility. Information about operating system accessibility conventions is available in the Techniques document [UAAG10-TECHS]. Refer also to checkpoint 5.8.
Techniques for checkpoint 10.2
10.3 Provide information to the user about current author-specified input configurations (e.g., keyboard bindings specified in HTML documents with the "accesskey" attribute). [Priority 2]
Techniques for checkpoint 10.3
10.4 Allow the user to change the input configuration. [Priority 2]
For voice-activated browsers, allow the user to modify which voice commands activate functionalities. Similarly, allow the user to modify the graphical user agent user interface for quick access to commonly used functionalities (e.g., through buttons). Refer also to checkpoint 10.5 and checkpoint 10.9.
Techniques for checkpoint 10.4
10.5 Allow the user to configure the user agent so that the user's preferred one-step operations may be activated with a single input command (e.g., key stroke, voice command, etc.). [Priority 2]
Note: User agents are not required to provide single command activation of all user agent functionalities at once, only some of them. Furthermore, in some modes of interaction (e.g., when the user is entering text), the number of single commands available will be significantly reduced. This checkpoint is an important special case of checkpoint 10.4.
Techniques for checkpoint 10.5
10.6 Follow operating system conventions to indicate the input configuration. [Priority 2]
For example, on some operating systems, developers may specify which command sequence will activate a functionality so that the standard user interface components display that binding. For example, if a functionality is available from a menu, the letter of the activating key will be underlined in the menu. Note: This checkpoint is an important special case of checkpoint 5.8.
Techniques for checkpoint 10.6
10.7 For the configuration requirements of this document, allow the user to save user preferences in a profile. [Priority 2]
Note: This includes user preferences for styles, presentation rates, input configurations, navigation, viewports, and notification. Users must be able to select from among available profiles or no profile (i.e., the user agent default settings).
Techniques for checkpoint 10.7
10.8 Ensure that frequently used functionalities are easily activated in the default input configuration. [Priority 3]
Make the most frequent operations easy to access and operable through a single command.
Techniques for checkpoint 10.8
10.9 For graphical user interfaces, allow the user to configure the arrangement of user agent user interface controls. [Priority 3]
For instance, allow users to configure which of available controls appear on a graphical tool bar. Note: This checkpoint is an important special case of checkpoint 10.4.
Techniques for checkpoint 10.9

Guideline 11. Provide accessible product documentation and help.

Ensure that the user can learn about software features from documentation, and in particular, features that relate to accessibility.

Documentation includes anything that explains how to install, get help for, use, or configure the product. At least one version of the documentation must conform to the Web Content Accessibility Guidelines 1.0 [WCAG10].

Features that support accessibility must be clearly documented so that users with disabilities can learn to operate the user agent efficiently. Documentation of keyboard accessibility is particularly important to users with visual disabilities and some types of physical disabilities. Without this documentation, a user with a disability (or multiple disabilities) may not think that a particular task can be performed. Or the user may try to use a much less efficient technique to perform a task, such as using a mouse, or using an assistive technology's mouse emulation key strokes.

Refer also to checkpoint 5.8.

Checkpoints for accessible documentation:

11.1 Provide a version of the product documentation that conforms to the Web Content Accessibility Guidelines 1.0 [WCAG10]. [Priority 1]
User agents may provide documentation in many formats, but at least one must conform to the Web Content Accessibility Guidelines 1.0 [WCAG10].
Techniques for checkpoint 11.1
11.2 Document all user agent features that promote accessibility. [Priority 1]
For example, review the documentation or help system to ensure that it includes information about the accessibility features discussed in this document.
Techniques for checkpoint 11.2
11.3 Document the default input configuration (e.g., default keyboard bindings). [Priority 1]
Techniques for checkpoint 11.3
11.4 In a dedicated section of the documentation, describe all features of the user agent that promote accessibility. [Priority 2]
Note: This is a more specific requirement than checkpoint 11.2.
Techniques for checkpoint 11.4
11.5 In each software release, document all changes that affect accessibility. [Priority 2]
Note: Features that affect accessibility are listed in this document and in platform-specific accessibility guidelines.
Techniques for checkpoint 11.5

3. Appendix: Glossary

Active element
An active element is an element with behaviors that may be activated (or "triggered") either through the user interface or through an API (e.g., by using scripts). Which elements are active depends on the document language and whether the features are supported by the user agent. In HTML 4.01 [HTML4] documents, for example, active elements include links, image maps, form controls, element instances with a value for the "longdesc" attribute, and element instances with scripts (event handlers) explicitly associated with them (e.g., through the various "on" attributes). Most systems use the content focus to navigate active elements and identify which is to be activated. An active element's behavior may be triggered through any number of mechanisms, including the mouse, keyboard, an API, etc. The effect of activation depends on the element. For instance, when a link is activated, the user agent generally retrieves the linked resource. When a form control is activated, it may change state (e.g., check boxes) or may take user input (e.g., a text field). Refer also to the definition of event handler.
Application Programming Interface (API)
An application programming interface (API) defines how communication may take place between applications.
Assistive technology
In the context of this document, an assistive technology is a user agent that:
  1. relies on services (such as retrieving resources, parsing markup, etc.) provided by one or more other "host" user agents. Assistive technologies communicate data and messages with host user agents by using and monitoring APIs.
  2. provides services beyond those offered by the host user agents to meet the requirements of a users with disabilities. Additional services include alternative renderings (e.g., as synthesized speech or magnified content), alternative input methods (e.g., voice), additional navigation or orientation mechanisms, content transformations (e.g., to make tables more accessible), etc.

For example, screen reader software is an assistive technology because it relies on browsers or other application software to enable Web access, particularly for people with visual and learning disabilities.

Examples of assistive technologies that are important in the context of this document include the following:

Beyond this document, assistive technologies consist of software or hardware that has been specifically designed to assist people with disabilities in carrying out daily activities, e.g., wheelchairs, reading machines, devices for grasping, text telephones, vibrating pagers, etc.
Attribute
This document uses the term "attribute" in the XML sense: an element may have a set of attribute specifications (refer to the XML 1.0 specification [XML] section 3).
Audio presentation
An audio presentation is a stand-alone audio track. Examples of audio presentations include a musical performance, a radio-style news broadcast, and a book reading. When an audio presentation includes natural language, one can create a text equivalent for it (e.g., a text transcript).
Auditory description
An auditory description is either a prerecorded human voice or a synthesized voice (recorded or generated dynamically) describing the key visual elements of a movie or animation. The auditory description is synchronized with the auditory track of the presentation, usually during natural pauses in the auditory track. Auditory descriptions include information about actions, body language, graphics, and scene changes.
Author styles
Authors styles are style property values that come from a document, its associated style sheets, or are generated by the server.
Captions
Captions (or sometimes "closed captions") are text transcripts that are synchronized with other auditory or visual tracks. Captions convey information about spoken words and non-spoken sounds such as sound effects. They benefit people who are deaf or hard-of-hearing, and anyone who cannot hear the audio (e.g., someone in a noisy environment). Captions are generally rendered graphically above, below, or superimposed over video. Note: Other terms that include the word "caption" may have different meanings in this document. For instance, a "table caption" is a title for the table, often positioned graphically above or below the table. In this document, the intended meaning of "caption" will be clear from context.
Collated text transcript
A collated text transcript is a text equivalent of a movie or animation. More specifically, it is the combination of the text transcript of the auditory track and the text equivalent of the visual track. For example, a collated text transcript typically includes segments of spoken dialogue interspersed with text descriptions of the key visual elements of a presentation (actions, body language, graphics, and scene changes). Refer also to the definitions of text transcript and auditory description. Collated text transcripts are essential for individuals who are deaf-blind.
Configure
In the context of this document, to configure means to choose, from a set of options, preferences for interface layout, user agent behavior, rendering style, and other parameters required by this document. This may be done through the user agent's user interface, through profiles, style sheets, by scripts, etc. Users should be able to save their configurations across user agent sessions (e.g., in a profile). The range of available configurations (e.g., colors, font families and sizes, sound quality, etc.) may depend on system or hardware limitations.
Content
In this specification, the term "content" is used in two ways:
  1. Content refers to the document object as a whole or in parts. Phrases such as "content type", "text content", and "language of content" refer to this usage. When used in this sense, the term content encompasses equivalent alternatives. Refer also to the definition of rendered content. and other accessibility information.
  2. Content refers to the content of an HTML or XML element, in the sense employed by the XML 1.0 specification ([XML], section 3.1): "The text between the start-tag and end-tag is called the element's content." Context should indicate that the term content is being used in this sense.
Control
In this document, the noun "control" means "user interface component" or "form component".
Device-independence
Device-independence refers to the ability to make use of software with any supported input or output device. User agents should follow operating system conventions and use standard system APIs for input and output.
Document Object, Document Object Model
The document object is the user agent's representation of data (e.g., a document). This data generally comes from the document source, but may also be generated (from style sheets, scripts, transformations, etc.) or produced as a result of preferences set within the user agent. Some data that is part of the document object is routinely rendered (e.g., in HTML, what appears between the start and end tags of elements and the values of attributes such as "alt", "title", and "summary"). Other parts of the document object are generally processed invisibly by the user agent, such as DTD-defined names of element types and attributes, and other attribute values such as "href", "id", etc. These guidelines require that users have access to both types of data through the user interface.
A document object model is the abstraction that governs the construction of the user agent's document object. The document object model employed by different user agents will vary in implementation and sometimes in scope. Nevertheless, this document calls for developers of user agents to adhere the W3C Document Object Model (DOM), which specifies a standard interface for accessing HTML and XML content. This standard interface allows authors to access and modify the document with a scripting language (e.g., JavaScript) in a consistent manner across different scripting languages. As a standard interface, use of a W3C DOM makes it easier not just for authors but for assistive technology developers to extract information and render it in ways most suited to the needs of particular users. The relevant W3C DOM Recommendations are listed in the references. In this specification, the acronym "DOM" refers to the W3C DOM.
Document Source, Document Source View
In this document, the term document source refers to the data that the user agent receives as the direct result of a request for a resource on the Web. A document source view represents all or part of a document in a way that exposes the markup language(s) used to build the resource. A source view often presents textual representations of content. Refer also to the definition of content.
Documentation
Documentation refers to all information provided by the vendor about a product, including all product manuals, installation instructions, the help system, and tutorials.
Element
This document uses the term "element" both in the XML sense (an element is a syntactic construct as described in the XML 1.0 specification [XML], section 3) and more generally to mean a type of content (such as video or sound) or a logical construct (such as a header or list).
Equivalent alternatives for content
Since content in some forms is not always accessible to users with disabilities, authors must provide equivalent alternatives for inaccessible content. In the context of this document, the equivalent must fulfill essentially the same function for the person with a disability (at least insofar as is feasible, given the nature of the disability and the state of technology), as the "primary" content does for the person without any disability. For example, the text "The Full Moon" might convey the same information as an image of a full moon when presented to users. Note that equivalent information focuses on fulfilling the same function. If the image is part of a link and understanding the image is crucial to guessing the link target, an equivalent must also give users an idea of the link target.
Equivalent alternatives of content include text equivalents (long and short, synchronized and unsynchronized) and non-text equivalents (e.g., an auditory description, or a visual track that shows a sign language translation of a written text, etc.). Please also consult the Web Content Accessibility Guidelines 1.0 [WCAG10] and its associated Techniques document [WCAG10-TECHS].
Each markup language defines its own mechanisms for specifying equivalent alternatives. For instance, in HTML 4.01 [HTML4] or SMIL 1.0 [SMIL], the "alt" attribute specifies alternative text for many elements. In HTML 4.01, authors may provide alternatives in attribute values (e.g., the "summary" attribute for the TABLE element), in element content (e.g., OBJECT for external content it specifies, NOFRAMES for frame alternatives, and NOSCRIPT for script alternatives), and in prose.
Events and scripting, event handler
User agents often perform a task when a certain event occurs, caused by user interaction (e.g., mouse motion or a key press), a request from the operating system, etc. Some markup languages allow authors to specify that a script, called an event handler, be executed when a specific event occurs, such as document loading and unloading, mouse press or hover events, keyboard events, and other user interface events. Note: The combination of HTML, style sheets, the Document Object Model (DOM), and scripting is commonly referred to as "Dynamic HTML" or DHTML. However, as there is no W3C specification that formally defines DHTML, this document only refers to event handlers and scripts.
Focus, content focus, user interface focus, current focus
The notion of focus refers to two identifying mechanisms of user agents:
  1. The "content focus" designates an active element in a document. A viewport has at most one content focus.
  2. The "user interface focus" designates a control of the user interface that will respond to user input (e.g., a radio button, text box, menu, etc.).
The term "focus" encompasses both types of focus. Where one is meant specifically in this document, it is identified.
When several viewports coexist, each may have a content and user interface focus. At all times, only one content focus or one user interface focus is active, called the current focus. The current focus responds to user input and may be toggled between content focus and user interface focus through the keyboard, pointing device, etc. Both the content and user interface focus may be highlighted. Refer also to the definition of point of regard.
Graphical
In this document, the term graphical refers to information (text, graphics, colors, etc.) rendered for visual consumption.
Highlight
A highlight mechanism emphasizes selected or focused content. For example, graphical highlight mechanisms include dotted boxes, underlining, and reverse video. Synthesized speech highlight mechanisms include alterations of voice pitch and volume.
Input configuration
An input configuration is the mapping of user agent functionalities to some user interface trigger mechanisms (e.g., menus, buttons, keyboard keys, voice commands, etc.). The default input configuration is the mapping the user finds after installation of the software; it must be included in the user agent documentation.
Native support
A user agent supports a feature natively if it does not require another piece of software (e.g., plug-in or external program) for support. Operating system features adopted as part of the user agent are considered part of native support. However, since the user agent is responsible for the accessibility of native features, it is also considered responsible for the accessibility of adopted operating system features.
Natural language
Natural language is spoken, written, or signed human language such as French, Japanese, and American Sign Language. On the Web, the natural language of content may be specified by markup or HTTP headers. Some examples include the "lang" attribute in HTML 4.01 ([HTML4] section 8.1), the "xml:lang" attribute in XML 1.0 ([XML], section 2.12), the HTML 4.01 "hreflang" attribute for links in HTML 4.01 ([HTML4], section 12.1.5), the HTTP Content-Language header ([RFC2616], section 14.12) and the Accept-Language request header ([RFC2616], section 14.4).
Point of regard
The point of regard of a viewport is its position in rendered content. What is meant precisely by "the point of regard" may vary since users may be viewing rendered content with browsers that render in various ways (graphically, as speech, as Braille, etc.). Depending on the user agent and browsing context, it may refer to a two dimensional area (e.g., for graphical rendering) or a single point (e.g., for aural rendering or voice browsing). The point of regard may also refer to a particular moment in time for content that changes over time (e.g., an audio presentation). User agents may use the focus, selection, or other means to designate the point of regard. A user agent should not change the point of regard unexpectedly as this may disorient the user.
Profile
A profile is a named and persistent representation of user preferences that may be used to configure a user agent. Preferences include input configurations, style preferences, etc. On systems with distinct user accounts, profiles enable users to reconfigure software quickly when they log on, and they may be shared by several users. Platform-independent profiles are useful for those who use the same user agent on different platforms.
Properties, values, and defaults
A user agent renders a document by applying formatting algorithms and style information to the document's elements. Formatting depends on a number of factors, including where the document is rendered: on screen, on paper, through speakers, on a Braille display, on a mobile device, etc. Style information (e.g., fonts, colors, voice inflection, etc.) may come from the elements themselves (e.g., certain font and phrase elements in HTML), from style sheets, or from user agent settings. For the purposes of these guidelines, each formatting or style option is governed by a property and each property may take one value from a set of legal values. Generally in this document, the term "property" has the meaning defined in CSS 2 ([CSS2], section 3). A reference to "styles" in this document means a set of style-related properties.
The value given to a property by a user agent when it is installed is called the property's default value.
Recognize
A user agent is said to recognize markup, content types, or rendering effects when it can identify the information. Recognition may occur through built-in mechanisms, Document Type Definitions (DTDs) style sheets, HTTP headers, and other means. An example of failure of recognition is that HTML 3.2 user agents may not recognize the new elements or attributes of HTML 4.01 [HTML4]. While a user agent may recognize blinking content specified by elements or attributes, it may not recognize blinking in an applet. The Techniques document [UAAG10-TECHS] lists some markup known to affect accessibility that should be recognized by user agents.
Rendered content
The rendered content is that part of content rendered in a given viewport (whether graphical, auditory, or tactile).
Selection, current selection
The selection generally identifies a range of content (e.g., text, images, etc.) in a document. The selection may be structured (based on the document tree) or unstructured (e.g., text-based). Content may be selected through user interaction, scripts, etc. The selection may be used for a variety of purposes: for cut and paste operations, to designate a specific element in a document, to identify what a screen reader should read, etc.
The selection may be set by the user (e.g., by a pointing device or the keyboard) or through an application programming interface (API). A viewport has at most one selection (though the selection may be rendered graphically as discontinuous text fragments). When several viewports coexist, each may have a selection, but only one is active, called the current selection.
On the screen, the selection may be highlighted using colors, fonts, graphics, magnification, etc. The selection may also be rendered as inflected speech, for example.
Standard device APIs
Operating systems are designed to be used by default with devices such as pointing devices, keyboards, voice input, etc. The operating system (or windowing system) provides "standard APIs" for these devices. On desktop computers today, the standard input APIs are for the mouse and keyboard. For touch screen devices or mobile devices, standard input APIs may include stylus, buttons, voice, etc. The graphical display and sound card are considered standard ouput devices for a graphical desktop computer environment, and each has a standard API.
Text transcript
A text transcript is a text equivalent of audio information (e.g., an audio presentation or the auditory track of a movie or animation). It provides text for both spoken words and non-spoken sounds such as sound effects. Text transcripts make audio information accessible to people who have hearing disabilities and to people who cannot play the audio. Text transcripts are usually pre-written but may be generated on the fly (e.g., by speech-to-text converters). Refer also to the definitions of captions and collated text transcripts.
User agent
A user agent is an application that retrieves and renders Web content, including text, graphics, sounds, video, images, and other content types. A user agent may require additional user agents that handle some types of content. For instance, a browser may run a separate program or plug-in to render sound or video. User agents include graphical desktop browsers, multimedia players, text browsers, voice browsers, and assistive technologies such as screen readers, screen magnifiers, speech synthesizers, onscreen keyboards, and voice input software.
User agent default styles
User agent default styles are style property values applied in the absence of any author or user styles. Some markup languages specify a default rendering for documents in that markup language. Other specifications may not specify default styles. For example, XML 1.0 [XML] does not specify default styles for XML documents. HTML 4 [HTML4] does not specify default styles for HTML documents, but the CSS 2 [CSS2] specification suggests a sample default style sheet for HTML 4 based on current practice.
User interface
For the purposes of this document, user interface includes both:
  1. the "user agent user interface", i.e., the controls and mechanisms offered by the user agent for user interaction, such as menus, buttons, keyboard access, etc.
  2. the "content user interface", i.e., the active elements that are part of content, such as form controls, links, applets, etc. that are implemented natively.
The document distinguishes them only where required for clarity.
User styles
User styles are style property values that come from user interface settings, user style sheets, or other user interactions.
User-initiated, user agent initiated
An action initiated by the user is one that results from user operation of the user interface. An action initiated by the user agent is one that results from the execution of a script (e.g., an event handler bound to an event not triggered through the user interface), from operating system conditions, or from built-in user agent behavior.
Views, viewports, and current viewport
User agents may handle different types of content: markup language, sound, video, etc. The user views rendered content through a viewport, which may be a window, a frame, a piece of paper, a speaker, a virtual magnifying glass, etc. A viewport may contain another viewport (e.g., nested frames). Viewports do not include user interface controls such as prompts, menus, alerts, etc.
The viewport that contains both the current focus and the current selection is called the current viewport. The current viewport is generally highlighted when several viewports coexist. A user agent should provide mechanisms for accessing all content that can be presented by each viewport (e.g., scrolling mechanisms, advance and rewind, etc.).
User agents may render the same content in a variety of ways; each rendering is called a view. For instance, a user agent may allow users to view an entire document or just a list of the document's headers. These are two different views of the document.

4. Acknowledgments

The active participants of the User Agent Guidelines Working Group who produced this document were: James Allan, Denis Anson, Kitch Barnicle, Harvey Bingham, Dick Brown, Al Gilman, Jon Gunderson, Ian Jacobs, Marja-Riitta Koivunen, Charles McCathieNevile, Mark Novak, David Poehlman, Mickey Quenzer, Gregory Rosmaita, Madeleine Rothberg, and Rich Schwerdtfeger.

Many thanks to the following people who have contributed through review and past participation: Paul Adelson, Olivier Borius, Judy Brewer, Bryan Campbell, Kevin Carey, Wendy Chisholm, David Clark, Chetz Colwell, Wilson Craig, Nir Dagan, Daniel Dardailler, B. K. Delong, Neal Ewers, Geoff Freed, John Gardner, Larry Goldberg, Glen Gordon, John Grotting, Markku Hakkinen, Eric Hansen, Earle Harrison, Chris Hasser, Kathy Hewitt, Philipp Hoschka, Masayasu Ishikawa, Phill Jenkins, Earl Johnson, Jan Kärrman (for help with html2ps), Leonard Kasday, George Kerscher, Peter Korn, Josh Krieger, Catherine Laws, Greg Lowney, Susan Lesch, Scott Luebking, William Loughborough, Napoleon Maou, Peter Meijer, Karen Moses, Masafumi Nakane, Charles Oppermann, Mike Paciello, David Pawson, Michael Pederson, Helen Petrie, Michael Pieper, Jan Richards, Hans Riesebos, Joe Roeder, Lakespur L. Roca, Lloyd Rutledge, Liam Quinn, T.V. Raman, Robert Savellis, Constantine Stephanidis, Jim Thatcher, Jutta Treviranus, Claus Thogersen, Steve Tyler, Gregg Vanderheiden, Jaap van Lelieveld, Jon S. von Tetzchner, Willie Walker, Ben Weiss, Evan Wies, Chris Wilson, Henk Wittingen, and Tom Wlodkowski.

5. References

For the latest version of any W3C specification please consult the list of W3C Technical Reports at http://www.w3.org/TR.

[ATAG10]
"Authoring Tool Accessibility Guidelines 1.0", J. Treviranus, C. McCathieNevile, I. Jacobs, and J. Richards, eds., 3 February 2000. This ATAG 1.0 Recommendation is http://www.w3.org/TR/2000/REC-ATAG10-20000203.
[CSS1]
"CSS, level 1 Recommendation", B. Bos, H. Wium Lie, eds., 17 December 1996, revised 11 January 1999. This CSS 1 Recommendation is http://www.w3.org/TR/1999/REC-CSS1-19990111.
[CSS2]
"CSS, level 2 Recommendation", B. Bos, H. Wium Lie, C. Lilley, and I. Jacobs, eds., 12 May 1998. This CSS 2 Recommendation is http://www.w3.org/TR/1998/REC-CSS2-19980512.
[DOM2]
"Document Object Model (DOM) Level 2 Specification", L. Wood, A. Le Hors, V. Apparao, L. Cable, M. Champion, J. Kesselman, P. Le Hégaret, T. Pixley, J. Robie, P. Sharpe, C. Wilson, eds. The latest version of the specification is available at: http://www.w3.org/TR/DOM-Level-2.
[HTML4]
"HTML 4.01 Recommendation", D. Raggett, A. Le Hors, and I. Jacobs, eds., 24 December 1999. This HTML 4.01 Recommendation is http://www.w3.org/TR/1999/REC-html401-19991224.
[MATHML]
"Mathematical Markup Language", P. Ion and R. Miner, eds., 7 April 1998. This MathML 1.0 Recommendation is http://www.w3.org/TR/1998/REC-MathML-19980407.
[MICROPAYMENT]
"Common Markup for micropayment per-fee-links", T. Michel, ed. The latest version of this W3C Working Draft is available at http://www.w3.org/TR/Micropayment-Markup.
[RDF10]
"Resource Description Framework (RDF) Model and Syntax Specification", O. Lassila, R. Swick, eds., 22 February 1999. This RDF Recommendation is http://www.w3.org/TR/1999/REC-rdf-syntax-19990222.
[RFC2119]
"Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, March 1997.
[RFC2616]
"Hypertext Transfer Protocol -- HTTP/1.1, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee, June 1999.
[SMIL]
"Synchronized Multimedia Integration Language (SMIL) 1.0 Specification", P. Hoschka, ed., 15 June 1998. This SMIL 1.0 Recommendation is http://www.w3.org/TR/1998/REC-smil-19980615.
[UAAG10-CHECKLIST]
An appendix to this document lists all of the checkpoints, sorted by priority. The checklist is available in either tabular form or list form.
[UAAG10-TECHS]
"Techniques for User Agent Accessibility Guidelines 1.0," J. Gunderson, I. Jacobs, eds. The latest draft of the techniques document is available at http://www.w3.org/WAI/UA/UAAG10-TECHS/.
[W3CPROCESS]
World Wide Web Consortium Process Document, I. Jacobs ed. The 11 November 1999 version of the Process Document is http://www.w3.org/Consortium/Process/Process-19991111/.
[WCAG10]
"Web Content Accessibility Guidelines 1.0", W. Chisholm, G. Vanderheiden, and I. Jacobs, eds., 5 May 1999. This WCAG 1.0 Recommendation is http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505.
[WCAG10-TECHS]
"Techniques for Web Content Accessibility Guidelines 1.0", W. Chisholm, G. Vanderheiden, and I. Jacobs, eds. The latest version of this document is available at http://www.w3.org/TR/WCAG10-TECHS.
[XHTML10]
"XHTML[tm] 1.0: The Extensible HyperText Markup Language", S. Pemberton, et al. The 26 January 2000 XHTML 1.0 Recommendation is http://www.w3.org/TR/2000/REC-xhtml1-20000126.
[XML]
"Extensible Markup Language (XML) 1.0.", T. Bray, J. Paoli, C.M. Sperberg-McQueen, eds., 10 February 1998. This XML 1.0 Recommendation is http://www.w3.org/TR/1998/REC-xml-19980210.