Field Errors
Visible escaped validation messages with deterministic IDs.
When to use it. Use it when its native HTML meaning matches the caller-owned form requirement.
Field Errors primary example
How it works
-
<.field_errors>Explicit identity takes precedence over FormField values. Protected identity and ARIA relationships cannot be contradicted through global attributes. -
package CSSPackage CSS applies scoped shadcn-style tokens, layout, focus, and state presentation without changing the native contract. -
gallery onlyTheme switching, source copying, search, fixtures, and inspection controls on this page belong to the gallery only; :field_errors does not ship them. -
application boundaryShadcnUI does not add application state, authorization, persistence, transport events, or a JavaScript behavior layer to this component.
Examples use package semantic tokens in explicit light and dark scopes.
Accessibility and browser support
Visible labels and deterministic help and error relationships preserve the native accessible name and description contract.
| Feature | Locked-engine evidence | When missing |
|---|---|---|
| Native baseline | Reviewed in the locked Chromium, Firefox, and WebKit evidence matrix. | The native element, text, values, and document order remain usable without package CSS or JavaScript. |
| Exact fallback | The locked-engine matrix retains the documented native or static outcome. | The native element, text, values, and document order remain usable without package CSS or JavaScript. |
Application ownership and API
The application owns changesets, translation, validation timing, submission, persistence, authorization, pending transitions, focus, and outcomes.
Provenance
Catalogue identity forms.field_errors, adapted from
unscripted/ui commit bd8f403030c8d1f46804da6eda733fde7e908e63
under its MIT notice.
The documentation presentation is adapted locally; ShadcnUI's Phoenix API and native semantic contract remain authoritative.
Render caller-owned validation messages as ordered escaped content with deterministic IDs and no live-region policy.