Device-Independent User Input

Accessibility Techniques for Device-Independent User Input
Topic Technique WCAG AA Requirement
Keyboard Focusable with Tab Key: Links, buttons, and interactive controls MUST be keyboard-focusable. Required
WCAG 2.1.1
Logical Tab Order: The navigation order of focusable elements MUST be logical and intuitive. Required
WCAG 2.4.3
No Positive tabindex Values: tabindex of positive values SHOULD NOT be used. Best Practice
Visual Focus Indicator: All focusable elements MUST have a visual focus indicator when in focus. Required
WCAG 2.4.7
Enhanced Visual Focus Indicator: Focusable elements SHOULD have enhanced visual focus indicator styles. Best Practice
Color Contrast of Visual Focus Indicator: The contrast of all large visual focus indicators (at least 3px by 3px) against the background) SHOULD be at least 3 to 1. Required
WCAG 1.4.11 (WCAG 2.1)
Focus Not Obscured (Minimum): When a user interface component receives keyboard focus, the component MUST NOT be entirely hidden due to author-created content. Required
WCAG 2.4.11 (WCAG 2.2)
Focus Not Obscured (Enhanced): When a user interface component receives keyboard focus, the focus indicator SHOULD NOT be hidden at all (even partially) by author-created content. Best Practice
Focus Appearance: When the keyboard focus indicator is visible, an area of the focus indicator SHOULD meet specified size and color contrast requirements. Best Practice
Keyboard Functionality: Functionality MUST be available using the keyboard, unless the functionality cannot be accomplished in any known way using a keyboard. Required
WCAG 2.1.1
Keyboard Traps: Keyboard focus MUST NOT be locked or trapped in a particular page element and the user MUST be able to navigate to and from all navigable page elements using only a keyboard. Required
WCAG 2.1.2
Keyboard Shortcuts: Page-specified shortcut keys and accesskeys MUST NOT conflict with existing keyboard shortcuts in the browser, operating system, or assistive technologies. Required
WCAG 2.1.4 (WCAG 2.1)
Custom Keystroke Instructions: When custom keyboard behavior is required to use a component, keyboard instructions MUST be provided. Required
WCAG 3.3.2
ARIA Widget Instructions: ARIA widgets that require more than just the Tab key to interact with may be confusing to users (even when the widgets follow the WAI-ARIA Authoring Practices), so you MAY provide keyboard instructions. Best Practice
Keyboard Focus Management During Interactions Set Keyboard Focus: The focus MUST be purposely moved or set (via JavaScript) onto the appropriate element when the user's action requires a change of context or location for effective keyboard or touch interaction. Required
WCAG 2.4.3
No Lost Focus: The focus MUST NOT become lost or reset to the top of the page, except when loading or re-loading a page. Required
WCAG 2.4.3
Focus Target Has Text: When moving or setting focus, the destination element MUST contain discernible text (either standard text or programmatically associated text). Required
WCAG 1.3.1
Mouse

Target Size (Minimum): The size of the target for pointer inputs MUST be at least 24 by 24 CSS pixels (with some allowable exceptions).

The allowable exceptions for this rule are:

  • Spacing: The target offset is at least 24 CSS pixels to every adjacent target
  • Equivalent: The function can be achieved through a different control on the same page that has an area of at least 24 by 24 CSS pixels
  • Inline: The target is in a sentence or block of text
  • User agent control: The size of the target is determined by the user agent and is not modified by the author
  • Essential: A particular presentation of the target is essential or is legally required for the information being conveyed
Required
WCAG 2.5.8 (WCAG 2.2)

Click Target Size (Enhanced): The click target size SHOULD be at least 44 by 44 CSS pixels.

Note: Allowed exceptions include the following circumstances:

  • The target is available through an equivalent control of at least 44 by 44 CSS pixels
  • The target is inline (in a sentence or block of text)
  • The target size is user-customizable
  • The smaller target size is essential to the information or functionality
