skip to content

What does 'keyboard operable' demand of a custom control, and who besides keyboard users is blocked when it is pointer-only?

level: seniorimportance: should knowfreq 46%

answer

  1. Focusable is not the same as usable
  2. Count actions, not controls
  3. Hover, drag and long press need routes
  4. The keyboard interface is an abstraction

basics

~10 s

Every action a control offers by pointer must also be reachable and performable by keyboard alone: reach, activate, adjust, cancel, leave. Pointer-only interaction blocks switch, voice and alternative-input users too, not keyboard users alone.

solid answer

~50 s

The requirement is that **all functionality** is operable through a keyboard interface, without depending on timing between keystrokes -- so the unit of parity is the action, not the control. A custom widget you can focus and activate but whose value only changes by dragging, or a menu that opens but will not close, still fails. Walk the inventory: reach it, see that it has focus, understand its state, activate it, adjust it, cancel it, and leave it in both directions. The reach is wider than it looks: the standard says *keyboard interface*, and switch scanning, voice control, on-screen keyboards and eye-gaze input all drive it, as do people with a tremor for whom a precise drag is unreliable. Pointer-only interaction blocks all of them at once, which is why a drag needs an equal alternative route rather than a bolted-on shortcut.

code

pseudocode · 8 lines
pseudocode
DEFINITION OF DONE - custom control
  [ ] reachable in the focus order, in reading position
  [ ] which control has focus is visible at all times
  [ ] every pointer action has a keyboard equivalent
  [ ] hover-revealed content also appears on focus
  [ ] cancel and dismiss work from the keyboard
  [ ] focus can leave forward AND backward
  [ ] no action depends on timing between keystrokes

go deeper

for a junior

Be ready to say that being able to focus a control is not the same as being able to use it, and that every action a pointer can perform needs a keyboard route to the same outcome.

for a middle

Walk the action inventory out loud -- reach, see focus, activate, adjust, cancel, leave -- and give the keyboard equivalents for hover, drag and long press instead of talking about controls in general.

for a senior

Demonstrate that you test with the pointing device removed, and that you treat a pointer-only step as a broken flow rather than a missing feature, including what one such step does to a claim over a multi-step process.

for a principal

Own the systemic answer: interaction patterns with no keyboard route should be impossible to build from the shared component set, and the alternative route should be the primary one rather than a hidden accessibility mode.

