| UI or UX | UI + UX - Personal-name capture field or field group | UI + UX - Single-line freeform data-entry control | UI + UX - Input widget with suggestion behavior | UI + UX - Single-choice dropdown control | UI + UX - Field-level validation feedback | UI + UX - Form recovery summary |
| 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. | Render a persistent label, appropriately sized single-line input, optional hint, visible focus state, and nearby error text that is programmatically associated with the field. | Expose clear visual states for expanded, focused, highlighted, and selected options. | Render a persistent label, hint text, native closed value, finite option list, selected option, and validation state. | Render a labeled field with hint text, field-adjacent error text, invalid styling, preserved value, and corrected state. | Render a top-of-form summary block with heading, linked error list, and matching field-level error messages. |
| UX guidance | Use name entry when a product must identify, address, verify, correspond with, or officially record a person by name. | Let users edit normally, validate after interaction or attempted submit, preserve their typed value after errors, and explain exactly how to fix invalid or missing text. | Preserve typed input and make selection reversible before submission. | Help the person reach a clear task outcome. | Help the person reach a clear task outcome. | Move users from the summary to the exact field, group, or first invalid control that needs correction. |
| Good UI | 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. | A reference-name field has a visible label, hint, medium width, focus ring, and error message beneath the hint when submitted empty. | Persistent label above the input, readable text size, clear popup alignment, and visible highlighted option. | Persistent label, hint text, visible selected value, readable options, and clear required validation state. | Error text appears next to the field with readable spacing, persistent label, hint text, and the invalid value still visible. | Top-of-form summary with a clear heading, linked error list, and matching inline field messages. |
| Bad UI | A form forces Title, First name, Middle initial, and Last name before it knows whether those parts exist or are needed. | The only instruction is placeholder text that disappears when the user starts typing. | Placeholder-only label that disappears after typing. | Placeholder as the only label. | Error message appears far from the field it describes. | Summary and field messages visually disconnected or contradictory. |
| Good UX | A user enters 小林康宏, optionally adds Yasuhiro Kobayashi as a Latin transcription for staff, and sees both values reviewed separately. | A user leaves the required field blank, sees an error only after submit, returns to the same field, and their later typed value clears the error. | Typing filters suggestions while preserving the exact typed value. | Users can open, scan, choose one value, and review the selected value after close. | Validation appears after blur or submit when it helps correction. | After failed submit, focus or reading order makes the summary discoverable before users scan the form. |
| Bad UX | A user enters van der Waals and the system changes it to Van Der Waals in correspondence. | Validation fires on the first focus event and blocks typing before the user has had a chance to answer. | Automatically forcing the first suggestion into the field. | Hiding two obvious critical choices in a dropdown. | Showing errors before users type. | Only showing errors below the fold. |
| Best fit | The product must capture a person's name for display, correspondence, booking, application, payment, account details, identity matching, support, or official records. | The answer is short and user-authored. | The list is long but values are known. | The user chooses one option from a moderate known list. | A single field has a specific correctable problem. | Form submission can produce one or more errors. |
| Avoid when | The product only needs a username, email address, account number, organization name, reference, or anonymous interaction. | The answer is a paragraph, comment, address block, or explanation requiring multiple lines. | The task is open-ended query exploration. | The option set is short and comparison matters. | The main recovery task is finding several errors across a submitted page. | The message is a system failure, permission problem, or outage rather than a validation issue. |
| Required state | Initial full-name state with visible label, purpose hint, autocomplete name, spellcheck false, and adequate width for long names. | Empty untouched state with persistent label and optional hint. | Empty input state. | Closed state with empty option or current selected value. | Invalid field with preserved user value and adjacent correction text. | Failed-submit state with summary visible near the form heading. |
| Accessibility burden | Use visible labels that state the exact name representation requested. | Associate every text input with a visible label or equivalent accessible name that matches the visible question. | Expose combobox expanded state, active descendant, and option labels. | Prefer native semantics or implement equivalent name, role, state, and keyboard behavior. | Expose invalid state on the input and connect error text to the field description where possible. | Use a heading and alert behavior that makes the summary discoverable. |
| Common misuse | Requiring first name and last name when a full-name field would work. | Using placeholder text as the only label or instruction. | Using autocomplete where users expect broad search results. | Using select to hide two or three obvious choices that should be compared. | Showing field errors before users have interacted with the control. | Replacing field-level messages with only a top-level summary. |