2.5.8 Target Size (Minimum)
The size of the target for pointer inputs is at least 24 by 24 CSS pixels, except where there is an equivalent target elsewhere that meets the size, the target is inline within text, sufficient spacing surrounds the target, or the presentation is essential.
Last reviewed: September 9, 2026
Understanding 2.5.8
This AA-level criterion, new in WCAG 2.2, sets a more moderate floor than the AAA Target Size (Enhanced) requirement, aiming to reduce accidental mis-taps for users with tremors or limited dexterity while remaining achievable in dense interfaces where 44px targets aren't practical. It reflects a deliberate compromise: rather than forcing every control to be large, it also permits small targets if they are spaced far enough apart that adjacent targets don't compete for an inaccurate tap.
How to Meet It
Code Examples
/* 16x16px icon buttons packed edge-to-edge with no spacing or size compensation */
.toolbar button {
width: 16px;
height: 16px;
margin: 0;
}/* Meets the 24x24 minimum directly */
.toolbar button {
min-width: 24px;
min-height: 24px;
}
/* Or, if kept smaller, spaced so a 24px circle around each target doesn't overlap its neighbor */
.toolbar button.small {
width: 16px;
height: 16px;
margin: 4px;
}Frequently Asked Questions
How does the spacing exception's "24px circle" rule actually work?
Imagine a 24-CSS-pixel-diameter circle centered on each undersized target's bounding box. The exception is met if that circle doesn't intersect the circle of any other target. In practice this usually means keeping at least 24px of center-to-center distance between small, closely packed controls.
How does 2.5.8 relate to 2.5.5?
2.5.8 is the AA-level minimum (24x24px, with a spacing exception) added in WCAG 2.2. 2.5.5 is the older AAA-level enhanced requirement (44x44px, no spacing exception). They're independent success criteria; a site targeting AA conformance only needs to satisfy 2.5.8.
Related Success Criteria
Quick Facts
- Criterion2.5.8
- LevelAA
- IntroducedWCAG 2.2
Automate Compliance
AccessiSight automatically scans and identifies 2.5.8 issues in your codebase.
Try Scanner Free