Showing input error
The validation timing model for a single field, so the user is corrected but never interrupted.
Forms & Interaction Flows · 11 checks · 37 resources
Before you ship
11- 01Keep the input in default state — check for errors only after the information has been entered
- 02Allow user to enter information — let the user type without interruption; do not assess as changes are made
- 03Signal error after loss of focus — assess the field once the user has clicked or tabbed to another element
- 04Return to default state upon reattempt — once the user focuses the field again, the error message disappears
- 05Tie the message to the field programmatically — aria-describedby and aria-invalid, so it is identified for everyone, not only sighted users (WCAG 3.3.1 Error Identification)
- 06Say how to fix it, not only what is wrong — "use at least 8 characters" beats "invalid password" (WCAG 3.3.3 Error Suggestion)
- 07Never signal by colour alone — pair colour with text and an icon
- 08Move focus to the first error on submit, and summarise the errors above long forms so the user is not hunting
- 09Announce errors that arrive asynchronously in a live region (WCAG 4.1.3 Status Messages)
- 10Preserve what the user typed — never clear a field because it failed validation
- 11Do not re-ask for information already given in the same flow (WCAG 3.3.7 Redundant Entry)
Resources that help you build this
37- ARIA Authoring Practices Guide · W3C's 30 canonical widget patterns with keyboard maps and working HTML examples
- Ark UI · 49 headless components with one API across React, Vue, Solid and Svelte
- Chakra UI · 114 accessible React components with a token-driven styling system
- Coss UI · Cal.com's design system: 60 Base UI primitives shipped as a shadcn registry
- Headless UI · 16 unstyled, fully accessible React and Vue primitives from Tailwind Labs
- HeroUI (formerly NextUI) · 71 React components on React Aria + Tailwind v4, with an MCP server
- Impeccable · Design vocabulary and anti-slop detector for AI coding agents
- Intent UI · 80+ React Aria components with real ARIA semantics, MIT and copy-paste
- Mantine · 150+ styled React components, 70+ hooks, CSS modules, no runtime CSS-in-JS
- Material Design 3 · Google's open design system: 39 components, tokens, and Compose/Web code
- MUI · React component suite: Material UI, MUI X data grid, charts and date pickers
- Radix UI · Unstyled accessible React primitives, plus Themes, Colors and Icons
- React Aria · Adobe's unstyled React primitives with ARIA, keyboard, i18n and touch behavior built in
- shadcn/ui · 64 copy-in React components on Radix + Tailwind, installed by CLI
- shadcn/ui (GitHub) · Source monorepo for shadcn/ui: components, CLI, registry schema, skills
- Untitled UI · Figma UI kit plus React Aria + Tailwind v4 component library with an MCP server
- UX Patterns for Devs · 92 UX patterns with accessibility rules, an MCP server and llms.txt
- Ant Design · 73-component React library and design language for enterprise back-office apps
- Base UI · 37 unstyled React components from the Radix, Floating UI and MUI teams
- Carbon Design System · IBM's open-source design system: 44 documented components across five frameworks
- coss ui · Cal.com's Base UI + Tailwind v4 registry: 56 primitives and 500 particle variants
- Fluent 2 · Microsoft's design system: 47 web components plus Windows, iOS and Android kits
- Fluid Functionalism · shadcn registry of 23 components where motion carries state, not decoration
- gluestack-ui · CLI-installed React Native component library built on NativeWind and Tailwind v4
- interior.dev · 54 MIT micro-interaction components for React, installable as a shadcn registry
- Opensource UI · 154 free MIT React and Next.js components across 26 categories, copy-pasted from pages that serve the full TypeScript source in the HTML
- Osmo · Paid vault of 231 GSAP/Webflow interaction recipes plus a 100-button pack
- Shadcn Form Builder · Drag fields into a form, export shadcn + Zod code for four form libraries
- Shark UI · 86 shadcn-style components built on Ark UI, installed through the shadcn CLI
- Shopify Polaris · Shopify's admin design system, now shipped as framework-agnostic web components
- Transitions.dev · 35 essential web-app transitions, packaged as an agent skill
- Cuelume · 17 synthesized UI sounds via Web Audio, zero runtime deps
- Park UI · 59 styled Ark UI components delivered by CLI, themed with Panda CSS
- Sileo · React toast with gooey SVG morphing and spring physics, one-line API
- Tark UI · One-page showcase of 41 Ark UI components with 333 Tailwind-styled examples
- WDS Shadcn Registry · Five shadcn components for async actions, loading states and hard form inputs
- Pando (Pluralsight Design System) · Pluralsight's design system documented in zeroheight; public code frozen at v0.7.1