UI + UX Input And Data Entry standard

Name entry

Ask only for the name the service needs, prefer a full-name field when possible, split only for real downstream requirements, support broad characters and scripts, preserve user-entered spelling and case, avoid unnecessary titles, capture preferred address or transcription separately, allow updates, and review exact spelling before use.

Decision first

Choose this pattern when the problem matches

Use when

  • The product must capture a person's name for display, correspondence, booking, application, payment, account details, identity matching, support, or official records.
  • Users need to know which representation of their name the service needs.
  • The service can preserve and review the exact spelling the user provides.
  • The product can distinguish display name, official name, preferred address, previous name, and verified identity states.

Avoid when

  • The product only needs a username, email address, account number, organization name, reference, or anonymous interaction.
  • The user should choose an existing person record rather than type a new name.
  • The service cannot store or display the characters users need and cannot offer a clear alternate representation path.
  • The flow is asking for a name merely to personalize copy without a genuine user need.
  • The task needs a password, phone number, postal address, bank account, payment card, or other specialized field instead.

Problem it prevents

Names are personal identifiers with cultural, legal, language, script, privacy, and identity implications, so ordinary text fields, split-name assumptions, title lists, and overstrict validation can misidentify people or make a service feel disrespectful.

Pattern anatomy

What a strong implementation has to make clear

User need

The service may need a name for account display, correspondence, booking, official records, identity checks, payments, school or health records, support queues, legal documents, search, sorting, or relationship management.

Pattern promise

Ask only for the name the service needs, prefer a full-name field when possible, split only for real downstream requirements, support broad characters and scripts, preserve user-entered spelling and case, avoid unnecessary titles, capture preferred address or transcription separately, allow updates, and review exact spelling before use.

Required state

Initial full-name state with visible label, purpose hint, autocomplete name, spellcheck false, and adequate width for long names.

Recovery path

The form rejects a real name because it lacks a family name.

Access contract

Use visible labels that state the exact name representation requested.

Quality bar

The difference between expert and weak execution

Strong implementation

Specific, visible, recoverable

  • A profile form asks for Full name, uses autocomplete name and spellcheck false, accepts María-José Carreño Quiñones, and shows the exact value before saving.
  • An identity form asks for Name as shown on your passport and separately asks What should we call you? for correspondence.
  • A user enters 小林康宏, optionally adds Yasuhiro Kobayashi as a Latin transcription for staff, and sees both values reviewed separately.
  • A user who changed their name is asked for Previous name where relevant, not Maiden name, and can update stored details without restarting the service.
Weak implementation

Vague, hidden, hard to recover from

  • A form forces Title, First name, Middle initial, and Last name before it knows whether those parts exist or are needed.
  • A name field rejects accents, apostrophes, hyphens, spaces, native script, or a one-letter name.
  • A user with one name cannot continue because Last name is required and enters a period just to pass validation.
  • A user enters van der Waals and the system changes it to Van Der Waals in correspondence.
UI guidance
  • Render name entry with a visible label that says exactly which name is needed, such as Full name, name on your passport, given names, family name, previous name, or what should we call you.
  • Use a single full-name field when the service can store the name as provided, and keep enough width, Unicode-capable text entry, autocomplete, spellcheck false, field-specific errors, review text, and change actions visible.
UX guidance
  • Use name entry when a product must identify, address, verify, correspond with, or officially record a person by name.
  • Make as few assumptions as possible about name parts, order, gender, marital status, script, casing, length, punctuation, or permanence; ask only for the name information the service will actually use.
Implementation contract

What the implementation must handle

States

  • Initial full-name state with visible label, purpose hint, autocomplete name, spellcheck false, and adequate width for long names.
  • Focused state with normal text editing, paste, undo, selection, browser autofill, and no forced capitalization.
  • Accented or punctuation state preserving hyphens, apostrophes, spaces, particles, and case.
  • Native-script state accepting non-Latin characters with correct display direction and storage.

Interaction

  • Users can type, paste, autofill, edit, select, undo, and correct names through native text behavior.
  • The interface preserves the entered spelling, case, accents, punctuation, spacing, and script unless a visible external constraint requires a separate representation.
  • Submitting an empty or constrained name preserves the typed value and places correction text next to the field or in a linked summary.
  • The product never infers title, gender, marital status, family name, sorting key, or preferred address from the entered name without a designed field or confirmation.

Accessibility

  • Use visible labels that state the exact name representation requested.
  • Use autocomplete tokens that match the field purpose so browser autofill and assistive technology can identify the input.
  • Connect hints, errors, review status, and external-constraint explanations to the relevant field.
  • Do not make required meaning depend on field position within a split-name group.

