Accessibility work usually starts with an audit of finished pages. The audit returns a long list of issues — missing labels, low-contrast text, focus that disappears, menus that trap the keyboard — and the team fixes them page by page. Six months later, a new audit finds many of the same issues again.
That pattern has a simple cause. Most accessibility defects are not page problems. They are component problems, copied into every page that uses the component.
Defects multiply through components
A button without a visible focus state is one bug in the component library and three hundred bugs in the product. A form field that uses placeholder text as its label fails in every form. A color token with insufficient contrast fails everywhere it is applied. Fixing these at page level treats symptoms; fixing them in the design system removes the cause.
What an accessible design system includes
- Color tokens validated for contrast in every theme, including hover, disabled and focus states.
- A single focus style that is visible on every surface and never removed without replacement.
- Components built on native semantics — real buttons, real links, real form controls — with ARIA only where HTML falls short.
- Documented keyboard behaviour for every interactive component.
- Motion tokens that respect reduced-motion preferences by default.
- Automated checks in the component test suite, plus manual testing with screen readers.
Design has to lead
Engineers cannot code their way out of a color palette that fails contrast, or a layout that only makes sense visually. Accessibility decisions are made in design files long before they reach code: the order of content, the size of targets, what an error message says and where it appears.
Accessibility is cheapest when it is a constraint on the system, and most expensive when it is an audit of the output.
Where to start
Audit the component library before the pages. Fix tokens first, then the ten most-used components, then document the rules so new components inherit them. Page-level issues that remain after that are usually content and structure problems — a far shorter list.