---
title: "Touch target is smaller than 24×24 px (a11y/target-size)"
description: "a11y/target-size: Small targets are hard to hit for people with motor impairments and for everyone on a phone (WCAG 2.5.8 requires 24×24 CSS px; 44px is the…"
canonical: https://void-design.vercel.app/rules/a11y/target-size
lastModified: 2026-09-16
---

# Touch target is smaller than 24×24 px

`a11y/target-size` · severity **warn** · category Accessibility · detected by `void a11y` and `void audit`

## Why it matters

Small targets are hard to hit for people with motor impairments and for everyone on a phone (WCAG 2.5.8 requires 24×24 CSS px; 44px is the comfortable size).

## How to fix it

Give icon buttons and links at least 24px (ideally 44px) of hit area with padding, or extend the hit area with a pseudo-element.

## Example

```
.icon-btn { min-width: 44px; min-height: 44px; display: inline-grid; place-items: center; }
```

## References

- https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum

## More accessibility rules

`void a11y` reports 48 rules in this category. WCAG 2.2 AA through axe-core, plus checks axe can't do alone: visible keyboard focus, 24/44px target size on mobile, 320px reflow and disabled zoom.

- `link-in-text-block` Links in text are distinguished only by color — [a11y/link-in-text-block](https://void-design.vercel.app/rules/a11y/link-in-text-block)
- `autocomplete-valid` Invalid autocomplete value — [a11y/autocomplete-valid](https://void-design.vercel.app/rules/a11y/autocomplete-valid)
- `meta-viewport` Zooming is disabled — [a11y/meta-viewport](https://void-design.vercel.app/rules/a11y/meta-viewport)
- `bypass` No way to skip repeated content — [a11y/bypass](https://void-design.vercel.app/rules/a11y/bypass)
- `video-caption` Video has no captions — [a11y/video-caption](https://void-design.vercel.app/rules/a11y/video-caption)
- `axe-other` Other axe-core accessibility violation — [a11y/axe-other](https://void-design.vercel.app/rules/a11y/axe-other)
- `focus-not-visible` Keyboard focus is not visible — [a11y/focus-not-visible](https://void-design.vercel.app/rules/a11y/focus-not-visible)
- `reflow-overflow` Content overflows horizontally at 320px — [a11y/reflow-overflow](https://void-design.vercel.app/rules/a11y/reflow-overflow)

Detected by `void a11y` and `void audit`. Explain it in a terminal: `void rules a11y/target-size`