Review

  • Why does the service need this person's name, and where will it be displayed or used?
  • Does the label ask for common name, full name, official-document name, previous name, or preferred address?
  • Can the field accept long, single-part, one-letter, accented, punctuated, spaced, and native-script names?
  • Does the implementation preserve case and spelling exactly as entered?
Interactive lab

Inspect the states before you copy the pattern

Capture a person's name respectfully

Enter a full name with punctuation or non-ASCII characters, switch between common and official-name needs, add a preferred form of address, handle previous name wording, and compare against split-field assumptions.

Name entry
Interactive demo is ready

Launch the live UI/UX lab when you want to inspect states, keyboard behavior, and common failure modes.

State To Inspect

Initial full-name state with visible label, purpose hint, autocomplete name, spellcheck false, and adequate width for long names.

Keyboard / Access

Tab order follows the full-name field, optional preferred-address or transcription fields, previous-name field, review action, and submit action.

Avoid Generating

Requiring first name and last name when a full-name field would work.

Evidence trail

Source-backed claims behind this guidance

GOV.UK Design System Names pattern

GOV.UK Design System - checked

GOV.UK supports needed-only name collection, full-name labels, split-field choice, long and broad character support, common or official-name wording, autocomplete tokens, spellcheck false, title avoidance, name changes, and specific errors.

W3C Personal names around the world

W3C Internationalization - checked

W3C supports global-name variation, native scripts, single names, multiple family names, different order, transcription, preferred address, and caution around splitting or parsing names.

W3C Internationalization Best Practices for personal names

W3C Internationalization - checked

W3C best practices support preserving casing, allowing punctuation and spaces, accepting single-letter and single-part names, avoiding family-name requirements, and adding transcription fields when needed.

MDN autocomplete name tokens

MDN Web Docs - checked

MDN supports autocomplete name and split-name component tokens only when those parts are deliberately collected.

Full agent/debug reference

Problem Context

  • The service may need a name for account display, correspondence, booking, official records, identity checks, payments, school or health records, support queues, legal documents, search, sorting, or relationship management.
  • Users may have one name, multiple given names, multiple family names, patronymics, particles, prefixes, suffixes, titles, nicknames, native-script names, Latin transcriptions, changed names, or names that do not fit first-name and last-name order.
  • Some flows need the name a person commonly uses, while others need the exact name on a passport, driving licence, bank account, payment card, court document, or government record.
  • Name fields can reveal gender, marital status, family structure, religion, caste, migration history, or gender transition, so unnecessary collection and wording can create harm.
  • Downstream systems often pressure teams to split, sort, capitalize, or ASCII-normalize names even when the user-facing service does not need those assumptions.

Selection Rules

  • Choose name entry when the product must capture a person's name for identification, correspondence, display, official records, booking, payment, verification, support, or relationship handling.
  • Do not ask for a name if the service can work with an account identifier, email address, username, customer number, or anonymous flow instead.
  • Use a single Full name field when the service can store and use the name as provided.
  • Use split fields only when downstream systems genuinely need separate parts, and then label them as Given names and Family name for international audiences rather than relying on first and last order.
  • Make it clear whether the service needs a common name, preferred name, official-document name, billing name, cardholder name, previous name, native-script name, or Latin transcription.
  • Use autocomplete name for a full-name field, and use given-name, additional-name, family-name, honorific-prefix, honorific-suffix, or nickname only when deliberately collecting those parts.
  • Set spellcheck false and avoid automatic casing, ASCII-only filters, title-case transforms, or stripping punctuation unless a hard external constraint is explained.
  • Support long names, one-letter names, single-part names, spaces, hyphens, apostrophes, accents, non-Latin scripts, particles, prefixes, suffixes, numbers, and symbols where the service can store them.
  • Avoid asking for title; if unavoidable, use an optional text input rather than a fixed dropdown list.
  • Ask What should we call you? when the service wants a form of address instead of guessing a given name from the full name.
  • Use Previous name instead of maiden name when asking about earlier names.
  • Allow users to change stored names and review exact spelling before correspondence, official submission, or identity matching.

