Skip to main content

All functionality of the content is operable through a keyboard interface without requiring specific timings for individual keystrokes, except where the underlying function requires input that depends on the path of the user's movement and not just the endpoints.

On this page:



Rationale

The intent of this checkpoint is to ensure that, wherever possible, content can be operated through a keyboard or keyboard interface. When content can be operated through a keyboard or alternate keyboard, it is operable by people with no vision (who cannot use devices such as mice that require eye-hand coordination) as well as by people who must use alternate keyboards or input devices that act as keyboard emulators. Keyboard emulators include speech input software, sip and puff software, on-screen keyboards, scanning software and a variety of assistive technologies and alternate keyboards. Individuals with low vision also may have trouble tracking a pointer and find use of software much easier (or only possible) if they can control it from the keyboard.

The phrase "except where the task requires analog, time-dependent input" is included to separate those things that cannot reasonably be controlled from a keyboard. For example, a watercolor application where the stroke is defined by the movement and speed of movement and/or pressure is not something that can be controlled from a keyboard. Also, use of MouseKeys would not satisfy this success criterion because it is not a keyboard equivalent to the application; it is a mouse equivalent (i.e. it looks like a mouse to the application).

Rich Internet applications

Rich Internet application keyboard navigation should behave like desktop application keyboard navigation. For example, keyboard users tab to Windows Explorer and then use the arrow keys to navigate to elements in the tree. WAI-ARIA provides support for arrow key navigation of complex widgets such as menus, trees and grids via the tabindex attribute or activedescendant property. For more information on how to implement arrow key navigation, see the Keyboard and Structural Navigation section of the WAI-ARIA Best Practices and Key-navigable custom JavaScript widgets.

Note that the WAI-ARIA activedescendant property is only supported in Firefox 3.0 or higher and JAWS 10 or higher at this time.

Required development techniques

Compliance with this checkpoint requires all of the following techniques be met. These techniques are defined in the WCAG 2.0 Level A Success Criterion for Guideline 2.1.1 (link resides outside of ibm.com).

1. Keyboard control: Ensure keyboard control of all functionality

2. Event handlers: Providing keyboard-triggered event handlers

Examples for HTML developers

1. Keyboard control: Ensure keyboard control of all functionality

To comply with this technique, example one must be implemented. Example two must be implemented for rich Internet widgets (e.g., trees, menus, etc.).

Example 1

Ensure keyboard control by using HTML form controls and links.

User agents provide the keyboard operation of HTML form controls and links, therefore, whenever possible standard HTML form controls and link elements should be used. Form controls and link elements can be tabbed to, and standard controls can be operated without additional development effort.

Example 2

Rich Internet widget keyboard navigation should behave like desktop widget keyboard navigation. For example, keyboard users tab to Windows Explorer and then use the arrow keys to navigate to elements in the tree. WAI-ARIA provides support for arrow key navigation of complex widgets such as menus, trees and grids via the tabindex attribute or activedescendant (link resides outside of ibm.com) property. For more information on how to implement arrow key navigation, see the Keyboard and Structural Navigation section of the WAI-ARIA Best Practices (link resides outside of ibm.com) and Key-navigable custom JavaScript widgets (link resides outside of ibm.com).

Note that the WAI-ARIA activedescendant (link resides outside of ibm.com) property is only supported in Firefox 3.0 or higher and JAWS 10 or higher at this time.

2. Event handlers: Providing keyboard-triggered event handlers

There are no specific techniques for HTML.

Examples for Script developers

For techniques that have no technology-specific examples, refer to the HTML example section for guidance.

1. Keyboard control: Ensure keyboard control of all functionality

There are no specific techniques for Script developers.

2. Event handlers: Providing keyboard-triggered event handlers

To comply with this technique, all of the following examples must be implemented

Example 3

Provide keyboard-triggered event handlers.

All event handlers executed by non-keyboard UI events (such as a mouse click) should also be triggered by a keyboard-based event. For example, if you use the onmouseover event handlers, you should also add a redundant onclick mechanism, so that a keyboard only user can perform the action.

Another example is if you use a drag and drop feature, the user must be given the opportunity to perform the same actions using either cut and paste or another keyboard based approach.

For additional information, refer to WCAG 2.0 examples for providing keyboard triggered event handlers (link resides outside of ibm.com)


Examples for Dojo developers

1. Keyboard control: Ensure keyboard control of all functionality

There are no specific techniques for Dojo developers.

2. Event handlers: Providing keyboard-triggered event handlers

To comply with this technique, all of the following examples must be implemented

Example 4

Provide keyboard-triggered event handlers for Dojo

The Dojo Book provides keyboard navigation documentation for each of the Dijit widgets. For more information on how to include Dojo in your application, see Dojo Accessibility Overview.


Examples for Adobe® Flash® developers

For techniques that have no technology-specific examples, refer to the HTML example section for guidance.

1. Ensure keyboard control of all functionality

There are no specific techniques for Flash developers.

2. Event handlers: Providing keyboard-triggered event handlers

To comply with this technique, all of the following examples must be implemented

Example 5

Provide keyboard-triggered event handlers in Flash.

More information can be found on the Adobe Flash Accessibility Design Guidelines website for Keyboard Access (link resides outside of ibm.com).


Examples for IBM® Lotus® Domino® developers

For techniques that have no technology-specific examples, refer to the HTML example section for guidance.

1. Keyboard control: Ensure keyboard control of all functionality

There are no specific techniques for Domino developers.

2. Event handlers: Providing keyboard-triggered event handlers

To comply with this technique, all of the following examples must be implemented

Example 6

Provide keyboard-triggered event handlers for Domino.

The objective of this technique is to permit individuals who rely on a keyboard or keyboard interface to access the functionality of the content. To do this, make sure that all of the events used in scripts or other interactive controls on the page are associated with a keyboard-based event or provide redundant keyboard-based mechanisms to accomplish the functionality provided by other device-specific functions.

Domino supports JavaScript event handlers on a form, subform, page, field, action, button or action hotspot using the Programmers Pane. Some event handler actions are not accessible via a keyboard. Care should be taken to provide alternate methods especially when using event handlers such as onMouseOver, onMouseOut, and so on. The onClick event handler is keyboard accessible.

The following JavaScript events must have alternatives for keyboard accessibility:

Required test techniques

The following test tools and techniques are required to test this checkpoint.

  1. Test tools
  2. Required accessibility verification test techniques

Test tools:

Install the following tools to test this checkpoint

Required accessibility verification test techniques:

Use the following accessibility verification test (AVT) techniques to validate the Web content. It is recommended that these tests be performed in order.

1. Web syntax analyzer test:
  Action Result
Test the Web site with a Web syntax analyzer to verify the compliance criteria as follows:

The tool does not identify any of the following
Pass:
Fail:
2. Manual test:
  Action Result
Verify the compliance criteria for this technique as follows.

Pass:
Fail:
3. Screen reader test:
  Action Result
Verify the following compliance criteria with a screen reader.

For detailed instructions on how to test this checkpoint with a screen reader follow the 'Screen reader accessibility verification tests for Web checklist 5.1' document.

Pass:
Fail:


®2009 IBM Corporation

Last updated August 31, 2009.

W3C Recommendation 11 December 2008: http://www.w3.org/TR/WCAG20/ (link resides outside of ibm.com)
Copyright 1994-2009 W3C (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University), All Rights Reserved.