Understanding Success Criterion 2.1.4: Character Key Shortcuts

If a keyboard shortcut is implemented in content using only letter (including upper- and lower-case letters), punctuation, number, or symbol characters, then at least one of the following is true:

Turn off
A mechanism is available to turn the shortcut off;
Remap
A mechanism is available to remap the shortcut to use one or more non-printable keyboard characters (e.g. Ctrl, Alt, etc).
Active only on focus
The keyboard shortcut for a user interface component is only active when that component has focus.

Intent of Success Criterion 2.1.4: Character Key Shortcuts

Character key shortcuts work well for many keyboard users, but are inappropriate and frustrating for speech input users — whose means of input is strings of letters — and for keyboard users who are prone to accidentally hitting keys. As a result, users must be able to turn off or reconfigure shortcuts made up of a single character key, or two or more successive character keys.

This success criterion is becoming increasingly important in the mobile realm as growing number of apps more fully enable keyboard controls (see Resources).

Note that this success criterion doesn’t affect components such as listboxes and drop-down menus that contain words that may be selected by one or more character keys, since the shortcuts are only active when the components have focus. Similarly, components such as menus may be accessed or opened with an initial, non-single character shortcut (e.g., “ALT” or “ALT+F”). This makes the full path to invoking a menu a two-step shortcut that includes a non-printable key.

Note that Accesskeys are not affected because they include modifier keys.

Background on the mechanics of speech input: Speech Input users generally work in a single mode where they can use a mix of dictation and speech commands. This works well because the user knows to pause before and after commands, and commands are usually at least two words long. So, for instance, a user might say a bit of dictation, such as "the small boat", then pause, and say a command to delete that dictation, such as "Delete Line". In contrast, if the user were to say the two phrases together without a pause, the whole phrase would come out as dictation (i.e., "the small boat delete line"). Although speech input programs often include modes that listen only for dictation or only for commands, most speech users use the all-encompassing mode all the time because it is a much more efficient workflow. (It would increase command inefficiency by 300% if users were to change to command mode and back before and after issuing a command.)

Speech users can also speak most keyboard commands (e.g., "press Control Foxtrot") without any problems. If the website or app is keyboard enabled, the speech user can also write a native speech macro that calls the keyboard command, such as "This Print" to carry out Ctrl+P.

Single-key shortcuts are the exception. While using single letter keys as controls might be appropriate and efficient for many keyboard users, single-key shortcuts are disastrous for speech users. Because only a single key is used to trip a command, a spoken word can become a barrage of single-key commands if the cursor focus happens to be in the wrong place.

Here's a real-life example: If the cursor focus is in the main window of a web mail application that uses common keyboard shortcuts to navigate, archive and mute messages (for instance, "k", "y" and "m"), and someone enters an office and says "Hey Kim" and the speech user's microphone picks that up, "y" archives the current message. "k" moves down one conversation and "m" mutes a message or thread. Or, if the speech user looks up and says "Hey Mike" without remembering to turn off the microphone, the same three things happen in a different sequence. In contrast, in a webpage or web app that doesn't use single-character shortcuts nothing happens (or if the focus is in text field, a phrase that's accidentally picked up by the speech microphone results only in bit of stray text that can be easily seen and undone).

Benefits of Success Criterion 2.1.4: Character Key Shortcuts

Examples of Success Criterion 2.1.4: Character Key Shortcuts

Example 1: Disable Shortcuts

A mechanism is provided to allow users to disable character-key shortcuts. The character key shortcuts are not the only way to carry out these commands. A speech user disables the shortcuts and is able to prevent words that are picked up by the microphone from triggering single-key shortcuts.

Example 2: Alternate Control

A mechanism is provided to allow users to change character-key shortcuts

A keyboard-only user is in a long issues thread. While reading the thread she accidentally hits the “s” key, which moves focus to the search bar at the top of the document. This causes her to lose her place and her train of thought. She changes the shortcut to include another key so she can avoid future interruptions.

Example 3: Shared Alternate Control

A mechanism is provided to allow users to change character-key shortcuts in such a way that the changes can be saved and shared with other users.

Resources Success Criterion 2.1.4: Character Key Shortcuts

Web apps that use character-key shortcuts and allow users to disable and/or change these shortcuts:

Videos of speech user trouble with single character key shortcuts:

Techniques for Success Criterion 2.1.4: Character Key Shortcuts

Sufficient Techniques

  • Users have a way to to turn off single-key shortcuts
  • A mechanism is provided to allow users to change character-key shortcuts. The remapping mechanism includes non-printing characters. The alternative shortcuts could be longer strings of up to 25 characters that would directly serve as native speech commands for any speech engine.

Advisory Techniques

Failures

  • A webpage or web app that includes single-key shortcuts for keyboard users, but does not include a control that allows other types of users to turn the shortcuts off.
  • A webpage or web app that includes single-key shortcuts for keyboard users, but does not include a control that allows other types of users to turn the shortcuts off and does not include a control that allows users to change the shortcuts to more appropriate key combinations.