#UAAG 1.0 Postscript format UAAG 1.0 PDF format UAAG 1.0 plain text format UAAG 1.0 zip archive [contents] [summary] [checklist] [linear checklist] _________________________________________________________________ W3C User Agent Accessibility Guidelines 1.0 W3C Working Draft 21 August 2002 This version: http://www.w3.org/TR/2002/WD-UAAG10-20020821/ Latest version: http://www.w3.org/TR/UAAG10/ Previous version: http://www.w3.org/TR/2001/CR-UAAG10-20010912/ Editors: Ian Jacobs, W3C Jon Gunderson, University of Illinois at Urbana-Champaign Eric Hansen, Educational Testing Service Authors and Contributors: See acknowledgements. This document is also available in these non-normative formats: single HTML, plain text, gzip PostScript, Black/white gzip PostScript, gzip PDF, gzip tar file of HTML, and zip archive of HTML. Note: Some user agents unzip the gzipped files on the fly without changing the file suffix. If you encounter problems reading the gzipped files, remove the .gz suffix and try again. Copyright © 1999 - 2002 W3C^® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. _________________________________________________________________ Abstract This document provides guidelines for designing user agents that lower barriers to Web accessibility for people with disabilities (visual, hearing, physical, cognitive, and neurological). User agents include HTML browsers and other types of software that retrieve and render Web content. A user agent that conforms to these guidelines will promote accessibility through its own user interface and through other internal facilities, including its ability to communicate with other technologies (especially assistive technologies). Furthermore, all users, not just users with disabilities, are expected to find conforming user agents to be more usable. In addition to helping developers of HTML browsers, media players, etc., this document will also benefit developers of assistive technologies because it explains what types of information and control an assistive technology may expect from a conforming user agent. Technologies not addressed directly by this document (e.g., technologies for braille rendering) will be essential to ensuring Web access for some users with disabilities. 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 is the 21 August 2002 Last Call Working Draft of "User Agent Accessibility Guidelines 1.0". The last call review period ends 18 September 2002. Last Call Working Draft status is described in section 5.2.2 of the Process Document. Since the previous Candidate Recommendation draft, the UAWG has gathered implementation experience and clarified the document based on in-depth discussions with user agent and assistive technology developers. As a result of the second Candidate Recommendation period, the UAWG: 1. deleted or modified some checkpoint provisions with low implementation experience; 2. retained some checkpoints despite low implementation experience; 3. added one checkpoint regarding API access to some rendering information. The chapter on conformance has also been greatly simplified since the Candidate Recommendation. The complete list of changes is available on the Web. In this review, the User Agent Accessibility Guidelines Working Group is primarily interested in comments on changes since the Candidate Recommendation. The Working Group does not expect to make substantial changes to this document as the result of this review; the document has already received substantial technical review. The UAWG does expect to make clarifications and to record issues to be addressed after UAAG 1.0. The latest information regarding patent disclosures related to this document is available on the Web. As of this publication, there are no disclosures. 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 send comments about this document to the public mailing list w3c-wai-ua@w3.org; public archives are available. This document is part of a series of accessibility documents published by the Web Accessibility Initiative (WAI) of the World Wide Web Consortium (W3C). WAI Accessibility Guidelines are produced as part of the WAI Technical Activity. The goals of the User Agent Accessibility Guidelines Working Group are described in the charter. A list of current W3C Recommendations and other technical documents can be found at the W3C Web site. Table of contents * Abstract * Status of this document * 1. Introduction + 1.1 Relation to WAI accessibility guidelines + 1.2 Target user agents + 1.3 Known limitations of this document + 1.4 Relation to general software design guidelines and other specifications + 1.5 Security considerations + 1.6 User control * 2. The user agent accessibility guidelines + 1. Support input and output device-independence. + 2. Ensure user access to all content. + 3. Allow configuration not to render some content that may reduce accessibility. + 4. Ensure user control of rendering. + 5. Ensure user control of user interface behavior. + 6. Implement interoperable application programming interfaces. + 7. Observe operating environment conventions. + 8. Implement specifications that benefit accessibility. + 9. Provide navigation mechanisms. + 10. Orient the user. + 11. Allow configuration and customization. + 12. Provide accessible user agent documentation and help. * 3. Conformance + 3.1 Conformance profiles + 3.2 Conformance claims + 3.3 UAAG 1.0 requirements in other specifications * 4. Glossary * 5. References + 5.1 How to refer to this document + 5.2 Normative references + 5.3 Informative references * 6. Acknowledgments Note: With a user agent that implements HTML 4 [HTML4] access keys, readers may navigate directly to the table of contents via the "c" character. Users may have to use additional keyboard strokes depending on their operating environment. _________________________________________________________________ 1. Introduction This document specifies requirements that, if satisfied by user agent developers, will lower barriers to accessibility. This document includes: * This introduction, which provides context for understanding the requirements listed in section 2. * Section 2 explains twelve general principles of accessible design, called "guidelines". Each guideline consists of a list of requirements, called "checkpoints", which must be satisfied in order to conform to this document. * Section 3 explains how to make claims that software components satisfy the requirements of section 2. * An appendix offers a summary of this document's principal goals and structure [UAAG10-SUMMARY]. * A second appendix lists all the checkpoints for convenient reference (e.g., as a tool for developers to evaluate software for conformance) [UAAG10-CHECKLIST]. A separate document, entitled "Techniques for User Agent Accessibility Guidelines 1.0" (the "Techniques document" from here on) [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. The techniques in the Techniques document are informative examples only, and other strategies may be used or required to satisfy the checkpoints. The Techniques document is expected to be updated more frequently than the current guidelines. Developers, W3C Working Groups, users, and others are encouraged to contribute techniques. 1.1 Relation to WAI accessibility guidelines "User Agent Accessibility Guidelines 1.0" (UAAG 1.0) is part of a series of accessibility guidelines published by the Web Accessibility Initiative (WAI). The documents in this series reflect an accessibility model in which Web content authors, format designers, and software developers have roles in ensuring that users with disabilities have access to the Web. The accessibility-related interests of these stakeholders intersect and complement each other as follows: * Designers of formats (e.g., HTML, XHTML, XML, SVG, SMIL, MathML, etc.) and protocols (e.g., HTTP) create specifications that allow communication on the Web. Format designers include features in these specifications that authors should use to create accessible content and that user agents should support through an accessible user interface. The "XML Accessibility Guidelines (XAG)" [XAG10] explains the responsibilities of XML format designers; many XAG requirements make sense for non-XML formats as well. * Authors make use of the accessibility features of different format specifications, use markup appropriately, write in clear and simple language, organize a Web site consistently, etc. The "Web Content Accessibility Guidelines 1.0" [WCAG10] explains the responsibilities of authors in meeting the needs of users with disabilities. The "Web Content Accessibility Guidelines (WCAG) 1.0" is considered the reference for what defines accessible Web content. The "Authoring Tool Accessibility Guidelines 1.0" [ATAG10] explains the responsibilities of authoring tool developers. An accessible authoring tool facilitates the creation of accessible Web content and may be operated by users with disabilities. * User agent developers design software that meets the needs of users with disabilities through conformance to other specifications, an accessible user interface, accessible documentation, and communication with other software (notably assistive technologies). The requirements of this document interact with those of the "Web Content Accessibility Guidelines 1.0" [WCAG10] in a number of ways: * UAAG 1.0 checkpoint 8.1 requires implementation of the accessibility features of specifications. Features are those identified as such and those that satisfy all of the requirements of WCAG 1.0 [WCAG10]. * UAAG 1.0 checkpoint 12.1 requires conformance to WCAG 1.0 for user agent documentation. * UAAG 1.0 also incorporates some terms and concepts from WCAG 1.0, a consequence of fact that the documents were designed to complement one another. Some requirements of this document take into account limitations of formats, authors, and designers. Formats generally do not enable authors to encode all of their knowledge in a way that a user agent can recognize 100%. A format may lack features required for accessibility. An author may not make use of the accessibility features of a format or may misuse a format (which can cause problems for user agents). A user agent designer may not implement a format specification correctly or completely. Some of these limitations are taken into account as follows: * UAAG 1.0 includes requirements to satisfy the expectations set by WCAG 1.0 "until user agent" clauses. These clauses make additional requirements of authors in order to compensate for some limitations of deployed user agents. * UAAG 1.0 includes several repair requirements (e.g., checkpoints checkpoint 2.7 and checkpoint 2.10) for cases where content does not conform to WCAG 1.0. Furthermore, this document includes some requirements to address certain widespread authoring practices that are discouraged because they may cause accessibility or usability problems (e.g., some uses of HTML frames). * Except for the indicated repair checkpoints, UAAG 1.0 only requires user agents to handle what may be recognized through protocols and formats. For example, user agents are not expected to recognize that the author has used "clear and simple" language to express ideas (WCAG 1.0, checkpoint 14.1). See the section on checkpoint applicability for more information about what the user agent is expected to recognize. The Web Accessibility Initiative provides other resources and educational materials to promote Web accessibility. Resources include information about accessibility policies, links to translations of WAI materials into languages other than English, information about specialized user agents and other tools, accessibility training resources, and more. Note: The Web Accessibility Initiative is developing new versions of both the Web Content Accessibility Guidelines and the Authoring Tool Accessibility Guidelines. UAAG 1.0 refers only to the WCAG 1.0 and ATAG 1.0 Recommendations, which will remain available and unchanged. 1.2 Target user agents This document was designed specifically to improve the accessibility of user agents with multimedia capabilities running in the following type of environment (typically that of a desktop computer): * The operating environment includes a keyboard (or keyboard equivalent); * Assistive technologies may be used in the operating environment and may communicate with the conforming user agent; The target user agent is one designed for the general public to handle general-purpose content in ordinary operating conditions. This document is not designed so that user agents on other types of platforms (e.g., handheld devices, kiosks, etc.) will readily conform. This document does not forbid conformance by any user agent, but some requirements (e.g., implementation of certain application programming interfaces, or APIs) are not likely to be satisfied on environments other than the target environment. Future work by the UAWG may address the accessibility of user agents running on handheld devices, etc. Technologies not addressed directly by this document (e.g., those for braille rendering) will be essential to ensuring Web access for some users with disabilities. Note that the ability of conforming user agents to communicate well with assistive technologies will depend in part on the willingness of assistive technology developers to follow the same standards and conventions for communication. 1.2.1 Composition of conforming user agents In general, a conforming user agent will consist of several coordinated components, such as a Web browser, a multimedia player, several plug-ins, features or applications provided by the operating environment, and documentation distributed with the software or available on the Web. These components may run on the user's computer or on a server. A conforming user agent may also include assistive technologies and applications provided by the operating environment. The current document places no restrictions on the type or number of components used for conformance. This does not mean that every component that one has chosen as part of the user agent has to satisfy every single requirement; some requirements may not be relevant for a particular component. For instance, if a component does not have a user interface, it would not be required to satisfy the user interface requirements. On the other hand, if a component has a user interface, that user interface would be subject to the requirements of this document. Conformance addresses the composite user agent as a whole. 1.2.2 Use of operating environment features To satisfy the requirements of this document, developers are encouraged to adopt operating environment conventions and features that benefit accessibility. When an operating environment feature (e.g., the operating system's audio control panel, including its user interface) is adopted to satisfy the requirements of this document, it is part of the user agent. See additional information on conformance of user agents running in multiple operating environments. 1.3 Known limitations of this document People with (or without) disabilities access the Web with widely varying sets of capabilities, software, and hardware. Some users with disabilities: * May not be able to see, hear, move, or speak. * May not be able to perceive, read, or process some types of information easily or at all. * May not have or be able to use a keyboard or pointing device. This document does not include requirements to meet all known accessibility needs. Some known limitations of this document include the following: Input modalities This document only includes requirements for keyboard, pointing device, and voice input modalities. This document includes several checkpoints related to voice input as part of general input requirements (e.g., the checkpoints of guideline 7 and guideline 11) but does not otherwise address voice-based navigation or control. Note: The UAWG intends to coordinate further work on the topics of voice input and synthesized speech rendering with groups in W3C's Voice Browser Activity. Output modalities This document does not include requirements for braille rendering. Some requirements are specific to graphical rendering and others specific to audio output or synthesized speech output. Speech rendering requirements are made by checkpoint 4.9 to checkpoint 4.13. Many of the requirements of this document are generic enough to apply to a variety of output modalities, including braille. User agents conform to this document by supporting some combination of graphical and audio/speech rendering output; see the section on Content type labels for more information. Size and color of non-text content This document includes some checkpoints to ensure that the user is able to control the size and color of visually rendered text content (checkpoints 4.1 and 4.3). This document does not in general address control of the size and color of visually rendered non-text content. Note: Resizing capabilities may be required for conformance to other specifications (e.g., Scalable Vector Graphics [SVG]). Background image interference The requirement of checkpoint 3.1 to allow the user to turn off rendering of background images does not extend to multi-layered rendering. User control of every user interface component This document distinguishes user interface features that are part of the user agent user interface and those that are part of content. Some checkpoints (e.g., those in guideline 5) require user control over rendering and behavior that is driven by content only. This document does not always explicitly require the same control over features of the user agent user interface. Nevertheless, this document (see checkpoint 7.3) does require user agents to follow software usability guidelines, which should include requirements for user control over user interface behavior. Note: It is more difficult for users to distinguish content from user interface when both are rendered as sound in one temporal dimension, than it is when both are rendered visually in two spatial dimensions. Thus, developers of user agents that include audio output or synthesized speech output are encouraged to apply the requirements of this document to both content and user agent components. Time parameters This document includes requirements for control of some time parameters (including checkpoint 2.4, checkpoint 4.4, checkpoint 4.5, and checkpoint 4.9). The requirements are for time parameters that the user agent recognizes and controls. This document does not include requirements for control of time parameters managed on the server. Digital rights management The User Agent Accessibility Guidelines Working Group recognizes that further work is necessary in the area of digital rights management as it relates to accessibility. Digital rights management refers to methods of describing and perhaps enforcing intellectual property associated with Web resources. Note: The User Agent Accessibility Guidelines Working Group may address these topics in a future version of the User Agent Accessibility Guidelines. Even though UAAG 1.0 does not address these topics, user agent developers are encouraged to consider them in their designs. 1.4 Relation to general software design guidelines and other specifications One the goals of the authors of this document is to ensure that the requirements are compatible with other good software design practices. However, this document does not purport to be a complete guide to good software design. For instance, 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 (see checkpoint 7.3). Involving people with disabilities in the design and testing of software will generally improve the accessibility of the software. This document promotes conformance to other specifications as part of accessible design. Conformance to specifications makes it easier to design assistive technologies, and helps ensure that built-in accessibility functions are implemented. This document also includes some requirements to implement an accessibility feature that may only be optional in another specification. In rare cases, a requirement in UAAG 1.0 may conflict with a requirement in another specification. UAAG 1.0 does not include requirements for resolving this conflict, but the authors of this document anticipate that developers will consider accessibility implications in determining how to resolve the conflict. 1.4.1 Installation Installation is an important aspect of both accessibility and general software usability. On platforms where a user can install a user agent, the installation (and update) procedures need to be accessible. Furthermore, the installation procedure should provide and install all components necessary to satisfy the requirements of this document, as the risk of installation failure increases with the number of components (e.g., plug-ins) to be installed. This document does not include a checkpoint requiring that installation procedures be accessible. Since this document considers installation to be part of software usage, the different aspects of installation (user interface, documentation, operating environment conventions, etc.) are already covered by the complete set of checkpoints. 1.5 Security considerations Some of the requirements of this document have security implications: communication through APIs, allowing programmatic read and write access to content and user interface control, etc. This document assumes that features required by this document will be built on top of an underlying security architecture. Consequently, unless permitted explicitly in a checkpoint (as in checkpoint 6.5), this document grants no conformance exemptions based on security issues. Developers should design user agents that enable communication with trusted assistive technologies. Sensitive information that the user agent can access through the user agent's user interface should also be available to assistive technologies through secure means. For instance, if the user types a password in the user agent user interface, do not communicate substitute characters (such as asterisks) through an API, but rather the real password, properly encrypted. Note also that appropriate user agent behavior with respect to security may depend on the user's context. For instance, hiding typed passwords with asterisks is much less important for someone alone in a room than for someone in a crowded room. Similarly, while unencrypted passwords rendered as synthesized speech should not be broadcast in a crowded room, they may pose no security risk if the user is wearing an earphone. For information related to security, refer to "XML-Signature Syntax and Processing" [XMLDSIG] and "XML Encryption Syntax and Processing" [XMLENC]. 1.6 User control This document emphasizes the goal of ensuring that users, including users with disabilities, have control over their environment for accessing the Web. Key methods for achieving that goal include: optional self-pacing, configurability, device-independence, interoperability, direct support for both graphical and auditory output, and adherence to published conventions. Chapter 2 addresses these issues in detail. This document also acknowledges the importance of author preferences and the proper implementation of specifications. However, this document includes requirements to override certain author preferences when the user would not otherwise be able to access that content. 1.6.1 Control of automatic behavior Many of the requirements in this document give the user additional control over behavior that would otherwise occur automatically. For instance, there is a requirement to allow configuration to not open a viewport automatically (checkpoint 5.3) and one that requires user confirmation before submitting a form (checkpoint 5.5). This type of manual configuration option may be essential for some users with disabilities, since automatic behavior may be disorienting or interfere with navigation. 1.6.2 Configurability This document includes requirements for users with a variety of disabilities, in part because some users may have more than one disability. In some cases, it may appear that two requirements contradict each other. For instance, a user with a physical disability may prefer that the user agent offer more automatic behavior (to reduce demand for physical effort) than a user with a cognitive disability (for whom automatic behavior may cause confusion). Thus, many of the requirements in this document involve configuration as one way to ensure that a functionality designed to improve accessibility for one user does not interfere with accessibility for another. Also, since a default user agent setting may be useful for one user but interfere with accessibility for another, this document prefers configuration requirements to requirements for default settings. Finally, there may be some cases where, for some content, a feature required by this document is ineffective or causes content to be less accessible, making it imperative that the user be able to turn off the feature. To avoid the risk that users are overwhelmed by an abundance of configuration options, this document includes requirements that promote ease of configuration and documentation of accessibility features (see guideline 12). 1.6.3 Device independence, spatial independence, and temporal independence Many requirements in this document promote different kinds of independence: * Input and output device independence. This document includes some requirements to promote device-independence natively, as well as requirements for interoperability with assistive technologies that provide complementary input and output functionalities. * Spatial independence. Some users may not navigate effectively in two-dimensional visual space (e.g., users who do not use a pointing device) or may be constrained to one temporal dimension (e.g., users of audio-only output). * Temporal independence. Some users (e.g., users with a physical or cognitive disability) may not be able to interact with content that changes over time, or interaction with content that is time-sensitive. 1.6.4 Additional benefits of accessible user agent design In meeting the goals of users with disabilities, user agent developers will also to improve access to the Web for users in general. For example, users without disabilities: * may have a text-only screen, a small screen, or a slow Internet connection (e.g., via a mobile phone browser). These users are likely to benefit from the same features that provide access to people with low vision or blindness. * may be in a situation where their eyes, ears, or hands are busy or interfered with (e.g., driving to work, working in a noisy environment, etc.). These users are likely to benefit from the same features that provide access to people who cannot use a mouse or keyboard due to a visual, hearing, or physical disability. * may not understand fluently the natural language of spoken content. These users are likely to benefit from the same visual rendering of text equivalents that make spoken language accessible to people with a hearing disability. Software that satisfies the requirements of this document is expected to be more flexible, manageable, extensible, and beneficial to all users. For example, a user agent architecture that allows programmatic access to content and the user interface will encourage software modularity and reuse, and will enable operation by scripting tools and automated test engines in addition to assistive technologies. 2. The user agent accessibility guidelines The twelve guidelines in this document state general principles for the development of accessible user agents. Each guideline includes: * The guideline number. * The guideline title. * The rationale behind the guideline and identification of some groups of users who benefit from it. * A list of checkpoint definitions. This list may be split into groups of related checkpoints. For instance, the list might be split into one group of "checkpoints for visually rendered text" and second group of "checkpoints for audio volume control"." Within each group, checkpoints are ordered according to their priority, e.g., Priority 1 before Priority 2. Within a guideline, checkpoint groupings and checkpoint order have no bearing on conformance. Each checkpoint definition includes the following parts. Some parts are normative (i.e., relate to conformance); others are informative only. * The checkpoint number. * The checkpoint title. This title is not a requirement, but rather is a phrase to help readers remember an important requirement made by the checkpoint provision(s). (Informative) * The priority of the checkpoint. (Normative) * A link to the Techniques document [UAAG10-TECHS] for more information about the checkpoint: rationale, who benefits, example techniques, references, and more. (Informative) * A list of one or more checkpoint provisions, which embody the requirements of the checkpoint. These requirements must be satisfied by the user agent for conformance. (Normative) * Techniques that are sufficient for satisfying all or part of a checkpoint. (Normative when present) * Normative inclusions and exclusions. These are qualifications about what is required (inclusion) or is not required (exclusion) to satisfy the checkpoint. Some of the inclusions are reminders about what may be required for conformance: 1. When it might be ambiguous whether a checkpoint makes requirements for content only, the user agent user interface only, or both together, a label will state the intended scope. See the section on requirements for content, user agent features, or both for more information. 2. When a checkpoint may be excluded from a conformance profile, it is identified by a conformance profile label. See the section on conformance profiles for more information on how a user agent may conform to this document even though it does not satisfy every checkpoint. (Normative when present) * Notes about the checkpoint (beginning with the word "Note"). The notes clarify the scope of the checkpoint through further description, examples, cross references, and commentary. (Informative when present) First-time readers of the document are encouraged to read the full context provided for each checkpoint, including the guideline prose, the surrounding checkpoints (since nearby checkpoints are generally related), notes after checkpoints, and associated techniques (in the Techniques document [UAAG10-TECHS]). The checklist [UAAG10-CHECKLIST] is also a useful tool (e.g., for evaluating a user agent for conformance), but does not provide the same contextual support. About the checkpoints The checkpoints in this document are not generally technology-specific. They have been designed to be largely technology-independent in order to make sense for a variety of existing and future technologies. The Techniques document [UAAG10-TECHS] is an important resource to help developers understand how to apply the requirements to HTML, CSS, SMIL, and SVG, and several operating environments. Each checkpoint is a "minimal" requirement that must be satisfied for conformance. Developers can always implement features beyond those required by this document. In some cases, it may be easier (or just better design) to implement a general feature rather than one that meets only the narrow requirement of a single checkpoint. For example, a navigable structure view of content that allows users to query elements for their properties is likely to benefit all users and may be used to satisfy a number of requirements of this document. Some requirements have a wider impact than others. For instance, the keyboard requirements of checkpoint 1.1 have an impact on all other requirements in the document related to user input: any requirement that involves user input must be satisfied through the keyboard. Because the keyboard requirements of checkpoint 1.1 have been factored out, the other checkpoints are shorter; they are written "Allow configuration" instead of "Allow configuration so that, through the keyboard, ..." Priorities Each checkpoint in this document is assigned a priority that indicates its importance for users with disabilities. Priority 1 (P1) If the user agent does not satisfy this checkpoint, 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 (P2) If the user agent does not satisfy this checkpoint, 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 (P3) If the user agent satisfies this checkpoint, one or more groups of users with disabilities will find it easier to access the Web. This document uses the priorities as one mechanism for allowing conformance to well-defined sets of checkpoints. See the section on conformance levels for more information. Guideline 1. Support input and output device-independence. Checkpoints: 1.1, 1.2, 1.3 Ensure that the user can interact with the user agent (and the content it renders) through different input and output devices. Since people use a variety of devices for input and output, user agent developers need to ensure redundancy in the user interface. The user may have to operate the user interface with a variety of input devices (keyboard, pointing device, voice input, etc.) and output modalities (e.g., graphical, speech, or braille rendering). Though it may seem contradictory, enabling full user agent operation through the keyboard is an important part of promoting device-independence given today's user agents. In addition to the fact that some form of keyboard is supported in most operating environments, there are several reasons for this: * For some users (e.g., users with blindness or physical disabilities), operating a user agent with a pointing device may be difficult or impossible since it requires tracking the pointing device position in a two-dimensional visual space. Keyboard operation generally makes fewer perceptual/motor demands for moving the pointing device to a visual target. * Some assistive technologies that support a diversity of input and output mechanisms use keyboard APIs for communication with some user agents; see checkpoint 6.7. People who cannot or do not use a pointing device may interact with the user interface with the keyboard, through voice input, a head wand, touch screen, or other device. While this document only requires keyboard operation for conformance, it promotes input device independence by also allowing people to claim conformance for full pointing device support or full voice support. As a way to promote output device independence, this guideline requires support for text messages in the user interface because text may be rendered either visually, as synthesized speech, or as braille. The API requirements of guideline 6 also promote device independence by ensuring communication with other software, including assistive technologies. Checkpoint definitions 1.1 Full keyboard access. (P1) Techniques for checkpoint 1.1 1. Ensure that the user can operate through keyboard input alone any user agent functionality available through the user interface. Normative inclusions and exclusions 1. This checkpoint excludes the requirements of checkpoint 1.3. 2. Conformance detail: For both content and user agent. Note: For example, ensure that the user can interact with enabled elements, select content, navigate viewports, configure the user agent, access documentation, install the user agent, operate user interface controls, etc., all entirely through keyboard input. User agents generally support at least three types of keyboard operation: 1. Direct (e.g., keyboard shortcuts such a "F1" to open the help menu; see checkpoint 11.4 for single-key access requirements), 2. Sequential (e.g., navigation through cascading menus), and 3. Spatial (e.g., when the keyboard is used to move the pointing device in two-dimensional visual space to manipulate a bitmap image). User agents should support direct or sequential keyboard operation for all functionalities. Furthermore, the user agent should satisfy this checkpoint by offering a combination of keyboard-operable user interface controls (e.g., keyboard operable print menus and settings) and direct keyboard shortcuts (e.g., to print the current page). It is also possible to claim conformance to this document for full support through pointing device input and/or voice input. See the section on Input modality labels. 1.2 Activate event handlers. (P1) Techniques for checkpoint 1.2 1. Allow the user to activate, through keyboard input alone, all event handlers that are explicitly associated with the element designated by the content focus. 2. In order to satisfy provision one of this checkpoint, the user must be able to activate as a group all event handlers of the same input device event type. Normative inclusions and exclusions 1. Provision one of this checkpoint applies to handlers of any input device event type, including event types for keyboard, pointing device, and voice input. 2. The user agent is not required to allow activation of event handlers associated with a given device (e.g., the pointing device) in any order other than what the device itself allows (e.g., a mouse down event followed by a mouse drag event followed by a mouse up event). 3. The requirements for this checkpoint refer to any explicitly associated input device event handlers associated with an element, independent of the input modalities for which the user agent conforms. For example, suppose that an element has an explicitly associated handler for pointing device events. Even when the user agent only conforms for keyboard input (and does not conform for the pointing device, for example), this checkpoint requires the user agent to allow the user to activate that handler with the keyboard. 4. This checkpoint is mutually exclusive of checkpoint 1.1 since it may be excluded from a conformance profile, unlike other keyboard operation requirements. 5. Conformance profile labels: Events. Note: Refer to the checkpoints of guideline 9 for more information about focus requirements. 1.3 Provide text messages. (P1) Techniques for checkpoint 1.3 1. Ensure that every message (e.g., prompt, alert, notification, etc.) that is a non-text element and is part of the user agent user interface has a text equivalent. Note: For example, if the user is alerted of an event by an audio cue, a visually-rendered text equivalent in the status bar could satisfy this checkpoint. Per checkpoint 6.5, a text equivalent for each such message must be available through an API. See also checkpoint 6.6 for requirements for programmatic notification of changes to the user interface. [next guideline: 2] [review guideline: 1] [contents] Guideline 2. Ensure user access to all content. Checkpoints: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 2.10 Ensure that users have access to all content, notably conditional content that may have been provided to meet the requirements of the Web Content Accessibility Guidelines 1.0 [WCAG10]. The checkpoints in this section require the user agent to provide access to all content through a series of complementary mechanisms designed so that if one fails, another will provide some access. The following preferences are embodied in the checkpoints: * Both manual and automatic selection of which conditional content to render are important to accessibility. * Both structured navigation and unstructured access to content are important to accessibility. * Rendering according to format specification is preferred, but a source view of text content may be necessary for access (e.g., because of user-side error conditions, authoring errors, inadequate specification, or incorrect user agent implementation). For example, in order to find necessary information, the user may have to look at Uniform Resource Identifiers (URIs) for information, HTML comments, XML element names, or script data. * Configuration and control of rendering are important for access. For instance, the user agent should respect authoring synchronization cues for content that changes over time, but also needs to allow the user to control the time intervals when user input might otherwise be possible. Authors may use the conditional content mechanisms of a specification to satisfy the requirements of the Web Content Accessibility Guidelines 1.0 [WCAG10]. Ensuring access to conditional content 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 movies or images). Checkpoint definitions 2.1 Render content according to specification. (P1) Techniques for checkpoint 2.1 1. Render content according to format specification (e.g., for a markup language or style sheet language). Normative inclusions and exclusions 1. Rendering requirements include format-defined interactions between author preferences and user preferences/capabilities (e.g., when to render the "alt" attribute in HTML, the rendering order of nested OBJECT elements in HTML, test attributes in SMIL, and the cascade in CSS2). 2. When a rendering requirement of another specification contradicts a requirement of UAAG 1.0, the user agent may disregard the rendering requirement of the other specification and still satisfy this checkpoint; see the section on the relation of this document to general software design guidelines and other specifications. for more information. 3. The user agent is not required to satisfy this checkpoint for all implemented specifications; see the section on conformance profiles for more information. 4. This checkpoint excludes the requirements of checkpoint 2.6. Note: If a conforming user agent does not render a content type, it should allow the user to choose a way to handle that content (e.g., by launching another application, by saving it to disk, etc.). 2.2 Provide text view. (P1) Techniques for checkpoint 2.2 1. For content authored in text formats, provide a view of the text source. For the purposes of this checkpoint, a text format is any media object given an Internet media type of "text" (e.g., "text/plain", "text/html", or "text/*") as defined in RFC 2046 [RFC2046], section 4.1. Sufficient techniques 1. A user agent satisfies this checkpoint by providing a source view for any text format, not just implemented text formats. Normative inclusions and exclusions 1. The user agent is only required to satisfy this checkpoint for text formats that are part of a conformance claim; see the section on conformance profiles for more information. However, user agents should provide a text view for all implemented text formats. 2.3 Render conditional content. (P1) Techniques for checkpoint 2.3 1. Allow configuration to provide access to each piece of unrendered conditional content "C". 2. When a specification does not explain how to provide access to this content, do so as follows: + If C is a summary, title, alternative, description, or expansion of another piece of content D, provide access through at least one of the following mechanisms: o (1a) render C in place of D; o (2a) render C in addition to D; o (3a) provide access to C by allowing the user to query D. In this case, the user agent must also alert the user, on a per-element basis, to the existence of C (so that the user knows to query D); o (4a) allow the user to follow a link to C from the context of D. + Otherwise, provide access to C through at least one of the following mechanisms: o (1b) render a placeholder for C, and allow the user to view the original author-supplied content associated with each placeholder; o (2b) provide access to C by query (e.g., allow the user to query an element for its attributes). In this case, the user agent must also alert the user, on a per-element basis, to the existence of C; o (3b) allow the user to follow a link in context to C. Sufficient techniques 1. To satisfy provision one of this checkpoint, the configuration may be a switch that, for all content, turns on or off the access mechanisms described in provision two. 2. To satisfy provision two of this checkpoint, the user agent may provide access on a per-element basis (e.g., by allowing the user to query individual elements) or for all elements (e.g., by offering a configuration to render conditional content all the time). Normative inclusions and exclusions 1. Conformance detail: For all content. Note: For instance, an HTML user agent might allow users to query each element for access to conditional content supplied for the "alt", "title", and "longdesc" attributes. Or, the user agent might allow configuration so that the value of the "alt" attribute is rendered in place of all IMG elements (while other conditional content might be made available through another mechanism). 2.4 Allow time-independent interaction. (P1) Techniques for checkpoint 2.4 1. For rendered content where user input is only possible within a finite time interval controlled by the user agent, allow configuration to provide a view where user interaction is time-independent. Sufficient techniques 1. The user agent may satisfy this checkpoint by pausing processing automatically to allow for user input, and resuming processing on explicit user request. When this technique is used, pause at the end of each time interval where user input is possible. In the paused state: + Alert the user that the rendered content has been paused (e.g., highlight the pause button in a multimedia player's control panel). + Highlight which enabled elements are time-sensitive. + Allow the user to interact with the enabled elements. + Allow the user to resume on explicit user request (e.g., by pressing the play button in a multimedia player's control panel; see also checkpoint 4.5). 2. The user agent may satisfy this checkpoint by generating a time-independent (or, "static") view, based on the original content, that offers the user the same opportunities for interaction. The static view should reflect the structure and flow of the original time-sensitive presentation; orientation cues will help users understand the context for various interaction opportunities. Normative inclusions and exclusions 1. When satisfying this checkpoint for a real-time presentation, the user agent may discard packets that continue to arrive after the construction of the time-independent view (e.g., when paused or after the construction of a static view). 2. This checkpoint does not apply when the user agent cannot recognize the time interval in the presentation format, or when the user agent cannot control the timing (e.g., because it is controlled by the server). Note: If the user agent satisfies this checkpoint by pausing automatically, it may be necessary to pause more than once when there are multiple opportunities for time-sensitive user interaction. When pausing, pause synchronized content as well (whether rendered in the same or different viewports) per checkpoint 2.6. In SMIL 1.0 [SMIL], for example, the "begin", "end", and "dur" attributes synchronize presentation components. See also checkpoint 3.5, which involves client-driven content retrieval. 2.5 Make captions, transcripts, audio descriptions available. (P1) Techniques for checkpoint 2.5 1. Allow configuration or control to render text transcripts, collated text transcripts, captions, and audio descriptions in content at the same time as the associated audio tracks and visual tracks. Normative inclusions and exclusions 1. Conformance profile labels: Video, Audio. 2. Conformance detail: For all content. 2.6 Respect synchronization cues. (P1) Techniques for checkpoint 2.6 1. Respect synchronization cues (e.g., in markup) during rendering. Normative inclusions and exclusions 1. This checkpoint is mutually exclusive of checkpoint 2.1 since it may be excluded from a conformance profile. 2. Conformance profile labels: Video, Audio. 2.7 Repair missing content. (P2) Techniques for checkpoint 2.7 1. Allow configuration to generate repair text when the user agent recognizes that the author has failed to provide conditional content that was required by the format specification. Sufficient techniques 1. The user agent may satisfy this checkpoint by basing the repair text on any of the following available sources of information: URI reference, content type, or element type. Note, however, that additional information that would enable more helpful repair might be available but not "near" the missing conditional content. For instance, instead of generating repair text on a simple URI reference, the user agent might look for helpful information near a different instance of the URI reference in the same document object, or might retrieve useful information (e.g., a title) from the resource designated by the URI reference. Normative inclusions and exclusions 1. Conformance detail: For all content. Note: Some markup languages (such as HTML 4 [HTML4] and SMIL 1.0 [SMIL] require the author to provide conditional content for some elements (e.g., the "alt" attribute on the IMG element). 2.8 No repair text. (P3) Techniques for checkpoint 2.8 1. Allow at least two configurations for when the user agent recognizes that conditional content required by the format specification is present but empty content: + generate no repair text, or + generate repair as described in checkpoint 2.7. Normative inclusions and exclusions 1. Conformance detail: For all content. Note: In some authoring scenarios, empty content (e.g., alt="" in HTML) may make an appropriate text equivalent, such as when non-text content has no other function than pure decoration, or when an image is part of a "mosaic" of several images and does not make sense out of the mosaic. Refer to the Web Content Accessibility Guidelines 1.0 [WCAG10] for more information about text equivalents. 2.9 Render conditional content automatically. (P3) Techniques for checkpoint 2.9 1. Allow configuration to render all conditional content automatically. 2. As part of satisfying provision one of this checkpoint, provide access according to specification, or where unspecified, by applying one of the techniques 1a, 2a, or 1b defined in checkpoint 2.3. Normative inclusions and exclusions 1. The user agent is not required to render all conditional content at the same time in a single viewport. 2. Conformance detail: For all content. Note: For instance, an HTML user agent might allow configuration so that the value of the "alt" attribute is rendered in place of all IMG elements (while other conditional content might be made available through another mechanism). The user agent may offer multiple configurations (e.g., a first configuration to render one type of conditional content automatically, a second to render another type, etc.). 2.10 Don't render unsupported language. (P3) Techniques for checkpoint 2.10 1. Allow configuration not to render text in unsupported scripts (i.e., writing systems) when that text would otherwise be rendered. 2. When configured per provision one of this checkpoint, indicate to the user in context that author-supplied content has not been rendered. Normative inclusions and exclusions 1. This checkpoint does not require the user agent to allow different configurations for different natural languages. Note: This checkpoint is designed primarily to benefit users with serial access to content or who navigate sequentially, allowing them to skip portions of content that would be unusable if rendered as "garbage". [next guideline: 3] [review guideline: 2] [previous guideline: 1] [contents] Guideline 3. Allow configuration not to render some content that may reduce accessibility. Checkpoints: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6 Ensure that the user may turn off rendering of content (audio, video, scripts, etc.) that may reduce accessibility by obscuring other 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 text can affect screen reader users, since screen readers (in conjunction with speech synthesizers or braille displays) may re-render the text every time it blinks. Distracting background images, colors, or sounds may 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, automatic content retrieval, etc.) may disorient some users with cognitive disabilities. This guideline requires the user agent to allow configuration so that, when loading Web resources, the user agent does not render content in a manner that might pose accessibility problems. Requirements for interactive control of rendered content are part of guideline 4. Checkpoint definitions 3.1 Toggle background images. (P1) Techniques for checkpoint 3.1 1. Allow configuration not to render background image content. Sufficient techniques 1. The user agent may satisfy this checkpoint with a configuration to not render any images, including background images. However, user agents should satisfy this checkpoint by allowing users to turn off background images alone, independent of other types of images in content. Normative inclusions and exclusions 1. This checkpoint must be satisfied for all implemented image specifications; see the section on conformance profiles. 2. When configured not to render background images, the user agent is not required to retrieve them until the user requests them explicitly. When background images are not rendered, user agents should render a solid background color instead; see checkpoint 4.3 for information about text colors. 3. This checkpoint only requires control of background images for "two-layered renderings", i.e., one rendered background image with all other content rendered "above it". 4. Conformance profile labels: Image. Note: When background images are not rendered, they are considered conditional content. See checkpoint 2.3 for information about providing access to conditional content. 3.2 Toggle audio, video, animated images. (P1) Techniques for checkpoint 3.2 1. Allow configuration not to render audio, video, or animated image content, except on explicit user request. Sufficient techniques 1. The user agent may satisfy this checkpoint by making video and animated images invisible and audio silent, but this technique is not recommended. Normative inclusions and exclusions 1. This configuration is required for content rendered without any user interaction (including content rendered on load or as the result of a script), as well as content rendered as the result of user interaction that is not an explicit user request (e.g., when the user activates a link). 2. This checkpoint must be satisfied for all implemented audio, video, and animated image specifications; see the section on conformance profiles. 3. When configured not to render audio, video, or animated images except on explicit user request, the user agent is not required to retrieve them until the user requests them explicitly. 4. Conformance profile labels: Animation, Video, Audio. Note: See guideline 4 for additional requirements related to the control of rendered audio, video, and animated images. When these content types are not rendered, they are considered conditional content. See checkpoint 2.3 for information about providing access to conditional content. 3.3 Toggle animated or blinking text. (P1) Techniques for checkpoint 3.3 1. Allow configuration to render animated or blinking text content as motionless, unblinking text. Blinking text is text whose visual rendering alternates between visible and invisible, at any rate of change. Sufficient techniques 1. In this configuration, the user must still have access to the same text content, but the user agent may render it in a separate viewport (e.g., for large amounts of streaming text). 2. The user agent may satisfy this checkpoint by always rendering animated or blinking text as motionless, unblinking text. Normative inclusions and exclusions 1. This checkpoint must be satisfied for all implemented specifications that support blinking; see the section on conformance profiles. 2. This checkpoint does not apply for blinking and animation effects that are caused by mechanisms that the user agent cannot recognize. 3. Conformance profile labels: VisualText. Note: Animation (a rendering effect) differs from streaming (a delivery mechanism). Streaming content might be rendered as an animation (e.g., an animated stock ticker or vertically scrolling text) or as static text (e.g., movie subtitles, which are rendered for a limited time, but do not give the impression of movement). 3.4 Toggle scripts. (P1) Techniques for checkpoint 3.4 1. Allow configuration not to execute any executable content (e.g., scripts and applets). Normative inclusions and exclusions 1. This checkpoint does not apply to plug-ins and other programs that are not part of content. Note: Scripts and applets may provide very useful functionality, not all of which causes accessibility problems. Developers should not consider that the user's ability to turn off scripts is an effective way to improve content accessibility; turning off scripts means losing the benefits they offer. Instead, developers should provide users with finer control over user agent or content behavior known to raise accessibility barriers. The user should only have to turn off scripts as a last resort. 3.5 Toggle automatic content retrieval. (P1) Techniques for checkpoint 3.5 1. Allow configuration so that the user agent only retrieves content on explicit user request. Normative inclusions and exclusions 1. When the user chooses not to retrieve (fresh) content, the user agent may ignore that content; buffering is not required. 2. The user agent is not required to satisfy this checkpoint for "client-side redirects", i.e., author-specified instructions that a piece of content is temporary and intermediate, and is replaced by content that results from a second request. Authors (and Webmasters) should use the redirect mechanisms of HTTP instead of client-side redirects. 3. This checkpoint only applies when the user agent (not the server) automatically initiates the request for fresh content. Note: For example, if an HTML author has used a META element for automatic content retrieval, allow configuration to override the automatic behavior with manual confirmation. 3.6 Toggle images. (P2) Techniques for checkpoint 3.6 1. Allow configuration not to render image content. Sufficient techniques 1. The user agent may satisfy this checkpoint by making images invisible, but this technique is not recommended. Normative inclusions and exclusions 1. This checkpoint must be satisfied for all implemented image specifications; see the section on conformance profiles. 2. When configured not to render images, the user agent is not required to retrieve them until the user requests them explicitly. 3. Conformance profile labels: Image. Note: When images are not rendered, they are considered conditional content. See checkpoint 2.3 for information about providing access to conditional content. [next guideline: 4] [review guideline: 3] [previous guideline: 2] [contents] Guideline 4. Ensure user control of rendering. Checkpoints: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, 4.14 Ensure that the user can select preferred styles (colors, size of rendered text, synthesized speech characteristics, etc.) from choices offered by the user agent. Allow the user to override author-specified styles and user agent default styles. Providing access to content (see guideline 2) includes enabling users to configure and control its rendering. Users with low vision may require that text be rendered at a size larger than the size specified by the author or by the user agent's default rendering. Users with color blindness may need to impose or prevent certain color combinations. 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 frame assumed by the author. To make the presentation accessible to these users, user agents rendering multimedia content (audio, video, and other animations), have to allow the user to control the playback rate of this content, and also to stop, start, pause, and navigate it quickly. User agents rendering audio have to allow the user to control the audio volume globally and to allow the user to control distinguishable audio tracks. User agents with speech synthesis capabilities need to allow users to control various synthesized speech rendering parameters. For instance, some users may not be able to make use of high or low frequencies; these users have to be able to configure their speech synthesizers to use suitable frequencies. Checkpoint definitions for visually rendered text 4.1 Configure text scale. (P1) Techniques for checkpoint 4.1 1. Allow global configuration of the scale of visually rendered text content. Preserve distinctions in the size of rendered text as the user increases or decreases the scale. 2. As part of satisfying provision one of this checkpoint, provide a configuration option to override rendered text sizes specified by the author or user agent defaults. 3. As part of satisfying provision one of this checkpoint, offer a range of text sizes to the user that includes at least: + the range offered by the conventional utility available in the operating environment that allows users to choose the text size (e.g., the font size), or + if no such utility is available, the range of text sizes supported by the conventional APIs of the operating environment for drawing text. Sufficient techniques 1. The user agent may satisfy provision one of this checkpoint through a number of mechanisms, including zoom, magnification, and allowing the user to configure a reference size for rendered text (e.g., render text at 36 points unless otherwise specified). For example, for CSS2 [CSS2] user agents, the 'medium' value of the 'font-size' property corresponds to a reference size. Normative inclusions and exclusions 1. The word "scale" is used in this checkpoint to mean the general size of text. 2. The user agent is not required to satisfy this requirement through proportional scaling. What must hold is that if rendered text A is smaller than rendered text B at one value of this configuration setting, then text A will still be smaller than text B at another value of this configuration setting. 3. Conformance profile labels: VisualText. 4.2 Configure font family. (P1) Techniques for checkpoint 4.2 1. Allow global configuration of the font family of all visually rendered text content. 2. As part of satisfying provision one of this checkpoint, provide a configuration option to override font families specified by the author or by user agent defaults. 3. As part of satisfying provision one of this checkpoint, offer a range of font families to the user that includes at least: + the range offered by the conventional utility available in the operating environment that allows users to choose the font family, or + if no such utility is available, the range of font families supported by the conventional APIs of the operating environment for drawing text. Sufficient techniques 1. For text that cannot be rendered properly using the user's preferred font family, the user agent may substitute an alternative font family. Normative inclusions and exclusions 1. Conformance profile labels: VisualText. Note: For example, allow the user to specify that all text is to be rendered in a particular sans-serif font family. 4.3 Configure text colors. (P1) Techniques for checkpoint 4.3 1. Allow global configuration of the foreground and background color of all visually rendered text content. 2. As part of satisfying provision one of this checkpoint, provide a configuration option to override foreground and background colors specified by the author or user agent defaults. 3. As part of satisfying provision one of this checkpoint, offer a range of colors to the user that includes at least: + the range offered by the conventional utility available in the operating environment that allows users to choose colors, or + if no such utility is available, the range of colors supported by the conventional APIs of the operating environment for specifying colors. Normative inclusions and exclusions 1. Color includes black, white, and greys. 2. Conformance profile labels: VisualText. Note: User configuration of foreground and background colors may inadvertently lead to the inability to distinguish ordinary text from selected text, focused text, etc. See checkpoint 10.2 for more information about highlight styles. Checkpoint definitions for multimedia presentations and other presentations that change continuously over time 4.4 Slow multimedia. (P1) Techniques for checkpoint 4.4 1. Allow the user to slow the presentation rate of rendered audio and animation content (including video and animated images). 2. As part of satisfying provision one of this checkpoint, for a visual track, provide at least one setting between 40% and 60% of the original speed. 3. As part of satisfying provision one of this checkpoint, for a prerecorded audio track including audio-only presentations, provide at least one setting between 75% and 80% of the original speed. 4. When the user agent allows the user to slow the visual track of a synchronized multimedia presentation to between 100% and 80% of its original speed, synchronize the visual and audio tracks (per checkpoint 2.6). Below 80%, the user agent is not required to render the audio track. Normative inclusions and exclusions 1. The user agent is not required to satisfy this checkpoint for audio and animations whose recognized role is to create a purely stylistic effect. Purely stylistic effects include background sounds, decorative animated images, and effects caused by style sheets. 2. Conformance profile labels: Animation, Audio. Note: The style exception of this checkpoint is based on the assumption that authors have satisfied the requirements of the "Web Content Accessibility Guidelines 1.0" [WCAG10] not to convey information through style alone (e.g., through color alone or style sheets alone). 4.5 Start, stop, pause, and navigate multimedia. (P1) Techniques for checkpoint 4.5 1. Allow the user to stop, pause, and resume rendered audio and animation content (including video and animated images) that last three or more seconds at their default playback rate. 2. Allow the user to navigate efficiently within audio and animations (including video and animated images) that last three or more seconds at their default playback rate. Sufficient techniques 1. The user agent may satisfy the navigation requirement of provision two of this checkpoint through forward and backward serial access techniques (e.g., advance five seconds), or direct access techniques (e.g., play starting at the 10-minute mark), or some combination. Normative inclusions and exclusions 1. When serial access techniques are used to satisfy provision two of this checkpoint, the user agent is not required to play back content during advance or rewind (though doing so may help orient the user). 2. When the user pauses a real-time audio or animation, the user agent may discard packets that continue to arrive during the pause. 3. This checkpoint applies to content that is either rendered automatically (e.g., on load) or on explicit request from the user. 4. The user agent is not required to satisfy this checkpoint for audio and animations whose recognized role is to create a purely stylistic effect; see checkpoint 4.4 for more information about what constitutes a stylistic effect. 5. Conformance profile labels: Animation, Audio. Note: The lower bound of three seconds is part of this checkpoint since control is not required for brief audio and animation clips, beeps, etc. Respect synchronization cues per checkpoint 2.6. 4.6 Do not obscure captions. (P1) Techniques for checkpoint 4.6 1. For graphical viewports, allow configuration so that captions synchronized with a visual track in content are not obscured by it. Sufficient techniques 1. Render captions "on top" of the visual track and, as part of satisfying checkpoint 4.3, allow the user to configure the foreground and background color of the rendered captions text. 2. Render captions and video in separate viewports. Checkpoint definitions for audio volume control 4.7 Global volume control. (P1) Techniques for checkpoint 4.7 1. Allow global configuration of the volume of all rendered audio, with an option to override audio volumes specified by the author or user agent defaults. 2. As part of satisfying provision one of this checkpoint, allow the user to choose zero volume (i.e., silent). Normative inclusions and exclusions 1. This checkpoint must be satisfied for all implemented specifications that produce sound; see the section on conformance profiles. 2. Conformance profile labels: Audio. 3. Conformance detail: For both content and user agent. Note: User agents should allow configuration of volume through available operating environment mechanisms. 4.8 Independent volume control. (P1) Techniques for checkpoint 4.8 1. Allow independent control of the volumes of rendered audio content synchronized to play simultaneously. Normative inclusions and exclusions 1. The user control required by this checkpoint includes the ability to override author-specified volumes for the relevant sources of audio. 2. The user agent is not required to satisfy this checkpoint for audio whose recognized role is to create a purely stylistic effect; see checkpoint 4.4 for more information about what constitutes a stylistic effect. 3. Conformance profile labels: Audio. Note: The user agent should satisfy this checkpoint by allowing the user to control independently the volumes of all audio sources (e.g., by implementing a general audio mixer type of functionality). See checkpoint 4.10 for information about controlling the volume of synthesized speech. Checkpoint definitions for synthesized speech rendering 4.9 Configure synthesized speech rate. (P1) Techniques for checkpoint 4.9 1. Allow configuration of the synthesized speech rate, according to the full range offered by the speech synthesizer. Normative inclusions and exclusions 1. Conformance profile labels: Speech. Note: The range of synthesized speech rates offered by the speech synthesizer may depend on natural language. 4.10 Configure synthesized speech volume. (P1) Techniques for checkpoint 4.10 1. Allow control of the synthesized speech volume, independent of other sources of audio. Normative inclusions and exclusions 1. The user control required by this checkpoint includes the ability to override author-specified synthesized speech volume. 2. Conformance profile labels: Speech. Note: See checkpoint 4.8 for information about independent volume control of different sources of audio. 4.11 Configure synthesized speech characteristics. (P1) Techniques for checkpoint 4.11 1. Allow configuration of synthesized speech characteristics according to the full range of values offered by the speech synthesizer. Normative inclusions and exclusions 1. Conformance profile labels: Speech. Note: Some speech synthesizers allow users to choose values for synthesized speech characteristics at a higher abstraction layer, i.e., by choosing from present options that group several characteristics. Some typical options one might encounter include: "voice ("adult male voice", "female child voice", "robot voice", etc.), "pitch", "stress", etc. Ranges for values may vary among speech synthesizers. 4.12 Specific synthesized speech characteristics. (P2) Techniques for checkpoint 4.12 1. Allow configuration of synthesized speech pitch. Pitch refers to the average frequency of the speaking voice. 2. Allow configuration of synthesized speech pitch range. Pitch range specifies a variation in average frequency. 3. Allow configuration of synthesized speech stress. Stress refers to the height of "local peaks" in the intonation contour of the voice. 4. Allow configuration of synthesized speech richness. Richness refers to the richness or brightness of the voice. Normative inclusions and exclusions 1. Conformance profile labels: Speech. Note: This checkpoint is more specific than checkpoint 4.11. It requires support for the voice characteristics listed in the provisions of this checkpoint. Definitions for these characteristics are based on descriptions in section 19 of the Cascading Style Sheets Level 2 Recommendation [CSS2]; refer to that specification for additional informative descriptions. Some speech synthesizers allow users to choose values for synthesized speech characteristics at a higher abstraction layer, i.e., by choosing from present options distinguished by "gender", "age", "accent", etc. Ranges of values may vary among speech synthesizers. 4.13 Configure synthesized speech features. (P2) Techniques for checkpoint 4.13 1. Provide support for user-defined extensions to the synthesized speech dictionary. 2. Provide support for spell-out: where text is spelled one character at a time, or according to language-dependent pronunciation rules. 3. Allow at least two configurations for speaking numerals: one where numerals are spoken as individual digits, and one where full numbers are spoken. 4. Allow at least two configurations for speaking punctuation: one where punctuation is spoken literally, and one where punctuation is rendered as natural pauses. Normative inclusions and exclusions 1. Conformance profile labels: Speech. Note: Definitions for the functionalities listed in the provisions of this checkpoint are based on descriptions in section 19 of the Cascading Style Sheets Level 2 Recommendation [CSS2]; refer to that specification for additional informative descriptions. Checkpoint definitions related to style sheets 4.14 Choose style sheets. (P1) Techniques for checkpoint 4.14 1. Allow the user to choose from and apply alternative author style sheets (such as linked style sheets). 2. Allow the user to choose from and apply at least one user style sheet. 3. Allow the user to turn off (i.e., ignore) author and user style sheets. Normative inclusions and exclusions 1. This checkpoint only applies to user agents that support style sheets. Note: By definition, the user agent's default style sheet is always present, but may be overridden by author or user styles. Developers should not consider that the user's ability to turn off author and user style sheets is an effective way to improve content accessibility; turning off style sheet support means losing the many benefits they offer. Instead, developers should provide users with finer control over user agent or content behavior known to raise accessibility barriers. The user should only have to turn off author and user style sheets as a last resort. [next guideline: 5] [review guideline: 4] [previous guideline: 3] [contents] Guideline 5. Ensure user control of user interface behavior. Checkpoints: 5.1, 5.2, 5.3, 5.4, 5.5 Ensure that the user can control the behavior of viewports and user interface controls, including those that may be manipulated by the author (e.g., through scripts). Control of viewport behavior is important to accessibility. Unexpected changes to the point of regard - what the user is presumed to be viewing - may cause users to lose track of how many viewports are open, which viewport has the current focus, etc. If carried out automatically, these changes might go unnoticed (e.g., by some users with blindness) or be disorienting (e.g., to some users with a cognitive disability). This guideline includes requirements for control of opening and closing viewports, the relative position of graphical viewports, changes to focus, and inadvertent form submissions. Checkpoint definitions 5.1 No automatic content focus change. (P2) Techniques for checkpoint 5.1 1. Allow configuration so that if a viewport opens without explicit user request, neither its content focus nor its user interface focus automatically becomes the current focus. Sufficient techniques 1. To satisfy provision one of this checkpoint, configuration is preferred, but is not required if the content focus can only ever be moved on explicit user request. 5.2 Keep viewport on top. (P2) Techniques for checkpoint 5.2 1. For graphical user interfaces, allow configuration so that the viewport with the current focus remains "on top" of all other viewports with which it overlaps. 5.3 Manual viewport open only. (P2) Techniques for checkpoint 5.3 1. Allow configuration so that viewports only open on explicit user request. 2. When configured per provision one of this checkpoint, instead of opening a viewport automatically, alert the user and allow the user to open it with an explicit request (e.g., by confirming a prompt or following a link generated by the user agent). 3. Allow the user to close viewports. Sufficient techniques 1. To satisfy provision one of this checkpoint, configuration is preferred, but is not required if viewports can only ever open on explicit user request. Normative inclusions and exclusions 1. If a viewport (e.g., a frame set) contains other viewports, these requirements only apply to the outermost container viewport. 2. User creation of a new viewport (e.g., empty or with a new resource loaded) through the user agent's user interface constitutes an explicit user request. Note: Generally, viewports open automatically as the result of instructions in content. See also checkpoint 5.1 (for control over changes of focus when a viewport opens) and checkpoint 6.6 (for programmatic notification of changes to the user interface). 5.4 Selection and focus in viewport. (P2) Techniques for checkpoint 5.4 1. Ensure that when a viewport's selection or content focus changes, it is at least partially in the viewport after the change. Normative inclusions and exclusions 1. Conformance profile labels: Selection. Note: For example, if users navigating links move to a portion of the document outside a graphical viewport, the viewport should scroll to include the new location of the focus. Or, for users of audio viewports, allow configuration to render the selection or focus immediately after the change. 5.5 Confirm form submission. (P2) Techniques for checkpoint 5.5 1. Allow configuration to prompt the user to confirm (or cancel) any form submission. Sufficient techniques 1. Configuration is preferred, but it not required if forms can only ever be submitted on explicit user request. Note: Examples of automatic form submission include: script-driven submission when the user changes the state of a particular form control associated with the form (e.g., via the pointing device), submission when all fields of a form have been filled out, and submission when a "mouseover" or "change" event occurs. [next guideline: 6] [review guideline: 5] [previous guideline: 4] [contents] Guideline 6. Implement interoperable application programming interfaces. Checkpoints: 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 6.10 Implement interoperable interfaces to communicate with other software (e.g., assistive technologies, the operating environment, plug-ins, etc.). This guideline addresses interoperability between a conforming user agent and other software, in particular assistive technologies. The checkpoints of this guideline require implementation of application programming interfaces (APIs) for communication. There are three types of requirements in this guideline: 1. Requirements for what information must be communicated through an API. 2. Requirements for which APIs or types of APIs must be used to communicate this information. 3. Requirements for additional characteristics of these APIs. Note: The User Agent Accessibility Guidelines Working Group believes that, in order to promote interoperability between a conforming user agent and more than one assistive technology, it is more important to implement conventional APIs than custom APIs, even though custom APIs may offer specialized access. Checkpoint definitions 6.1 Programmatic access to HTML/XML infoset. (P1) Techniques for checkpoint 6.1 1. Provide programmatic read access to XML content by making available all of the information items defined by the W3C XML Infoset [INFOSET]. 2. Provide programmatic read access to HTML content by making available all of the following information items defined by the W3C XML Infoset [INFOSET]: + Document Information item: children, document element, base URI, charset + Element Information items: element-type name, children, attributes, parent + Attribute Information items: attribute-type name, normalized value, specified, attribute type, references, owner element + Character Information items: character code, parent element + Comment Information items: content, parent 3. If the user can modify HTML and XML content ("write access") through the user interface (e.g., through form controls), allow for the same modifications programmatically. 6.2 DOM access to HTML/XML content. (P1) Techniques for checkpoint 6.2 1. Provide access to the content required in checkpoint 6.1 by conforming to the following modules of the W3C Document Object Model DOM Level 2 Core Specification [DOM2CORE] and exporting bindings for the interfaces they define: + for HTML: the Core module. + for XML: the Core and XML modules. 2. As part of satisfying provision one of this checkpoint, + Export the normative bindings specified in the DOM Level 2 Core Specification [DOM2CORE] (namely, for Java [JAVA] and ECMAScript [ECMASCRIPT] operating environments). + For other environments, the bindings exported to satisfy provision one of this checkpoint (e.g., C++ bindings) must be publicly documented. Normative inclusions and exclusions 1. The user agent is not required to export the bindings outside of the user agent process (though doing so may be useful to assistive technology developers). Note: Refer to the "Document Object Model (DOM) Level 2 Core Specification" [DOM2CORE] for information about HTML and XML versions covered. This checkpoint is stands apart from checkpoint 6.1 to emphasize the distinction between what information is required and how to provide access to that information. 6.3 Programmatic access to non-HTML/XML content. (P1) Techniques for checkpoint 6.3 1. For content other than HTML and XML, provide structured programmatic read access to content, and write access to those parts of content that the user can modify through the user interface. 2. As part of satisfying provision one of this checkpoint, implement at least one API according to this API cascade: + The API is defined by a W3C Recommendation, or the API is publicly documented and designed to enable interoperability with assistive technologies. + If no such API is available, or if available APIs do not enable the user agent to satisfy the requirements, o implement at least one publicly documented API to satisfy the requirements, and o follow operating environment conventions for the use of input and output APIs. Normative inclusions and exclusions 1. "Structured programmatic access" means access through an API to recognized information items of the content (such as the information items of the XML Infoset [INFOSET]). Plain text has little structure, so an API that provides access to it will be correspondingly less complex than an API for XML content. For content more structured than plain text, an API that only provides access to a stream of characters does not satisfy the requirement of providing structured programmatic access. This document does not otherwise define what is sufficiently structured access. 2. An API is considered "available" if the specification of the API is published (e.g., as a W3C Recommendation) in time for integration into a user agent's development cycle. Note: This checkpoint addresses content not covered by checkpoint 6.1 and checkpoint 6.2. 6.4 Programmatic access to information about rendered content. (P1) Techniques for checkpoint 6.4 1. For graphical user agents, make available bounding dimensions and coordinates of rendered graphical objects. Coordinates must be relative to the point of origin in the graphical environment (e.g., with respect to the desktop), not the viewport. 2. For graphical user agents, provide access to the following information about each piece of rendered text: font family, font size, and foreground and background colors. 3. As part of satisfying provisions one and two of this checkpoint, implement at least one API according to the API cascade described in provision two of checkpoint 6.3. Note: User agents should provide programmatic access to additional useful information about rendered content that is not available through the APIs required by checkpoints 6.2 and 6.3, including the correspondence (in both directions) between graphical objects and their source in the document object, and information about the role of each graphical object. 6.5 Programmatic operation of user agent user interface. (P1) Techniques for checkpoint 6.5 1. Provide programmatic read access to user agent user interface controls, selection, content focus, and user interface focus. 2. Provide programmatic write access for those user agent user interface controls that the user can modify through the user interface. 3. As part of satisfying provisions one and two of this checkpoint, implement at least one API according to the API cascade described in provision two of checkpoint 6.3. Normative inclusions and exclusions 1. For security reasons, user agents are not required to allow instructions in content to modify user agent user interface controls. See more information on security considerations. 2. Conformance detail: For user agent features. Note: APIs used to satisfy the requirements of this checkpoint may be independent of a particular operating environment (e.g., the W3C DOM), conventional APIs for a particular operating environment, conventional APIs for programming languages, plug-ins, virtual machine environments, etc. User agent developers are encouraged to implement APIs that allow assistive technologies to interoperate with multiple types of software in a given operating environment (user agents, word processors, spreadsheet programs, etc.), as this reuse will benefit users and assistive technology developers. User agents should always follow operating environment conventions for the use of input and output APIs. 6.6 Programmatic notification of changes. (P1) Techniques for checkpoint 6.6 1. Provide programmatic notification of changes to content, user agent user interface controls, selection, content focus, and user interface focus. 2. As part of satisfying provision one of this checkpoint, implement at least one API according to the API cascade of provision two of checkpoint 6.3. Normative inclusions and exclusions 1. The user agent is not required to provide notification of changes in the rendering of content (e.g., due to an animation effect or an effect caused by a style sheet) unless the document object to make those changes. 2. Conformance profile labels: Selection. 3. Conformance detail: For both content and user agent. Note: For instance, provide programmatic notification when user interaction in one frame causes automatic changes to content in another. 6.7 Conventional keyboard APIs. (P1) Techniques for checkpoint 6.7 1. Implement APIs for the keyboard as follows: + Follow operating environment conventions. + If no conventions exist, implement publicly documented APIs. Note: An operating environment may define more than one conventional API for the keyboard. For instance, for Japanese and Chinese, input may be processed in two stages, with an API for each. 6.8 API character encodings. (P1) Techniques for checkpoint 6.8 1. For an API implemented to satisfy requirements of this document, support the character encodings required for that API. Normative inclusions and exclusions 1. Conformance detail: For both content and user agent. Note: Support for character encodings is important so that text is not "broken" when communicated to assistive technologies. For example, the DOM Level 2 Core Specification [DOM2CORE], section 1.1.5 requires that the DOMString type be encoded using UTF-16. 6.9 DOM access to CSS style sheets. (P2) Techniques for checkpoint 6.9 1. For user agents that implement Cascading Style Sheets (CSS), provide programmatic access to style sheets by conforming to the CSS module of the W3C Document Object Model (DOM) Level 2 Style Specification [DOM2STYLE] and exporting bindings for the interfaces it defines. 2. As part of satisfying provision one of this checkpoint: + Export the normative bindings specified in the CSS module of the DOM) Level 2 Style Specification [DOM2STYLE] (namely, for Java [JAVA] and ECMAScript [ECMASCRIPT] operating environments). + For other environments, the bindings exported to satisfy provision one of this checkpoint must be publicly documented. Normative inclusions and exclusions 1. For the purposes of satisfying this checkpoint, Cascading Style Sheets (CSS) are defined by either CSS Level 1 [CSS1] or CSS Level 2 [CSS2]. 2. The user agent is not required to export the bindings outside of the user agent process. Note: Refer to the "Document Object Model (DOM) Level 2 Style Specification" [DOM2STYLE] for information about CSS versions covered. 6.10 Timely exchanges through APIs. (P2) Techniques for checkpoint 6.10 1. For APIs implemented to satisfy the requirements of this document, ensure that programmatic exchanges proceed in a timely manner. Normative inclusions and exclusions 1. Conformance detail: For both content and user agent. Note: For example, the programmatic exchange of information required by other checkpoints in this document should 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. Timely exchange is also important for the proper synchronization of alternative renderings. The techniques for this checkpoint explain how developers can reduce communication delays. This will help ensure that assistive technologies have timely access to the document object model and other information that is important for providing access. [next guideline: 7] [review guideline: 6] [previous guideline: 5] [contents] Guideline 7. Observe operating environment conventions. Checkpoints: 7.1, 7.2, 7.3, 7.4 Observe operating environment conventions for the user agent user interface, documentation, installation, etc. Part of user agent accessibility involves following the conventions of the user's operating environment, including: * following operating environment conventions for user agent user interface design, documentation, and installation. * incorporating operating environment-level user preferences into the user agent. For instance, some operating systems include settings that allow users to request high-contrast colors (for users with low vision) or graphical rendering of audio cues (for users with hearing disabilities). Following operating environment conventions also increases predictability for users and for developers of assistive technologies. These guidelines explain what users will expect from the look and feel of the user interface, keyboard conventions, documentation, etc. These guidelines also include information about accessibility features that the user agent should adopt rather than reimplement. The chapter on conformance explains more on the use of operating environment features as part of conformance. Checkpoint definitions 7.1 Respect focus and selection conventions. (P1) Techniques for checkpoint 7.1 1. Follow operating environment conventions that benefit accessibility when implementing the selection, content focus, and user interface focus. Normative inclusions and exclusions 1. This checkpoint is mutually exclusive of checkpoint 7.3 since it has a higher priority. 2. Conformance profile labels: Selection. Note: See checkpoints 9.1 and 9.2 for more information about content focus and user interface focus. 7.2 Respect input configuration conventions. (P1) Techniques for checkpoint 7.2 1. Ensure that default input configurations of the user agent do not interfere with operating environment accessibility conventions (e.g., for keyboard accessibility). Normative inclusions and exclusions 1. Conformance detail: For user agent features. Note: Information about operating environment accessibility conventions is available in the Techniques document [UAAG10-TECHS]. See checkpoint 11.5 for information about the user agent's default input configuration. 7.3 Respect operating environment conventions. (P2) Techniques for checkpoint 7.3 1. Follow operating environment conventions that benefit accessibility. In particular, follow conventions that benefit accessibility for user interface design, keyboard configuration, product installation, and documentation. Normative inclusions and exclusions 1. For the purposes of this checkpoint, an operating environment convention that benefits accessibility is either + one identified as such in operating environment design or accessibility guidelines, or + one that allows the author to satisfy any requirement of the "Web Content Accessibility Guidelines 1.0" [WCAG10] or of the current document. 2. This checkpoint excludes the requirements of checkpoints 7.1 and 7.4. 3. Conformance detail: For user agent features. Note: Some of these conventions (e.g., sticky keys, mouse keys, show sounds, etc.) are discussed in the Techniques document [UAAG10-TECHS]. 7.4 Provide input configuration indications. (P2) Techniques for checkpoint 7.4 1. Follow operating environment conventions to indicate the input configuration. Normative inclusions and exclusions 1. This checkpoint is mutually exclusive of checkpoint 7.3 to emphasize the importance of consistency in input configurations. 2. Conformance detail: For user agent features. Note: For example, in some operating environments, when a functionality may be triggered through a menu and through the keyboard, the developer may design the menu entry so that the character of the activating key is also shown. See checkpoint 11.5 for information about the user agent's default input configuration. [next guideline: 8] [review guideline: 7] [previous guideline: 6] [contents] Guideline 8. Implement specifications that benefit accessibility. Checkpoints: 8.1, 8.2 Support the accessibility features of all implemented specifications. Implement W3C Recommendations when available and appropriate for a task. Developers should implement open specifications. Conformance to open specifications benefits interoperability and accessibility by making it easier to design assistive technologies (also discussed in guideline 6). While developers should implement the accessibility features of any specification (checkpoint 8.1), this document recommends conformance to W3C Recommendations in particular (checkpoint 8.2) for several reasons: * W3C specifications include "built-in" accessibility features. * W3C specifications undergo early review to ensure that accessibility issues are considered during the design phase. This review includes review from stakeholders in accessibility. * W3C specifications are developed in a consensus process (refer to the process defined by the W3C Process Document [W3CPROCESS]). W3C encourages the public to review and comment on these specifications (public Working Drafts, Candidate Recommendations, and Proposed Recommendations). For information about how specifications become W3C Recommendations, refer to the W3C Recommendation track ([W3CPROCESS], section 6.2). W3C Recommendations (and other technical reports) are published at the W3C Web site. Checkpoint definitions 8.1 Implement accessibility features. (P1) Techniques for checkpoint 8.1 1. Implement the accessibility features of specifications (markup languages, style sheet languages, metadata languages, graphics formats, etc.). Normative inclusions and exclusions 1. This checkpoint applies to both W3C-developed and non-W3C specifications. 2. For the purposes of this checkpoint, an accessibility feature of a specification is either: + one identified as such in the specification, or + one that allows the author to satisfy any requirement of the "Web Content Accessibility Guidelines 1.0" [WCAG10]. 3. The user agent is not required to satisfy this checkpoint for all implemented specifications; see the section on conformance profiles for more information. 4. Conformance detail: For all content. Note: The Techniques document [UAAG10-TECHS] provides information about the accessibility features of some specifications, including W3C specifications. 8.2 Conform to specifications. (P2) Techniques for checkpoint 8.2 1. Use and conform to either + W3C Recommendations when they are available and appropriate for a task, or + non-W3C specifications that enable the creation of content that conforms at level A or better to the Web Content Accessibility Guidelines 1.0 [WCAG10]. Sufficient techniques 1. When a requirement of another specification contradicts a requirement of the current document, the user agent may disregard the requirement of the other specification and still satisfy this checkpoint. Normative inclusions and exclusions 1. A specification is considered available if it is published (e.g., as a W3C Recommendation) in time for integration into a user agent's development cycle. 2. The user agent is not required to satisfy this checkpoint for all implemented specifications; see the section on conformance profiles for more information. 3. Conformance detail: For all content. Note: For instance, for markup, the user agent may conform to HTML 4 [HTML4], XHTML 1.0 [XHTML10], and/or XML 1.0 [XML]. For style sheets, the user agent may conform to CSS ([CSS1], [CSS2]). For mathematics, the user agent may conform to MathML 2.0 [MATHML20]. For synchronized multimedia, the user agent may conform to SMIL 1.0 [SMIL]. [next guideline: 9] [review guideline: 8] [previous guideline: 7] [contents] Guideline 9. Provide navigation mechanisms. Checkpoints: 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 9.10 Provide access to content through a variety of navigation mechanisms: sequential navigation, direct navigation, searches, structured navigation, etc. 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 it is an enabled element), and review the surrounding context (to orient themselves). Providing a variety of navigation and search mechanisms helps users with disabilities (and all users) access content more efficiently. Navigation and searching are particularly important to users with serial access to content or who navigate sequentially. Direct navigation (e.g., to a particular link or paragraph) 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), to users with visual disabilities, and also benefits "power users." Direct navigation may be possible with the pointing device or the keyboard (e.g., keyboard shortcuts). Structured navigation mechanisms offer both context and speed. User agents should allow users to navigate to content known to be structurally important: blocks of content, headers and sections, tables, forms and form elements, enabled elements, navigation mechanisms, containers, etc. For information about programmatic access to document structure, see guideline 6. 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.). Checkpoint definitions 9.1 Provide content focus. (P1) Techniques for checkpoint 9.1 1. Provide at least one content focus for each viewport (including frames) where enabled elements are part of the rendered content. 2. Allow the user to make the content focus of each viewport the current focus. Normative inclusions and exclusions 1. When a viewport includes no enabled elements (either because the format does not provide for this, or a given piece of content has no enabled elements), the content focus requirements of the following checkpoints do not apply: 1.2, 5.1, 5.4, 6.6, 7.1, 9.3, 9.4, 9.5, 9.6, 9.7, 10.2, and 11.5. Note: For example, when two frames of a frameset contain enabled elements, allow the user to make the content focus of either frame the current focus. Note that viewports "owned" by plug-ins that are part of a conformance claim are also covered by this checkpoint. See checkpoint 7.1 for information about implementing content focus according to operating environment conventions. 9.2 Provide user interface focus. (P1) Techniques for checkpoint 9.2 1. Provide a user interface focus. Note: See checkpoint 7.1 for information about implementing user interface focus according to operating environment conventions. 9.3 Move content focus. (P1) Techniques for checkpoint 9.3 1. Allow the user to move the content focus to any enabled element in the viewport. 2. Allow configuration so that the content focus of a viewport only changes on explicit user request. 3. If the author has not specified a navigation order, allow at least forward sequential navigation, in document order, to each element in the set established by provision one of this checkpoint. Sufficient techniques 1. To satisfy provision one of this checkpoint, configuration is preferred, but is not required if the content focus only ever changes on explicit user request. Normative inclusions and exclusions 1. The user agent may also include disabled elements in the navigation order. Note: In addition to forward sequential navigation, the user agent should also allow reverse sequential navigation. See checkpoint 9.9 for information about structured navigation. See checkpoints 5.1 and 6.6 for more information about focus changes. 9.4 Restore viewport state history. (P1) Techniques for checkpoint 9.4 1. For user agents that implement a viewport history mechanism, for each state in a viewport's browsing history, maintain information about the point of regard, content focus, and selection. 2. When the user returns to any state in the viewport history (e.g., via the "back button"), restore the saved values for the point of regard, content focus, and selection. Normative inclusions and exclusions 1. The viewport history associates values for these three state variables (point of regard, content focus, and selection) with a particular document object. If the user returns to a state in the history and the user agent retrieves new content, the user agent is not required to restore the saved values of the three state variables. 2. Conformance profile labels: Selection. 9.5 No events on focus change. (P2) Techniques for checkpoint 9.5 1. Allow configuration so that moving the content focus to or from an enabled element does not automatically activate any explicitly associated event handlers of any event type. Normative inclusions and exclusions 1. Conformance profile labels: Events. Note: For instance, in this configuration for an HTML document, do not activate any handlers for the 'onfocus', 'onblur', or 'onchange' attributes. In this configuration, user agents should still apply any stylistic changes (e.g., highlighting) that may occur when there is a change in content focus. 9.6 Show event handlers. (P2) Techniques for checkpoint 9.6 1. For the element with content focus, make available the list of input device event types for which there are event handlers explicitly associated with the element. Normative inclusions and exclusions 1. Conformance profile labels: Events. Note: For example, allow the user to query the element with content focus for the list of input device event types, or add them directly to the sequential navigation order described in checkpoint 9.3. See checkpoint 1.2 for information about activation of event handlers associated with the element with focus. 9.7 Move content focus in reverse. (P2) Techniques for checkpoint 9.7 1. Extend the functionality required in provision three of checkpoint 9.3 by allowing the same sequential navigation in reverse document order. 2. As part of satisfying provision one of this checkpoint, the user agent must not include disabled elements in the navigation order. 9.8 Provide text search. (P2) Techniques for checkpoint 9.8 1. Allow the user to search within rendered text content for a sequence of characters from the document character set. 2. Allow the user to start a forward search (in document order) from any selected or focused location in content. 3. When there is a match, do both of the following: + move the viewport so that the matched text content is within it, and + allow the user to search for the next instance of the text from the location of the match. 4. Alert the user when there is no match or after the last match in content (i.e., prior to starting the search over from the beginning of content). 5. Provide a case-insensitive search option for text in scripts (i.e., writing systems) where case is significant. Normative inclusions and exclusions 1. Conformance detail: For all rendered content. Note: If the user has not indicated a start position for the search, the search should start from the beginning of content. Per checkpoint 7.3, use operating environment conventions for indicating the result of a search (e.g., selection or content focus). 9.9 Allow structured navigation. (P2) Techniques for checkpoint 9.9 1. Allow the user to navigate efficiently to and among important structural elements in rendered content. 2. As part of satisfying provision one of this checkpoint, allow forward and backward sequential navigation. Note: This specification intentionally does not identify which "important elements" must be navigable as this will vary by specification. What constitutes "efficient navigation" may depend on a number of factors as well, including the "shape" of content (e.g., sequential navigation of long lists is not efficient) and desired granularity (e.g., among tables, then among the cells of a given table). Refer to the Techniques document [UAAG10-TECHS] for information about identifying and navigating important elements. 9.10 Configure important elements. (P3) Techniques for checkpoint 9.10 1. Allow configuration of the set of important elements and attributes identified for checkpoints 9.9 and 10.4. 2. As part of satisfying provision one of this checkpoint, allow the user to include and exclude element types in the set. Note: For example, allow the user to navigate only paragraphs, or only headings and paragraphs, or to suppress and restore navigation bars, to navigate within and among tables and table cells, etc. [next guideline: 10] [review guideline: 9] [previous guideline: 8] [contents] Guideline 10. Orient the user. Checkpoints: 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7 Provide information that will help the user understand browsing context. All users require clues to help them understand their "location" when browsing: where they are, how they got there, where they can go, what's nearby, etc. Some mechanisms that provide such clues through the user interface (visually, as audio, or as braille) include: * information about the current state of the user's interaction with content: where the viewport is in content (shown, for example, through proportional scroll bars), which viewport has the current focus, where the user has selected content, a history mechanism, the title of the current document or frame, etc. * information about specific elements, such as the dimensions of a table, the length of an audio clip, the structure of a form, etc. * information about relationships among elements, such as between table cells and related table headers. * information about the structure of content, e.g., through an outline view of a document. Orientation mechanisms such as these are especially important to users with serial access to content or who navigate sequentially. 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 need to 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. Checkpoint definitions 10.1 Associate table cells and headers. (P1) Techniques for checkpoint 10.1 1. For graphical user agents that render tables, for each table cell, allow the user to view associated header information. Sufficient techniques 1. The user agent may satisfy this checkpoint by allowing the user to query each table cell for associated header information. 2. The user agent may satisfy this checkpoint by rendering the table cell and associated header information so they are both visible in the same viewport. Normative inclusions and exclusions 1. This checkpoint refers only to cell/header relationships that the user agent can recognize. 10.2 Highlight selection, content focus, enabled elements, visited links. (P1) Techniques for checkpoint 10.2 1. Allow global configuration to highlight the following four classes of information in each viewport: the selection, content focus, enabled elements, and recently visited links. 2. For graphical user interfaces, as part of satisfying provision one of this checkpoint, allow at least one configuration where the highlight mechanisms for the four classes of information: + differ from each other, and + do not rely on rendered text foreground and background colors alone. 3. For graphical user interfaces, as part of satisfying provision one of this checkpoint, if a highlight mechanism involves text size, font family, rendered text foreground and background colors, or text decorations, offer at least the following range of values: + for text size, the range required by provision three of checkpoint 4.1. + for font family, the range required by provision three of checkpoint 4.2. + for text foreground and background colors and decorations, the range offered by the conventional utility available in the operating environment for users to choose rendered text colors or decorations (e.g., the standard font and color dialog box resources supported by the operating system). If no such utility is available, the range supported by the conventional APIs of the operating environment for specifying text colors or drawing text. 4. Highlight enabled elements according to the granularity specified in the format. For example, an HTML user agent rendering a PNG image as part of a client-side image map is only required to highlight the image as a whole, not each enabled region. An SVG user agent rendering an SVG image with embedded graphical links is required to highlight each (enabled) link that may be rendered independently according to the SVG specification. Normative inclusions and exclusions 1. Conformance profile labels: Selection. Note: Examples of highlight mechanisms for selection and content focus include foreground and background color variations, underlining, distinctive synthesized speech prosody, border styling, etc. Because the selection and focus change frequently, user agents should not highlight them using mechanisms (e.g., font size variations) that cause content to reflow, as this may disorient the user. Graphical highlight mechanisms that generally do not rely on rendered text foreground and background color alone include underlines or border styling. Per checkpoint 7.1, follow operating environment conventions that benefit accessibility when implementing the selection and content focus. For instance, if specified at the level of the operating environment, inherit the user's preferences for selection styles. 10.3 Single highlight configuration. (P2) Techniques for checkpoint 10.3 1. Extend the functionality required by provision two of checkpoint 10.2 by allowing configuration through a single setting. Normative inclusions and exclusions 1. Conformance profile labels: Selection. 10.4 Provide outline view. (P2) Techniques for checkpoint 10.4 1. Make available to the user an "outline" view of rendered content, composed of labels for important structural elements (e.g., heading text, table titles, form titles, and other labels that are part of the content). Normative inclusions and exclusions 1. What constitutes a label is defined by each markup language specification. For example, in HTML, a heading (H1-H6) is a label for the section that follows it, a CAPTION is a label for a table, the "title" attribute is a label for its element, etc. 2. The user agent is not required to generate a label for an important element when no label is present in content. The user agent may generate a label when one is not present. 3. A label is not required to be text only. Note: This outline view will provide the user with a simplified view of content (e.g, a table of contents). For information about what constitutes the set of important structural elements, see the Note following checkpoint 9.9. By making the outline view navigable, it is possible to satisfy this checkpoint and checkpoint 9.9 together: allow users to navigate among the important elements of the outline view, and to navigate from a position in the outline view to the corresponding position in a full view of content. See checkpoint 9.10 for additional configuration options. 10.5 Provide link information. (P3) Techniques for checkpoint 10.5 1. To help the user decide whether to traverse a link in content, make available the following information about it: + link element content, + link title, + whether the link is internal to the resource (e.g., the link is to a target in the same Web page), + whether the user has traversed the link recently, and + information about the type, size, and natural language of linked Web resources. Normative inclusions and exclusions 1. The user agent is not required to compute or make available information that requires retrieval of linked Web resources. Checkpoint definitions for the user interface 10.6 Highlight current viewport. (P1) Techniques for checkpoint 10.6 1. Highlight the viewport with the current focus (including any frame that takes current focus). 2. For graphical viewports, as part of satisfying provision one of this checkpoint, provide at least one highlight mechanism that does not rely on rendered text foreground and background colors alone (e.g., use a thick outline). 3. If the techniques used to satisfy provision one of this checkpoint involve rendered text size, font family, rendered text foreground and background colors, or text d