Forms
Labelled fields, validation, and actions that preserve a person’s work.
Use a visible label, optional help, and an inline error as one field relationship. The submit action names the result.
Use Input for one line, Textarea for prose, Select for a short fixed list, and Combobox when searching materially helps. Put related fields in FieldGroup and use FieldSet with FieldLegend for a meaningful group.
Validate at the trust boundary and return field-specific errors. Set aria-invalid, wire aria-describedby, focus the first invalid field after submission, and keep every entered value on failure. Do not globally trim passwords or whitespace-sensitive values.