Dew Design System
Foundations · AccessibilityWCAG 2.2 AA · baseline

A11y is how Dew includes.

Every Dew component meets WCAG 2.2 AA from day one.

PrinciplesPOUR · WCAG 2.2

Four principles for inclusive interfaces.

POUR — perceivable, operable, understandable, robust — is the foundation of WCAG. Every component in Dew is designed and tested against these four lenses.

P

Perceivable

Information and UI must be presentable in ways every user can perceive — text alternatives, captions, and content that adapts.

O

Operable

All functionality is available from a keyboard. Users get enough time, navigation is predictable, no seizures.

U

Understandable

Content is readable. Interfaces behave predictably. Errors are surfaced clearly and recoverable.

R

Robust

Semantic HTML and correct ARIA so screen readers, voice control, and future tools all interpret content reliably.

ContrastColor ratios

Contrast that holds up.

Text needs enough contrast against its background to be legible at any size, in any light. Dew tokens are tuned for AA by default — AAA where it fits.

4.5:1WCAG AA

Minimum for body text (under 18 px)

Sample text
3:1WCAG AA

Large text (18 px+ or bold 14 px+) and UI components

Sample text
7:1WCAG AAA

Enhanced contrast for body text

Sample text
2.8:1Fails

Insufficient — fails AA across the board

Sample text
TargetsMeasurable thresholds

Hit these numbers.

Concrete thresholds that turn the principles into checkable values.

Touch target
44 × 44 px
Minimum tap area on mobile
Focus ring
3:1 contrast
Against adjacent colors
Body text size
14 px+
Below this, contrast jumps to 4.5:1
Line height
1.5×
Of font size, for readability
Reflow at 320 px
No h-scroll
Content adapts without overflow
Zoom support
Up to 200%
Without loss of function
PatternsDo and don't

Make it accessible by default.

Labels

Do

Associate labels with inputs

<label htmlFor="email">Email</label>
<input id="email" type="email" />
Don't

Use placeholder as the only label

<input type="email" placeholder="Email" />

Interactive elements

Do

Use native focusable elements

<button onClick={...}>Save</button>
Don't

Attach handlers to non-semantic tags

<div onClick={...}>Save</div>

Color meaning

Do

Combine color with icon or text

<Check /> Saved · success
Don't

Rely on color alone

<span className="text-green">Saved</span>

Alt text

Do

Describe purpose, not the image

<img alt="Team celebrating launch" />
Don't

Be redundant or empty for meaningful images

<img alt="image" />
ResourcesExternal references

Keep learning.