Tap Target Size Checker (WCAG 2.2, Apple, Material)
Enter the width, height and spacing of a button or link: the checker shows whether it meets WCAG 2.2 (24 × 24 px), Apple (44 pt) and Material (48 dp), draws it at real size and writes the CSS to enlarge its tap area.
Your tap target
- Pass WCAG 2.2 — 2.5.8 Target Size (Minimum), level AA (24 × 24 px, or enough spacing)
At least 24 × 24 px. - Fail WCAG 2.2 — 2.5.5 Target Size (Enhanced), level AAA (44 × 44 px)
Needs to be 12 px wider and 12 px taller. - Fail Apple Human Interface Guidelines (44 × 44 pt)
Needs to be 12 px wider and 12 px taller. - Fail Material Design (Android) (48 × 48 dp, 8 dp apart)
Needs to be 16 px wider and 16 px taller.
Preview at real size
- Your target (and its neighbour)
- 24 px circle (WCAG 2.5.8)
- 44 px (Apple, WCAG AAA)
- 48 px (Material)
- Fingertip, about 9 mm
At 100% zoom the preview uses CSS pixels, the same unit as your stylesheet: on a phone it is the real size.
CSS to enlarge the tap area
Keeps the element the same size on screen; only the area that reacts to a tap grows.
Option 1: padding with a negative margin
/* Padding grows the hit area; the negative margin keeps the layout where it was. */
.icon-button {
padding: 6px 6px;
margin: -6px -6px;
background-clip: content-box; /* keep a background the original size */
}
Option 2: an invisible ::after layer
/* An invisible ::after layer catches taps around the element. */
.icon-button {
position: relative;
}
.icon-button::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
width: max(100%, 44px);
height: max(100%, 44px);
transform: translate(-50%, -50%);
}
What the numbers mean
All sizes here are CSS pixels — the unit in your stylesheet, which is also what iOS calls points and Android calls density-independent pixels (dp). On a phone one CSS pixel is about 0.15–0.19 mm, so 48 px is roughly 8–9 mm: the width of the pad of a fingertip. The guidelines differ in how much room they ask for:
- WCAG 2.2, 2.5.8 Target Size (Minimum), level AA — at least 24 × 24 px. A smaller target still passes if a 24 px circle centred on it does not overlap another target or that target's circle. Inline links in a sentence, controls the browser draws itself and targets with a bigger equivalent elsewhere on the page are exempt.
- WCAG 2.2, 2.5.5 Target Size (Enhanced), level AAA — 44 × 44 px.
- Apple Human Interface Guidelines — 44 × 44 pt for anything people tap.
- Android and Material Design — 48 × 48 dp, with about 8 dp between targets.
For the spacing rule, the checker assumes the neighbouring target is the same size and enters the gap between their edges: two 18 px icons pass 2.5.8 when they are at least 6 px apart, because their centres are then 24 px apart.
Making a target bigger without changing the design
You rarely need to make an icon look bigger. Grow its hit area instead. Padding with an equal negative margin enlarges the box that receives taps while the layout stays where it was. An absolutely positioned ::after layer does the same without touching the box model, which is handy for icons inside flex rows. Either way, make sure the enlarged areas of neighbouring targets do not overlap: where they do, the element that comes later in the page wins the tap. For text links in menus and footers, use display: block or inline-block with vertical padding so each link gets its own 44–48 px row.
Mobile-specific notes
Thumbs reach the middle of the screen most easily; the top corners and the very bottom edge are hardest, and on iPhones the bottom edge is shared with the home indicator and Safari's toolbar. Give targets near screen edges extra room. Avoid placing a destructive action (delete, log out) right next to a frequent one. Close buttons on pop-ups and cookie banners are the most common failures — they are often 16–20 px icons in a corner. The tap targets guide walks through fixes for menus, icon buttons and form controls.
Frequently asked questions
What is the minimum tap target size in WCAG 2.2?
Success criterion 2.5.8 (level AA) asks for at least 24 by 24 CSS pixels, or enough space around a smaller target that a 24 px circle centred on it does not touch another target. Level AAA (2.5.5) asks for 44 by 44 px.
Should I use 44 px or 48 px?
Both are comfortable. Apple recommends 44 by 44 points and Google's Material Design 48 by 48 dp. If you want one number for every platform, 48 px meets all of them, including WCAG AAA.
Do links inside a paragraph have to be 24 px tall?
No. WCAG 2.5.8 makes an exception for targets inside a sentence or block of text. Stand-alone links — menus, footers, lists of links, pagination — are not exempt.
How big is a CSS pixel on a phone?
Roughly 0.15 to 0.19 mm, depending on the phone: a 24 px target is about 4 mm across and a 48 px target about 8 to 9 mm, close to the size of a fingertip pad.
More free tools: color contrast checker · mobile font size calculator · css media query generator · device mockup generator · all tools