Ensure Pointer Target Size or Spacing is Sufficient
- Spacing: The target offset is at least 24 CSS pixels from adjacent targets.
- Equivalent: The function can be achieved through a different control on the same page that meets the size requirement.
- Inline: The target is in a sentence or block of text.
- User Agent control: The size is determined by the user agent and not modified by the author.
- Essential: A particular presentation is essential.
Why It Matters
This AA criterion provides a minimum target size requirement, less strict than the AAA version (2.5.5 – 44x44px), but still crucial for usability. It helps users with motor impairments avoid accidentally hitting adjacent targets, especially on touchscreens or with imprecise pointing devices. Even 24x24px is significantly easier to hit than very small targets. The spacing exception allows for smaller targets if they are well-separated.
Fixing the Issue
Ensure interactive elements have a clickable area of at least 24×24 CSS pixels OR ensure there is sufficient space (at least 24px) between adjacent small targets. Use CSS width, height, min-width, min-height, and padding to achieve the target size. Use margin to ensure adequate spacing between targets if they are smaller than 24x24px. Test target sizes and spacing, especially in constrained environments like mobile views.
Good Code Example
Meeting minimum target size or providing sufficient spacing:
-
<style> .aa-target-button { /* Meets 24x24 minimum via padding + font size */ padding: 5px 10px; min-height: 24px; min-width: 24px; font-size: 1rem; border: 1px solid #555; margin: 5px; /* Adds space around */ box-sizing: border-box; } .small-icon-spaced { display: inline-block; width: 18px; /* Smaller than 24px */ height: 18px; background-color: lightblue; /* Placeholder */ /* BUT, sufficient margin provides spacing */ margin: 12px; /* 12px margin on each side = 24px spacing */ cursor: pointer; } </style> <button class="aa-target-button">Action A</button> <span class="small-icon-spaced" role="button" tabindex="0" aria-label="Option 1"></span> <span class="small-icon-spaced" role="button" tabindex="0" aria-label="Option 2"></span> <span class="small-icon-spaced" role="button" tabindex="0" aria-label="Option 3"></span>
-
Bad Code Example
Small targets placed close together:
-
<style> .tiny-link { display: inline-block; width: 16px; /* Fails 24px minimum */ height: 16px; background-color: pink; margin: 2px; /* Only 4px spacing between adjacent links - Fails spacing exception */ border: 1px solid red; } <a href="#1" class="tiny-link" aria-label="Action 1"></a><a href="#2" class="tiny-link" aria-label="Action 2"></a><a href="#3" class="tiny-link" aria-label="Action 3"></a></style>
