Last verified April 2026 · 7 min read
Mobile signup: the fat-finger tax and how to pay less of it
5-15pp
Mobile conversion below desktop
Segment, Baymard mobile research
40-60%
Signup starts on mobile for B2C
Industry aggregate
30-40%
Signup starts on mobile for B2B
Industry aggregate
Mobile signup conversion is structurally lower than desktop, but the gap is mostly fixable through technical improvements rather than form-length changes. Most mobile form friction is caused by missing autocomplete attributes, wrong keyboard types, oversized fields that miss 44pt touch targets, and captcha UX that was designed for desktop.
The fat-finger tax
Apple's Human Interface Guidelines specify 44x44pt as the minimum touch target size. Many signup forms use inputs with 38-40pt height on mobile, which increases mis-tap rate measurably. On an email field, a mis-tap selects the wrong character, and the user may not notice until submit.
Fix: set minimum input height to 48px on mobile. Set font-size to at least 16px on all inputs to prevent iOS Safari from zooming in on focus (which breaks the form UX). Use generous padding inside inputs.
Keyboard types and autocomplete attributes
This is the single most-neglected technical fix in signup UX. Missing autocomplete attributes mean password managers cannot autofill. Wrong inputmode means users see the wrong keyboard for the data being entered.
| FIELD | inputmode | autocomplete | NOTES |
|---|---|---|---|
| Triggers @ symbol on iOS keyboard | |||
| New password | text | new-password | Triggers password manager offer |
| Current password | text | current-password | Triggers password manager lookup |
| First name | text | given-name | Enables native autofill |
| Last name | text | family-name | Enables native autofill |
| Phone | tel | tel | Triggers numeric keypad |
| Postcode (UK) | text | postal-code | Alphanumeric - do not use inputmode=numeric |
| Zip code (US) | numeric | postal-code | Numeric keypad for US zip |
Apple Pay and Google Pay express signup
For ecommerce or products with a payment step at signup, Apple Pay and Google Pay express patterns can replace the entire form. The user taps Pay, authenticates with Face ID or Touch ID, and their email, shipping address, and payment details are all provided in one gesture. Shopify has pioneered this at scale.
For SaaS products without a payment step at signup, this pattern does not apply directly. But the principle holds: reduce the mobile signup form to the minimum and use device capabilities (Face ID for passkeys, Apple Pay for email provision) wherever possible.
Captcha on mobile
reCAPTCHA v2 checkbox is harder on mobile than desktop - the touch target is small, the checkbox state is harder to confirm, and reCAPTCHA sometimes triggers puzzle challenges on mobile IPs it considers risky. The conversion cost on mobile is higher than the desktop 2-5% figure.
Cloudflare Turnstile and reCAPTCHA v3 (invisible) are the right choices for mobile-heavy products. See captcha friction cost comparison.
iOS Safari specifics
iOS Safari zooms in on any input with font-size below 16px. This breaks the form layout for users who have not disabled zoom, and the resulting zoom state can confuse scroll position. Set font-size: 16px on all form inputs.
The iOS keyboard accessory row (the row above the keyboard with autocomplete suggestions) is an asset, not an obstacle. Do not suppress it with autocorrect="off" on email and password fields - it contains the email suggestion from the user's Contacts, which speeds up entry.
Frequently asked questions
Why is mobile signup conversion lower than desktop?+
5-15pp lower per Segment and Baymard research. Main causes: fat-finger errors on small targets, wrong keyboard types, missing autocomplete attributes, and captcha friction that is harder on mobile. All are fixable technical issues.
What autocomplete attributes should signup forms use?+
email field: autocomplete='email' + inputmode='email'. Password: autocomplete='new-password'. First name: autocomplete='given-name'. Last name: autocomplete='family-name'. Phone: autocomplete='tel' + inputmode='tel'. Missing these is the most common cause of mobile autofill failure.
RELATED IN THIS PORTFOLIO