2.5.6 Concurrent Input Mechanisms
What it requires
Content must not restrict the use of input modalities available on a platform, except where the restriction is essential, required to ensure the security of the content, or needed to respect user settings. In plain terms: if a device supports keyboard, touch, mouse, stylus, and voice at the same time, your page must let people switch freely between them. A user who starts with touch and then reaches for a keyboard — or who pairs a keyboard with a touchscreen tablet — should never be locked out because the page assumed a single input method.
The criterion targets pages that detect one input type and then disable or ignore the others (for example, switching to a “touch-only” mode and dropping keyboard support). It does not require you to add input methods the platform lacks — only to avoid taking away the ones it offers.
- People with motor disabilities who pair multiple input devices — such as a switch, head pointer, or keyboard used alongside a touchscreen — and need to alternate as fatigue or context changes.
- Assistive technology users whose tools emit keyboard or pointer events; locking to one modality can break the AT entirely.
- Anyone on hybrid devices (2-in-1 laptops, tablets with keyboards) who moves between touch and keyboard mid-task.
- Voice-control users who supplement speech with occasional keyboard or pointer input.
How to detect it
| Check | How | Catches |
|---|---|---|
| Mid-task switching | Operate the page with touch, then immediately try the keyboard (Tab, Enter, arrows) without reloading. | Modes that disable keyboard after touch is detected. |
| Keyboard then pointer | Tab to a control, then click or tap it; confirm both still work. | Handlers bound to only one event family. |
| Hybrid device | Test on a 2-in-1 or tablet-plus-keyboard; alternate inputs. | Single-modality assumptions from device sniffing. |
| Code review | Look for input/touch detection that swaps event listeners or hides controls. | Logic that drops a modality after a feature/UA check. |
| Automated tools | Run axe or similar. | Largely cannot detect this — manual testing is required. |
How to fix it
- Use native interactive elements (
<button>,<a>, form controls) so the browser handles all input modalities for you. - Avoid switching the interface to a single-input “mode” based on the first detected input or on user-agent sniffing.
- Prefer pointer events or pair mouse, touch, and keyboard handlers so every modality is supported at once.
- Never remove keyboard support when touch is detected, or vice versa.
- Re-test by alternating inputs mid-session on a hybrid device.
<!-- Native button: keyboard, mouse, touch and voice all work -->
<button type="button" class="play">Play</button>
<!-- Prefer pointer events over touch-only handlers -->
<script>
el.addEventListener('pointerdown', activate);
el.addEventListener('keydown', onKey); // keep keyboard too
</script>
Copy-paste tests
Automated coverage
There is no fully automated axe-core rule for 2.5.6 — tools cannot tell whether your code drops a modality after detecting another. This criterion needs manual review, using the console check and steps below.
Run this in the browser console
// Read-only: surfaces elements that may lock to one input modality.
const suspects = [...document.querySelectorAll('*')].filter(el => {
const a = el.getAttributeNames();
return a.includes('ontouchstart') || a.includes('ontouchend') ||
(a.includes('ontouchmove') && !a.includes('onkeydown'));
});
console.table(suspects.map(el => ({
tag: el.tagName, id: el.id, cls: el.className
})));
suspects.forEach(el => el.style.outline = '2px solid orange');
console.log('Touch-only handler candidates:', suspects.length);
What to check manually: operate the page with touch, then immediately try the keyboard without reloading — no script can confirm a modality still works after another is used, or that device sniffing did not silently swap event listeners.
Related
- WCAG 2.2 criteria index
- Learn catalog
- Keyboard & focus — operability across input modalities.