| UI or UX | UI + UX - Multi-line freeform writing field | UI + UX - Single-line freeform data-entry control | UI + UX - Field-level validation feedback | UI + UX - Form recovery summary |
| UI guidance | Render a persistent label, enough visible rows for the expected answer, optional hint, readable multiline text, visible focus state, and nearby error or count text associated with the textarea. | 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. | 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 textarea when users need to write or paste sentences, paragraphs, explanations, notes, or comments that may wrap across lines. | Use text input for short freeform answers that users can type or paste and that cannot be accurately represented as a fixed option choice. | Help users correct a specific field without losing or re-entering the value they already typed. | Help users recover from one or more submitted-form errors without scanning the entire page. |
| Good UI | A more-detail field has a visible question, sensitive-data hint, five visible rows, wrapping text, remaining-character count, and an error directly above the textarea when needed. | A reference-name field has a visible label, hint, medium width, focus ring, and error message beneath the hint when submitted empty. | 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 paragraph question is squeezed into a single-line input that hides most of the answer. | The only instruction is placeholder text that disappears when the user starts typing. | Only a red border with no message. | Red banner saying fix errors with no links. |
| Good UX | A user writes two paragraphs, sees remaining characters update, submits, and the exact line breaks and wording are preserved. | A user types or pastes a short reference, submits it, and the interface confirms the stored value without changing their wording. | 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 writes a long explanation, hits submit, and the product clears the entire draft after a length error. | Validation fires on the first focus event and blocks typing before the user has had a chance to answer. | Showing errors before users type. | Only showing errors below the fold. |
| Best fit | Users need to write sentences, paragraphs, comments, explanations, notes, or descriptions. | The answer is short and user-authored. | A single field has a specific correctable problem. | Form submission can produce one or more errors. |
| Avoid when | The answer is a short one-line value. | The answer is a paragraph, comment, address block, or explanation requiring multiple lines. | The main recovery task is finding several errors across a submitted page. | A single local field issue can be corrected before submit without page-level orientation. |
| Required state | Empty untouched state with visible label and optional hint. | Empty untouched state with persistent label and optional hint. | Neutral field with label, hint, and no error. | Neutral form before submit with no summary. |
| Accessibility burden | Associate the textarea with a visible label that states the writing prompt. | Associate every text input with a visible label or equivalent accessible name that matches the visible question. | 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 | Using a single-line input for paragraph answers. | Using placeholder text as the only label or instruction. | Showing field errors before users have interacted with the control. | Showing a red banner or toast with no links to the invalid answers. |