Skip to content
easeweb
Search topics

Tap targets smaller than 44 by 44 pixels

The basket's buttons are 32 pixels square: enough for the 24-pixel minimum, but short of 44 by 44, so a shaky hand still misses them.

WCAG 2.2
SC 2.5.5AAA· new in 2.1
Required by
Not required by Section 508 or EN 301 549
Broken min-width: 32px; min-height: 32px
The accessibility problem illustrated: Reach, strength:I keep missing the plus.
01

The problem

People with tremors or using a head pointer miss 32-pixel buttons and have to try again.

02

Try it

Turn on the shaky hand, then raise the quantity to 5 by clicking plus.

With the shaky hand on, each click or tap lands up to 20 pixels from where you pointed, and a mark shows where it landed: a green dot on a button, a red ring beside it. Aim at the middle of plus. On the 32-pixel buttons some taps miss; at 44 pixels the same aim lands every time.

Broken Can you fix this?

Broken32-pixel buttons, 4 pixels apart
Linen napkins Qty 2

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Make every tap target at least 44 by 44 pixels.

Before
Broken32-pixel buttons, 4 pixels apart
<div class="line-actions">  <button type="button" aria-label="Decrease quantity">−</button>  <button type="button" aria-label="Increase quantity">+</button>  <button type="button" aria-label="Remove Linen napkins">×</button></div>
What is wrong3 points
  • Each target is 32 by 32 pixels, 12 short of 44 in each direction.
  • A tap more than 16 pixels from a button's centre, sideways or up and down, misses it.
  • The 4-pixel gap doesn't help: space around a target doesn't count towards 2.5.5.
After

44-pixel buttons

<div class="line-actions">  <button type="button" aria-label="Decrease quantity">−</button>  <button type="button" aria-label="Increase quantity">+</button>  <button type="button" aria-label="Remove Linen napkins">×</button></div>
How it is fixed3 steps
  1. Raise each button's min-width and min-height to 44 pixels. The visible button is the whole hit area, so people can see how much room they have.
  2. Keep flex-shrink: 0, so a narrow screen can't squeeze the buttons back under 44.
  3. Widen the gap to 8 pixels, so the larger buttons don't read as one block.

This fixes the Before and passes 2.5.5, and 2.5.8 with it. The HTML does not change.

04

Design ideas

44-pixel targets can still look light.

Two ways to give the basket line 44-pixel targets without making it look heavy, and two common looks that fall short. Point at each one or Tab to it: the fill that appears is the area that takes the click.

In the design file

  • Draw every button and link outside a sentence at 44 by 44 pixels or more, measured on the area that takes the tap.
  • When an icon is smaller than its button, draw the 44-pixel button as its own shape, even one that shows only on hover.
  • Leave enough gap, and padding above and below the row, that neighbouring 44-pixel areas never overlap.
  • Draw a round button inside a 44-pixel square, not as a 44-pixel circle.

Passes

  • Linen napkinsQty 2
    Bare icons in 44-pixel buttons Only the 20-pixel icons show at rest, as light as a row of small buttons. Each sits in a 44-pixel square with 12-pixel corners that fills on hover and focus, and the squares sit side by side without overlapping.
  • Linen napkins 2
    A stepper bar 44 pixels tall Minus, the quantity and plus share one outlined bar 44 pixels tall, its corners rounded like the buttons, so three targets read as one control. Each button is 44 pixels wide, and remove is a 44-pixel square of its own, 8 pixels away.

Fails

  • Option chips 32 pixels tallWCAG 2.5.5 Gift wrap and the other extras as outlined pills 32 pixels tall, 8 apart, the height Material Design gives its filter chips. The space between them does not count at this level: make each chip 44 tall, or extend its area to 44.
  • Linen napkins Qty 2
    Save for later and Remove as small wordsWCAG 2.5.5 The actions under the item are words in boxes 28 pixels tall, set like a line of text. A row of actions is not a sentence, so the exception for links in text does not apply: give each word a box 44 pixels tall.
05

Verify the fix

4 checks.

Test with: Target measurement, Touch, Mouse, Zoom

0 of 4 checked

Record the OS, browser and assistive-technology versions, the build, the date, and the actual result of each step. Repeat after the shared button styles change.

Limits

This is a starting pattern, not a guarantee for every application. Level AAA is rarely required in full, but a site can meet single AAA criteria such as this one. The guide covers icon buttons in one row; grids, sliders and drag handles need their own checks. A target big enough to hit can still act on the wrong press: buttons that act on press and can't be cancelled covers taking a slip back. Test with the people and devices your users actually have.

This is a recreated teaching example, not a finding about a named client. The code is a starting pattern: test it in your own product. No completed assistive-technology test is claimed here.

EaseWeb service

Fixed it? Keep it from coming back.

I turn guides like this one into rules your coding agents follow and checks your CI runs. Then I retest by hand with a keyboard and screen readers, periodically.

See the service