WCAG Design Examples
Visual do/don't examples for WCAG 2.2 AA criteria — use these when explaining issues to clients or reviewing designs.
21 examples
Color & Contrast
Use of Color
Color + icon + text label for each status
Color-only status indicators — colorblind users can't differentiate
Contrast (Minimum)
This text is readable
#374151 on #FFFFFF = 10.9:1 ✓
Dark gray text on white exceeds 4.5:1 ratio
This text is hard to read
#9CA3AF on #FFFFFF = 2.7:1 ✕
Light gray text fails minimum contrast requirement
Non-text Contrast
Input border has 5:1 contrast against white background
Faint border only has 1.3:1 contrast — barely visible
Images & Text
Non-text Content
alt="Bar chart showing 40% revenue growth in Q3"
Alt text describes the content and meaning of the chart
alt="chart.png"
Filename as alt text provides no meaningful information
Images of Text
Welcome to Our Service
<h2> with CSS styling
Real text with web font — scalable, translatable, screen reader compatible
hero-banner.png
Text baked into image — can't resize, translate, or read with screen reader
Layout & Structure
Info and Relationships
[H2]
Account Settings
[H3]
Profile Information
Heading levels annotated for developers to implement correctly
Account Settings
Profile Information
Styled as bold text — no semantic heading
Subheading styled as bold text — screen readers won't recognize it as a heading
Orientation
Design adapts to both orientations — user chooses their preference
Locked to portrait only — users with mounted devices can't rotate
Resize Text
Container grows with text — nothing gets cut off or overlaps
Fixed-height container clips enlarged text — content is lost
Reflow
Layout adapts and stacks vertically at narrow widths
This content gets c...
Fixed-width content gets cut off or requires horizontal scroll
Focus & Keyboard
Focus Visible
Clear focus ring with 3:1 contrast, 2px offset from element
No visible focus indicator — keyboard users can't see where they are
Focus Not Obscured
✓ Input is fully visible below header
Page scrolls so focused element appears below sticky header
✕ Top of input hidden under header
Focused input is partially covered by sticky header — user can't see full element
Focus Order
Tab order: 1 → 2 → 3 → 4
Tab order matches visual order: 1 → 2 → 3 → 4
Tab order: 1 → 4 → 2 → 3
Tab order jumps randomly: 1 → 4 → 2 → 3 — confusing for keyboard users
Navigation
Bypass Blocks
Skip link appears on focus, positioned at top of page
No skip link — keyboard users must tab through all nav links every time
Link Purpose
Link text clearly describes where it goes
"Click here" provides no context when read out of context
Headings and Labels
Shipping Address
Heading and label clearly describe what information is needed
Section 2
Generic labels provide no context about what to enter
Target Size
Target Size (Minimum)
Touch-friendly target size, easy to tap accurately
Tiny targets are hard to tap, especially for users with motor impairments
Forms & Errors
Labels or Instructions
Persistent label above input — visible before, during, and after typing
Placeholder-only label disappears when user starts typing
Error Identification
!Please enter a valid email address
Red border + error icon + descriptive text message
Only red border — colorblind users may not notice the error
Error Suggestion
!Password must be at least 8 characters with 1 number
Error message explains exactly what's needed to fix the issue
!Invalid password
Generic error gives no guidance on how to fix the problem
Consistency
Consistent Navigation & Identification
Page 1
Page 2
Same nav order and labels on both pages
Page 1
Page 2
Order changed, labels renamed (Search→Find, Cart→Basket) — confusing
Consistent Help
Page 1
Page 2
Help button stays in bottom-right corner on all pages
Page 1
Page 2
Help button moves from bottom-right to top-left — users can't find it