Skip to main content
Perceivly: Perceivly home

2.1.3 Keyboard (No Exception)

Level AAA · added in WCAG 2.0

Every function must work with a keyboard alone, with no timing required between keystrokes. Unlike 2.1.1, there is no exception for input that depends on the path of movement, such as drawing or a signature.

Who it helps

Many blind people and people with motor disabilities cannot use a mouse or touch screen. They rely on the keyboard or devices that act like one. Without this, path-based tools such as drawing and signing are closed to them.

How to meet it

Examples

Fails:A scrollable region with no focusable content cannot be scrolled with the keyboard
<div class="terms" style="height: 200px; overflow-y: auto;">
  <p>These terms apply to all purchases...</p>
</div>
Fails:A signature pad that only accepts mouse or touch drawing
<p>Sign in the box below</p>
<canvas id="sig" width="400" height="120"></canvas>
Passes:The region can take focus and has a name, so arrow keys scroll it
<div class="terms" role="region" aria-label="Terms of sale" tabindex="0"
     style="height: 200px; overflow-y: auto;">
  <p>These terms apply to all purchases...</p>
</div>
Passes:A typed signature works as a keyboard alternative to drawing
<canvas id="sig" width="400" height="120" aria-hidden="true"></canvas>
<label for="typed-sig">Or type your full name to sign</label>
<input id="typed-sig" name="typed_signature" type="text" autocomplete="name">

Can a scanner detect this?

Partly

axe-core flags scrollable regions that keyboard users cannot reach. It cannot tell whether drawing tools, drag-and-drop or other custom features have a keyboard method. Try every feature with the keyboard yourself.

axe-core rules that test it

Common mistakes

Official W3C explanation of 2.1.3

Check your own page

See which automated WCAG checks your page fails, with the failing elements and how to fix them.

Enter a page address, for example example.com/shop.

Reviewed November 2, 2026