Skip to content

Operable Guidelines — WCAG 2.1 Through 2.5

DodaTech Updated 2026-06-28 5 min read

In this tutorial, you will learn about Operable Guidelines. We cover key concepts, practical examples, and best practices to help you master this topic.

WCAG Operable guidelines ensure users can operate interfaces through keyboard access (2.1), sufficient time (2.2), seizure-safe content (2.3), clear navigation (2.4), and multiple input modalities (2.5) including pointer gestures and motion activation.

What You'll Learn

You will learn the five operable guidelines, their key success criteria, and how to implement keyboard navigation, timing controls, and input modality support.

Why It Matters

If users cannot operate your interface, nothing else matters. Operable violations often block users completely rather than just making things harder.

Real-World Use

DodaTech tests every feature with keyboard-only navigation before release. Durga Antivirus Pro's scan scheduling includes adjustable time limits and pausing options.

flowchart TD
  A[Operable Guidelines] --> B[2.1 Keyboard]
  A --> C[2.2 Enough Time]
  A --> D[2.3 Seizures]
  A --> E[2.4 Navigable]
  A --> F[2.5 Input Modalities]
  B --> G[All functions keyboard accessible]
  C --> H[Adjustable time limits, pause, extend]
  D --> I[No flashing more than 3 times per second]
  E --> J[Clear navigation, focus order, headings]
  F --> K[Pointer, touch, voice, motion alternatives]

Guideline 2.1 — Keyboard Accessible

All functionality must be available from a keyboard. Users must be able to Tab through interactive elements and activate them.

Key Criteria

2.1.1 Keyboard (A). 2.1.2 No Keyboard Trap (A). 2.1.4 Character Key Shortcuts (A).

<!-- Keyboard-accessible custom control -->
<div role="tablist" aria-label="Security settings">
  <button role="tab" aria-selected="true" aria-controls="panel-general"
          tabindex="0" onclick="switchTab('general')">
    General
  </button>
  <button role="tab" aria-selected="false" aria-controls="panel-advanced"
          tabindex="-1" onclick="switchTab('advanced')">
    Advanced
  </button>
</div>
// Keyboard event handling for custom widget
document.querySelectorAll('[role="tab"]').forEach(tab => {
  tab.addEventListener('keydown', (e) => {
    const tabs = [...tab.parentElement.querySelectorAll('[role="tab"]')];
    const currentIndex = tabs.indexOf(tab);

    if (e.key === 'ArrowRight') {
      e.preventDefault();
      tabs[(currentIndex + 1) % tabs.length].focus();
    }
    if (e.key === 'ArrowLeft') {
      e.preventDefault();
      tabs[(currentIndex - 1 + tabs.length) % tabs.length].focus();
    }
  });
});

Guideline 2.2 — Enough Time

Users must have enough time to read and use content. Provide ways to adjust, extend, or remove time limits.

Key Criteria

2.2.1 Timing Adjustable (A). 2.2.2 Pause, Stop, Hide (A).

<!-- Session timeout warning -->
<div role="alert" aria-live="assertive">
  <p>Your session will expire in 2 minutes.</p>
  <button onclick="extendSession()">Extend session</button>
</div>

Guideline 2.3 — Seizures

Content must not cause seizures. No content may flash more than three times per second.

Key Criteria

2.3.1 Three Flashes or Below Threshold (A). 2.3.2 Three Flashes (AAA).

Guideline 2.4 — Navigable

Provide ways to help users navigate, find content, and determine where they are.

Key Criteria

2.4.1 Bypass Blocks (A): skip link. 2.4.2 Page Titled (A). 2.4.3 Focus Order (A). 2.4.4 Link Purpose (A). 2.4.5 Multiple Ways (AA). 2.4.6 Headings and Labels (AA). 2.4.7 Focus Visible (AA). 2.4.11 Focus Appearance (AA). 2.4.12 Focus Not Obscured (AA).

<!-- Skip navigation link -->
<a href="#main-content" class="skip-link">Skip to main content</a>

<!-- Page title -->
<title>Scan Results — Durga Antivirus Pro</title>

<!-- Descriptive link -->
<a href="/threat-report-2026.pdf">
  Download 2026 threat report (PDF, 4.2MB)
</a>

Guideline 2.5 — Input Modalities

Support multiple input methods beyond keyboard including touch, voice, and motion.

Key Criteria

2.5.1 Pointer Gestures (A). 2.5.2 Pointer Cancellation (A). 2.5.3 Label in Name (A). 2.5.4 Motion Actuation (A). 2.5.7 Dragging Movements (AA). 2.5.8 Pointer Target Spacing (AA).

<!-- Voice-accessible button -->
<button onclick="startScan()">Start full scan</button>
<!-- User says: click Start full scan -->

<!-- Alternative to dragging -->
<button onclick="moveLeft()">Move left</button>
<button onclick="moveRight()">Move right</button>

Common Mistakes

1. Keyboard Traps

Modals that trap keyboard focus must provide a way to escape (Escape key, close button).

Without a skip link, keyboard users must Tab through every navigation link before reaching content.

3. Invisible Focus Indicators

Removing outline: none without providing an alternative focus style makes navigation impossible for keyboard users.

4. Unadjustable Time Limits

Sessions that time out without warning lose user work. Always warn and allow extension.

5. Flashing Content

Animated content can flash more than three times per second. Use prefers-reduced-motion to respect user preferences.

Click Here or Read More do not describe the link destination. Use descriptive text.

7. Path-Dependent Gestures

Features that require dragging (like reordering a list) must provide a single-click alternative.

Practice Questions

1. What does Guideline 2.1 require?

All functionality must be available from a keyboard. No keyboard traps allowed.

2. What is the minimum focus indicator requirement in WCAG 2.2?

2.4.11 Focus Appearance: at least 2px thick perimeter with 3:1 contrast against unfocused state.

3. What is an accessible alternative to dragging movements?

Single-click alternatives where users select an item and then select a destination.

4. What is the minimum pointer target size in WCAG 2.2?

2.5.8 Pointer Target Spacing: at least 24 by 24 CSS pixels with adequate spacing.

5. Challenge: Navigate your website using only the keyboard. Document every operable barrier you encounter.

FAQ

Does operable mean keyboard only?

No. Operable includes keyboard, touch, voice, mouse, and other input methods. But keyboard is the minimum.

What is a keyboard trap?

A situation where keyboard focus is locked into a component and cannot be moved away using standard keyboard navigation.

How much time should a time limit provide?

At minimum, users must be able to extend the limit by at least 10 times the default, or turn off the limit entirely.

What is the label in name requirement?

The visible text label of a control must match its accessible name. For example, a Search button must have accessible name Search.

Do I need to support motion actuation (shake, tilt)?

If you use motion activation, provide an alternative UI control. Users who cannot hold the device steady need another option.

Mini Project

Create a keyboard navigation test script for a web application. Include test cases for Tab order, interactive elements, dropdown menus, modals, and form submission.

What's Next

Learn about Understandable Guidelines 3.1 through 3.3 covering readability, predictability, and input assistance.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro