Understanding Touch Targets
Touch targets are interactive UI elements that users tap, such as buttons, links, and form controls. Proper sizing ensures usability and accessibility for all users, including those with motor impairments or using devices in challenging conditions.
Why Touch Target Size Matters
- Accessibility: Users with motor impairments need larger targets
- Accuracy: Fingers are less precise than mouse cursors
- Context: Users may be moving, distracted, or single-handed
- Error Prevention: Adequate spacing prevents accidental taps
- User Experience: Frustration from missed taps hurts engagement
Platform Guidelines
Apple Human Interface Guidelines
Apple recommends a minimum touch target size of 44×44 points (not pixels):
- Minimum Size: 44×44 points
- Recommended: 48×48 points for frequently used elements
- Spacing: 8 points minimum between targets
- Physical Size: ~7-9mm in actual measurement
44pt × @2x = 88px on Retina displays
44pt × @3x = 132px on Retina HD displays
Material Design Guidelines
Google Material Design specifies 48×48 dp as the minimum touch target:
- Minimum Size: 48×48 dp
- Recommended: 48-56 dp for primary actions
- Spacing: 8 dp minimum between targets
- Dense UI: 40×40 dp minimum for space-constrained layouts
48dp × 2 = 96px on xhdpi screens (@2x)
48dp × 3 = 144px on xxhdpi screens (@3x)
WCAG 2.1 Guidelines
Web Content Accessibility Guidelines Level AA requires:
- Minimum Size: 44×44 CSS pixels (Success Criterion 2.5.5)
- Exceptions: Inline text links, user agent controls, essential sizing
- Spacing: Adequate space to prevent accidental activation
Physical Size Considerations
The physical size of touch targets matters more than pixel dimensions. Research shows:
- Minimum: 7mm × 7mm (about the width of an adult fingertip)
- Recommended: 9mm × 9mm for comfortable tapping
- Ideal: 10-12mm for primary actions
- Spacing: 2-3mm between targets to prevent errors
Converting Between Units
Pixels to DP/PT
DP = Pixels ÷ Density Ratio
Example: 96px ÷ 2.0 = 48dp
DP to Physical Size
Inches = DP ÷ 160
Millimeters = (DP ÷ 160) × 25.4
Example: 48dp = 7.62mm
Best Practices
Sizing Guidelines
- Use 48dp/pt minimum: Meets both iOS and Android guidelines
- Primary actions larger: 52-56dp/pt for main buttons
- Consistent sizing: Similar actions should be similar sizes
- Consider context: Larger targets for one-handed use
- Test on devices: Verify actual physical size
Spacing Guidelines
- Minimum spacing: 8dp/pt between touch targets
- Recommended: 12-16dp/pt for comfortable spacing
- Dense layouts: At least 4-8dp/pt spacing
- Visual grouping: Use spacing to show relationships
Special Cases
- Text links: Increase line height and padding
- Icon buttons: Add invisible padding to meet minimum
- Toolbars: Balance density with usability
- Small screens: Prioritize most important actions
Common Mistakes
- Relying on visual size instead of actual touch area
- Placing interactive elements too close together
- Making destructive actions same size as safe actions
- Using pixel values instead of dp/pt
- Not testing with actual fingers on real devices
- Ignoring different hand sizes and abilities
- Assuming desktop interaction patterns work on mobile
Testing Touch Targets
- Real devices: Test on actual phones and tablets
- Different users: Test with people of varying abilities
- Various contexts: Test while walking, single-handed, etc.
- Accessibility tools: Use screen readers and switch controls
- Analytics: Monitor tap accuracy and error rates
Implementation Tips
iOS (SwiftUI)
Button("Tap Me") {
// action
}
.frame(minWidth: 44, minHeight: 44)
Android (Kotlin)
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="48dp"
android:minHeight="48dp" />
Web (CSS)
.button {
min-width: 44px;
min-height: 44px;
/* Or use rem for scalability */
min-width: 2.75rem;
min-height: 2.75rem;
}