Category
Feedback
Component Registry
Component Record
A standardized validation message component for form fields, schema errors, and async validation feedback.
Category
Feedback
Platform
Cross Platform
Owner
Experience Quality
Decisions
1
Interface
Props define how consuming screens configure component behavior, display, and interaction.
| Prop | Type | Required | Description |
|---|---|---|---|
| message | string | Yes | Human-readable validation message. |
| fieldId | string | Yes | Identifier used to associate the message with the related form field. |
State
State records clarify what the component owns internally versus what should be controlled by parent features.
No internal state documented.
This component is currently modeled as presentational or externally controlled.
Contract
API documentation keeps component behavior aligned with backend expectations and failure states.
Not applicable
Not applicable
Not documented
Not documented
No explicit failure states documented.
This component is presentational. Validation source may come from Zod, server responses, or async field validation.
Decision Log
This timeline captures why decisions were made, who made them, and what level of impact they carry.
Validation messages must be connected to their fields using accessible descriptions.
Rationale: Screen-reader users need field-level error context at the point of interaction, not only a visual message below the field.
Comparison Table
Compare each option across the MVP criteria used to justify the final component decision.
| Option | PerformanceRuntime cost, rendering efficiency, and interaction speed. | AccessibilitySemantic support, keyboard behavior, and assistive tech fit. | Bundle SizeImpact on shipped JavaScript and dependency weight. | Developer ExperienceEase of maintenance, testing, reuse, and implementation. |
|---|---|---|---|---|
Use aria-describedbySelectedConnect validation messages to invalid fields with accessible descriptions.
| 5/ 5 | 5/ 5 | 5/ 5 | 4/ 5 |
Visual-only error textRender visible error text below fields without programmatic association.
| 5/ 5 | 1/ 5 | 5/ 5 | 3/ 5 |
Choice made: Associate errors with fields
Logged by Noah Williams on