WCAG 2.5.5 Target Size — Testing Guide for Mobile and Web

WCAG 2.5.5 Target Size (Enhanced) requires interactive targets to be at least 44 × 44 CSS pixels. The less-strict 2.5.8 Target Size (Minimum) is 24 × 24 with spacing exceptions. Get this right and the

March 18, 2026 · 3 min read · WCAG Guides

WCAG 2.5.5 Target Size (Enhanced) requires interactive targets to be at least 44 × 44 CSS pixels. The less-strict 2.5.8 Target Size (Minimum) is 24 × 24 with spacing exceptions. Get this right and the app is usable for people with motor impairments, tremor, or large fingers. Get it wrong and every tap becomes a lottery.

What 2.5.5 requires

Every interactive element — button, link, icon, form control — must present a tappable area of at least 44 CSS pixels square. Exceptions:

At AA level, WCAG 2.2 introduced 2.5.8 (Minimum) at 24 × 24 with exceptions. Most regulated jurisdictions use 2.5.8 as the legal floor.

Why it matters

Aging users, users with tremor (Parkinson's, essential tremor), users in a moving vehicle, users with prosthetics — all benefit. And nearly all users benefit marginally from larger targets. The design tradeoff is density vs accessibility; regulation picks accessibility.

Common violations

How to test

Automated

Manual

Use an actual finger. Test on the smallest device you support. Test while walking. Test with nails. Rotate to landscape where thumbs reach differently.

Measurement

Chrome DevTools → computed styles → bounds. React Native, use Flipper or the Inspector. Android, enable "Show layout bounds" in Developer Options for visual inspection.

How to fix

Pad the touch target without enlarging the visual:


.icon-btn {
  width: 24px; height: 24px;  /* visual size */
  padding: 10px;              /* 44 × 44 touch target */
}

Android:


<ImageButton
  android:layout_width="44dp"
  android:layout_height="44dp"
  android:padding="10dp"
  android:src="@drawable/ic_close" />

SwiftUI:


Image(systemName: "xmark")
    .frame(width: 44, height: 44)
    .contentShape(Rectangle())  // makes entire frame tappable

Jetpack Compose:


IconButton(onClick = onClose, modifier = Modifier.size(44.dp)) {
    Icon(Icons.Default.Close, contentDescription = "Close", modifier = Modifier.size(24.dp))
}

Inline link exception

For inline links in running text (not buttons), 24 × 24 is not required. Make them clearly identifiable (underline, contrast) and the exception applies.

How SUSA tests target size

SUSA's elderly persona and accessibility_user persona both check touch target sizes on every discovered screen. Violations are reported with the element label, measured size, and suggested fix. The exploration surfaces dense toolbars, cluster of small icons, and overlapping targets.


susatest-agent test myapp.apk --persona elderly --wcag-level AA

Spacing matters too

If two 24 × 24 targets are adjacent with no spacing, a finger cannot reliably hit either. WCAG 2.5.8 allows 24 × 24 only if there is 8 CSS pixels of spacing on all sides. Verify spacing as well as size.

Test on a real device. Anything you build measuring 44 × 44 in CSS looks small on a 6.1" phone screen. Add padding generously.

Test Your App Autonomously

Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts.

Try SUSA Free