Best Practice
Visual Hover Indicator: An enhanced visual hover indicator SHOULD be provided. Best Practice
Mouse Cursor Icon on Hover: The mouse cursor icon on hover SHOULD correspond to the type of action allowed by the element. Best Practice
Pointer Cancellation: For functionality that can be operated using a single-pointer, at least one of the following MUST be true: no down-event, can abort/undo, up reversal, or essential. Required
WCAG 2.5.2 (WCAG 2.1)
Dragging Movements: All functionality that uses a dragging movement for operation MUST BE achievable by a single pointer without dragging, unless dragging is essential or the functionality is determined by the user agent and not modified by the author. Required
WCAG 2.5.7 (WCAG 2.2)
Voice Visual Labels Match Programmatic Labels: The visual labels for links, buttons, form elements, and other controls SHOULD match the programmatic labels (to allow easy and intuitive voice commands). Required
WCAG 2.5.3 (WCAG 2.1)
All the keyboard requirements above apply. Required
multiple
Touch Touch Functionality: Functionality MUST be available using standard touch methods, unless the functionality cannot be accomplished in any known way using a touch device. Required
WCAG 2.5.1 (WCAG 2.1)

Touch Functionality with Screen Reader Enabled: Functionality MUST be available using screen reader touch methods (e.g. single tap or double tap actions), unless the functionality cannot be accomplished in any known way using a touch device.

Note: The touch actions with the screen reader turned on are completely different from the touch actions when the screen reader is turned off.

Required
WCAG 2.5.1 (WCAG 2.1)
Single Pointer: Functionality MUST work with a single pointer (e.g. a single finger), unless multipoint activation is essential. Required
WCAG 2.5.1 (WCAG 2.1)
Touch Cancellation: Touch events MUST NOT be activated on a down event (use up events instead), to allow users to cancel, abort, or undo touch events, unless the down event is essential. Required
WCAG 2.5.2 (WCAG 2.1)
Focus Trap: Touch/gesture focus MUST NOT be locked or trapped in a particular page element and the user MUST be able to navigate to and from all navigable page elements using standard touch actions. Required
WCAG 2.1.2

Target Size (Minimum): The size of the target for pointer inputs MUST be at least 24 by 24 CSS pixels (with some allowable exceptions).

The allowable exceptions for this rule are:

  • Spacing: The target offset is at least 24 CSS pixels to every adjacent target
  • Equivalent: The function can be achieved through a different control on the same page that has an area of at least 24 by 24 CSS pixels
  • Inline: The target is in a sentence or block of text
  • User agent control: The size of the target is determined by the user agent and is not modified by the author
  • Essential: A particular presentation of the target is essential or is legally required for the information being conveyed
Required
WCAG 2.5.8 (WCAG 2.2)

Touch Target Size (Enhanced): The click/touch target size SHOULD be at least 44 by 44 CSS pixels, unless at least one of the following is true:

  • There is an equivalent control on the same page that is at least 44 by 44 CSS pixels, OR
  • The target is inline (in a sentence or block of text), OR
  • The user agent controls the target size, OR
  • The smaller size of the target is essential to the information being conveyed.
Best Practice
Gesture-Only Functionality: Features MUST NOT depend on swipe or gesture motions as the only activation method. Required
WCAG 2.5.1
(WCAG 2.1)
Pointer Gestures: All functionality that uses multipoint or path-based gestures for operation MUST be operable with a single pointer without a path-based gesture, unless a multipoint or path-based gesture is essential. Required
WCAG 2.5.1
(WCAG 2.1)
Dragging Movements: All functionality that uses a dragging movement for operation MUST BE achievable by a single pointer without dragging, unless dragging is essential or the functionality is determined by the user agent and not modified by the author. Required
WCAG 2.5.7 (WCAG 2.2)
Motion Actuation Motion Actuation: Functionality that can be operated by device or user motion MUST also be operable by user interface components and MUST allow the ability to disable motion actuation. Required
WCAG 2.5.4 (WCAG 2.1)
Kinetic Motion of Device: Features MUST NOT depend on kinetic motion of the device (e.g. shake, raise, lower, tilt). Required
WCAG 2.5.4
(WCAG 2.1)