# Providing a mechanism to allow users to remap or turn off character key shortcuts

## Metadata

2.1.4 Character Key Shortcuts

Sufficient

## Applicability

Any technology that supports scripting.

## Description

Some authors provide shortcuts in their applications to allow for faster user interaction. However, where such shortcuts involve only character keys (letters, numbers, punctuation or symbol characters) without modifiers, they create challenges for speech input users as well as some keyboard users who lack the ability to type accurately.

To prevent accidental activation, authors must allow users to turn off or reconfigure shortcuts that are made up of only character keys. Reconfiguring the shortcut may involve the ability to add a modifier key such as Ctrl, or authors may elect to allow users to alter the character keys assigned in addition to adding a modifer. Providing a mechanism to turn off or reassign the shortcut ensures more users can successfully interact with the application.

If the keyboard shortcut is only active when a particular user interface component has focus, then the author does not need to provide an override mechanism. For example, in a `select` element, it is expected behaviour that pressing a letter key will reposition to the next item within the select element that begins with that character. This shortcut is only triggered when the select element has focus, and so it does not interfere with a user's ability to interact with the rest of the page.

### Locating and testing for character key shortcuts

An initial challenge for testers is identifying if author-created shortcuts exist, and then determining if existing shortcuts are triggered by character keys without modifiers. Where testers have access to the develop team, the existence and nature of shortcut keys can often be determined simply by asking involved designers and developers. Where reliable information from the authors is not available, the presence of shortcuts can possibly be identified by checking code (for example, in javascript, the presence of `keydown`, `keyup` and `keypress` listeners). Another means of identifying shortcuts is to review documentation. Where none of these strategies provide information on the presence of keyboard shortcuts, manual tests will need to be completed to search for the existence of character key shortcuts. Review the test procedure in failure technique F99 for guidance.

## Examples

### Author provides a simple mechanism to disable shortcuts in a web-based email client

An email client contains single-character shortcuts so that keyboard users can more rapidly interact with the application (e.g., the R key replies to the current item in the inbox, the D key deletes it, the S key stars it). These keys do not apply while users are composing emails; however, users may become confused about whether the keyboard focus is in a compose pane or the inbox and, while in the inbox, inadvertently delete a message by trying to compose a word containing the letter D. To overcome this problem, the author provides a toggle button for the shortcuts, allowing users to easily turn them off or on.

### Author provides a menu option where users can remap shortcuts

A web-based application has single-character shortcuts for functions which are different than those a user regularly uses with a software application installed locally. Since the author has provided a menu where the user can reassign both the shortcut keys and the modifiers, the user is able to reassign the shortcut to a familiar combination.

## Tests

### Procedure

For each character key shortcut:

1. Determine if the user has the ability either to turn off the shortcut or to remap it to a combination that includes one or more modifier keys.

### Expected Results

- #1 is true.