--- title: "Mobile-friendly form inputs" category: accessibility status: recommended url: https://webspecification.com/spec/accessibility/mobile-form-inputs/ updated: "2026-06-08T00:00:00.000Z" sources: - title: "HTML Living Standard — The inputmode attribute" url: "https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute" publisher: "WHATWG" - title: "HTML Living Standard — The enterkeyhint attribute" url: "https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-enterkeyhint-attribute" publisher: "WHATWG" - title: "MDN — : types" url: "https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#input_types" publisher: "MDN" - title: "MDN — text-size-adjust" url: "https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-size-adjust" publisher: "MDN" source_repo: undefined licence: CC-BY-4.0 --- # Mobile-friendly form inputs > On a phone, the right input type, inputmode, and enterkeyhint summon the correct on-screen keyboard and a useful Enter key. Keep input text at 16px or larger so iOS Safari doesn't zoom on focus. ## What it is On a touch device, every text field summons an on-screen keyboard. Four attributes decide which keyboard appears and how forgiving it is — and one CSS rule decides whether focusing the field yanks the whole page into a zoom. ```html ``` - **`type`** sets semantics, validation, and the default keyboard (`email`, `tel`, `url`, `number`, `search`, `date`…). - **`inputmode`** tunes the keyboard layout without changing validation — e.g. `numeric` for a one-time code where `type="number"` would wrongly add a spinner and reject leading zeros. - **`enterkeyhint`** labels the Enter key: `search`, `go`, `next`, `send`, `done`. - **`autocapitalize` / `autocorrect` / `spellcheck`** stop the keyboard "fixing" emails, usernames, codes, and search queries. ## Why it matters The wrong keyboard turns a one-tap entry into a hunt. A phone number on a full QWERTY keyboard makes the user switch to the numeric layer; a `type="email"` field puts `@` and `.` on the primary keyboard automatically. An Enter key that says **Go** or **Search** tells the user the form will submit, instead of leaving them guessing whether Return inserts a newline. These attributes also help beyond mobile. Correct `type` and `autocomplete` let every platform's password manager and autofill recognise the field, which reduces typos and abandoned forms — a measurable benefit for users with motor or cognitive disabilities, and the reason [form labels](/spec/accessibility/form-labels/) and `autocomplete` tokens matter for WCAG 1.3.5. **The 16px rule:** iOS Safari automatically zooms in when the user focuses an ``, `