## Parity is per action, not per control "Keyboard operable" is not "can be focused". **2.1.1 Keyboard (Level A)** requires that all functionality is operable through a keyboard interface, without requiring specific timings for individual keystrokes. *All functionality* is the load-bearing phrase: the unit of parity is the **action**, not the widget. A control that can be reached and activated but whose value cannot be changed, or a menu that opens but will not close, has satisfied nobody. The inventory to walk for any custom control: 1. **Reach it** -- it is a stop in the focus order, in a position that matches where it reads. 2. **Know you are on it** -- something on screen shows which control has focus; an interface that moves focus invisibly is unusable even when every action works. 3. **Understand what it is and what state it is in** before committing to an action. 4. **Activate it** with the ordinary activation keys for that kind of control. 5. **Adjust it** -- pick among options, move a value, reorder, expand and collapse. 6. **Cancel and dismiss** -- every way out that a pointer has. 7. **Leave it**, forward and backward, without reaching for a pointer. Pointer affordances map onto keyboard equivalents that have to exist: | What the pointer does | What must also be possible | | --- | --- | | Tap or click to activate | activation from the keyboard while the control has focus | | Hover to reveal extra content | the same content revealed on focus, dismissible and persistent | | Drag to reorder or set a value | a keyboard command performing the same reorder or change | | Long press for a secondary menu | a key that opens the same menu | | A path-based or multi-point gesture | a single-pointer alternative, and a keyboard route | | Scroll inside a sub-region | keys that scroll that region once focus is inside it | WCAG carries several of these as criteria in their own right: the ones on pointer gestures and on dragging movements require single-pointer alternatives, and the one on content revealed by hover or focus requires that such content be dismissible, hoverable and persistent. They exist because a design assuming a steady, accurate pointing device excludes far more people than the phrase "keyboard user" suggests. ## Who is actually blocked The standard says **keyboard interface**, not keyboard, and the distinction is deliberate. The keyboard interface is the abstraction assistive technology drives, so making a control keyboard operable is what makes it work for a long list of people who may never touch a keyboard: - Somebody using a **switch device**, where scanning selects and activates through that same interface. - Somebody using **voice control**, whose spoken command has to resolve to a focusable control with a name and then activate it. - Somebody using an **on-screen keyboard**, an alternative keyboard, a head pointer or **eye-gaze** input. - Somebody with a **tremor or limited fine motor control**, for whom a precise drag or a long press is unreliable even with a pointing device in hand. - Somebody who cannot see where the pointer is and therefore cannot aim it. - Somebody whose pointing device has failed, or who is working one-handed on a moving train -- the situational cases that make this everybody's problem eventually. A control that can only be driven by dragging is therefore not a niche gap. It is the single interaction with no fallback for any of those groups at once. ## Composite controls: one stop, inner navigation A group of closely related controls -- a set of tabs, a toolbar, a list of options, a grid of days -- is conventionally **one stop in the focus order**, with the arrow keys moving between the items inside it. That is not decoration: it keeps the number of stops proportional to the number of *tasks* rather than the number of controls, which stops a dense screen becoming a hundred-press corridor. Adopt whichever convention you like, but adopt it consistently: a user's expectation of how a kind of widget behaves is itself part of operability. If a control defines a shortcut that is a single character with no modifier, the standard requires it can be turned off, remapped, or made active only while the relevant control has focus. Otherwise it fires under anybody dictating text by voice. ## A worked check A council waste-collection service builds a bulky-item booking screen where the user drags each item onto one of the next 14 collection days. It reviews well and demonstrates beautifully. With the pointing device unplugged the flow dies at step 4 of 6: the items are reachable, the days are reachable, and no keyboard route associates one with the other. Because a claim over a multi-step process requires every step to conform, the other five stop counting too: one pointer-only interaction takes down an otherwise clean flow. The repair is not a keyboard shortcut bolted onto the drag; a shortcut is discoverable only by people who already know it exists. It is a second, equal route to the same outcome -- select an item, choose a day from a list, confirm -- offered to everyone rather than hidden behind an accessibility mode. Once it exists the drag becomes an accelerator instead of the only door, which is why the fix survives the next redesign: everybody uses the accessible path, so everybody tests it.

  • Is a keyboard shortcut a sufficient alternative to a pointer-only drag?
    Rarely. A shortcut is discoverable only by people who already know it exists, and it usually reproduces the drag rather than replacing it. The dependable answer is a second, equal route to the same outcome -- select the item, choose the destination from a list, confirm -- offered to everybody, with the drag left as an accelerator. A route everyone uses is a route everyone tests.
  • What is the risk of giving every control in a dense group its own stop in the focus order?
    The screen becomes a corridor: reaching one task means pressing past dozens of controls that are not the task. The convention for a closely related group -- a toolbar, a set of tabs, a grid of days -- is one stop for the group with the arrow keys moving inside it, which keeps the number of stops proportional to tasks rather than to controls.
  • Why does content that appears only on hover cause a problem beyond keyboard access?
    It has to appear on focus as well, and once it appears it must be dismissible without moving the pointer, remain while pointed at, and stay until dismissed or no longer valid. Content that vanishes when the pointer drifts a few pixels is unusable for anybody with a tremor, and for anybody using magnification, where the revealing control and the revealed content may not be on screen together.

A building with a revolving door and no other entrance is not step-free just because most people get in; the alternative route is what makes it usable, and it has to lead to the same place.

saying these in an interview costs you the question

  • Says keyboard support only matters for users who cannot see
  • Counts a control as done once it can be focused
  • Assumes a pointer-only drag is acceptable if rarely used
  • Claims a physical keyboard is needed to benefit
  • Treats hover-revealed content as reachable by keyboard