Required States

  • Initial full-name state with visible label, purpose hint, autocomplete name, spellcheck false, and adequate width for long names.
  • Focused state with normal text editing, paste, undo, selection, browser autofill, and no forced capitalization.
  • Accented or punctuation state preserving hyphens, apostrophes, spaces, particles, and case.
  • Native-script state accepting non-Latin characters with correct display direction and storage.
  • Latin transcription state shown only when the service needs staff recognition, search, or back-office processing.
  • Official-document state with wording that asks for the name as shown on the relevant document.
  • Preferred address state asking what the service should call the user rather than guessing a name part.
  • Previous-name state using neutral wording and making the need clear.
  • Missing required name error state with the typed value preserved after correction.
  • Unsupported character or legacy-system constraint state that explains the external reason and gives a recovery path.
  • Reviewed name state showing the exact spelling, script, preferred address, and change action.
  • Name update state for stored personal details.

Interaction Contract

  • Users can type, paste, autofill, edit, select, undo, and correct names through native text behavior.
  • The interface preserves the entered spelling, case, accents, punctuation, spacing, and script unless a visible external constraint requires a separate representation.
  • Submitting an empty or constrained name preserves the typed value and places correction text next to the field or in a linked summary.
  • The product never infers title, gender, marital status, family name, sorting key, or preferred address from the entered name without a designed field or confirmation.
  • If multiple name representations are needed, each representation has its own label, purpose text, storage field, and review row.
  • Users can change stored names without restarting the whole service when the product stores personal details.
  • The backend treats display name, official name, preferred address, previous name, native-script name, Latin transcription, and verified identity match as separate states.

Implementation Checklist

  • Decide which name representation the service needs and where it will appear before selecting fields.
  • Use a native text input with visible labels, stable ids, autocomplete tokens, spellcheck false, and aria-describedby for hints, errors, and status text.
  • Prefer autocomplete name for full name; use component tokens only for intentional split fields.
  • Store Unicode text and avoid byte-length assumptions; set database, API, export, search, and display paths to preserve long and multi-script names.
  • Validate required presence and documented external constraints without rejecting real names because they are short, single-part, long, accented, hyphenated, punctuated, spaced, or non-Latin.
  • Avoid title dropdowns, forced middle initials, forced family-name requirements, automatic capitalization, ASCII-only sanitization, and algorithmic name splitting.
  • Provide review, change, and update paths for names used in correspondence, official submissions, identity checks, or payment.
  • Test screen readers, browser autofill, mobile keyboards, paste, zoom, right-to-left or native-script names, one-letter names, multiple family names, particles, previous names, and name-change flows.

Common Generated-UI Mistakes

  • Requiring first name and last name when a full-name field would work.
  • Blocking one-part names or one-letter names.
  • Using a title dropdown that forces gender or marital-status disclosure.
  • Stripping accents, apostrophes, hyphens, spaces, particles, or native-script characters.
  • Automatically changing case or capitalization.
  • Asking for maiden name instead of previous name.
  • Guessing what to call someone from the first token of their full name.
  • Treating a name captured for display as proof of legal identity.
  • Making middle names required when the service does not need them.
  • Storing only split parts and being unable to display the exact name the user provided.

Critique Questions

  • Why does the service need this person's name, and where will it be displayed or used?
  • Does the label ask for common name, full name, official-document name, previous name, or preferred address?
  • Can the field accept long, single-part, one-letter, accented, punctuated, spaced, and native-script names?
  • Does the implementation preserve case and spelling exactly as entered?
  • Is any split into name parts required by a real downstream use, or is it a storage habit?
  • Can users update their name and review exact spelling before correspondence or official submission?
Accessibility
  • Use visible labels that state the exact name representation requested.
  • Use autocomplete tokens that match the field purpose so browser autofill and assistive technology can identify the input.
  • Connect hints, errors, review status, and external-constraint explanations to the relevant field.
  • Do not make required meaning depend on field position within a split-name group.
  • Allow screen reader users to hear non-Latin, accented, and punctuated names as entered where platform support allows.
  • Keep review and change controls keyboard reachable.
  • Do not force title or gender disclosure as an accessibility shortcut for addressing the user.
Keyboard Behavior
  • Tab order follows the full-name field, optional preferred-address or transcription fields, previous-name field, review action, and submit action.
  • Typing, paste, selection, deletion, undo, redo, and autofill use native text behavior.
  • Enter submits the surrounding form only when that form contract is clear.
  • Submitting an invalid name moves focus to the error summary or name field without clearing typed content.
  • Optional extra name fields can be skipped without trapping focus.
  • Split-field flows do not auto-advance or force users across name parts.
Variants
  • Full name field
  • Name as shown on official document
  • Given names and family name fields
  • Preferred name
  • What should we call you
  • Previous name
  • Name in native script
  • Latin transcription
  • Name with title only when required
  • Name change flow
  • Name review before submit

Verification

Last verified: