Increase tap target size and spacing for mobile usability
Small tap targets force customers to zoom in and tap carefully, which increases error rates. Appropriately sized touch targets, at a minimum of 48 × 48 px, make a storefront easier to use on a touchscreen and help you meet accessibility requirements.
Customers interact with touchscreens using fingers, which are less precise than mouse cursors. When tap targets are too small or too close together, customers make errors and take longer to complete tasks.
Small tap targets create specific problems:
- Mis-taps: customers accidentally tap the wrong elements, and then have to undo the mistake and try again.
- Extra interactions: every correction is another tap that the page has to handle, so a mis-tap-prone layout does more work than it needs to.
- Zoom requirements: customers have to zoom in to tap accurately, which interrupts the task.
- Accessibility barriers: customers with motor impairments struggle with small targets.
- Abandonment: frustration leads to task abandonment and site exits.
A fingertip is much less precise than a cursor. Ten millimeters is about 38 CSS px at the reference resolution of 96 px per inch, and the major platform and accessibility guidelines all round up from a figure in that range.
There are three commonly cited target sizes, and they aren't interchangeable:
- WCAG 2.2 SC 2.5.8 Target Size (Minimum): 24 × 24 CSS px, at Level AA. This is the criterion that most conformance targets require. It has exceptions for spacing, inline targets, targets whose size is essential, and targets with an equivalent alternative elsewhere on the page.
- WCAG 2.1 SC 2.5.5 Target Size: 44 × 44 CSS px, at Level AAA. Apple's Human Interface Guidelines use the same 44 × 44 pt figure.
- Material Design: 48 × 48 dp, which is a platform guideline rather than a conformance requirement.
The 48 × 48 px recommendation on this page satisfies all three.
Anchor to Set minimum tap target sizesSet minimum tap target sizes
Use a minimum of 48 × 48 px for interactive elements:
Anchor to Add adequate spacing between targetsAdd adequate spacing between targets
Use a minimum of 8 px spacing between interactive elements:
Anchor to Increase clickable area with paddingIncrease clickable area with padding
Expand tap area beyond visible element:
Anchor to Make entire card or row tappableMake entire card or row tappable
Expand clickable area to container:
Stretched link pattern:
Mobile-friendly navigation:
Anchor to Product variant selectorsProduct variant selectors
Large, tappable variant options:
Anchor to ExamplesExamples
Anchor to Product quantity selector with large tap targetsProduct quantity selector with large tap targets
Anchor to TestingTesting
-
Touch target testing: use Chrome DevTools Device Mode. Enable Show rulers to measure tap targets, verify that all interactive elements are at least 48 × 48 px, and check spacing between targets (at least 8 px).
-
Real device testing: test on actual mobile devices. Try tapping all interactive elements, verify that no mis-taps occur, and check that tapping feels comfortable.
-
Accessibility testing: confirm that every target meets WCAG 2.2 SC 2.5.8 (24 × 24 CSS px, Level AA), or one of its exceptions. If you're targeting Level AAA, then check SC 2.5.5 (44 × 44 CSS px) as well. Verify that keyboard navigation reaches every target and that each one has a visible focus indicator.
-
Automated testing: run the Lighthouse accessibility category and check the Touch targets do not have sufficient size or spacing (
target-size) audit. Lighthouse 12.0.0 replaced the older SEOtap-targetsaudit with this accessibility audit, so an older report shows a different audit name.
Anchor to ReferencesReferences
- Material Design: touch targets
- Apple Human Interface Guidelines: touch targets
- WCAG 2.2: Target Size (Minimum), Level AA
- WCAG 2.1: Target Size, Level AAA
- Nielsen Norman Group: touch target sizes