Skip to content

WCAG for Designers — Creating Compliant Visual Designs

DodaTech Updated 2026-06-28 5 min read

In this tutorial, you will learn about WCAG for Designers. We cover key concepts, practical examples, and best practices to help you master this topic.

Designers can achieve WCAG Compliance through accessible color palettes meeting 4.5:1 contrast, visible focus states, zoom-friendly layouts, proper typography with adequate spacing, and ARIA-annotated Figma components.

What You'll Learn

You will learn the specific WCAG requirements that affect visual design and how to incorporate them into your design Process.

Why It Matters

Many Accessibility issues originate in design. An accessible design prevents accessibility bugs before they reach development.

Real-World Use

DodaTech's design system includes WCAG-validated color tokens, pre-designed focus states, and Figma annotation layers with ARIA information for every component.

flowchart TD
  A[WCAG for Designers] --> B[Color and Contrast]
  A --> C[Focus States]
  A --> D[Layout and Zoom]
  A --> E[Typography]
  A --> F[Component Design]
  B --> G[4.5:1 text, 3:1 UI]
  B --> H[Not color alone]
  C --> I[2px minimum, 3:1 contrast]
  D --> J[Works at 400% zoom]
  D --> K[Content reflows]
  E --> L[Font size 16px minimum]
  E --> M[Line height 1.5]
  F --> N[Touch targets 44px]
  F --> O[ARIA annotations in Figma]

Color and Contrast

WCAG Requirements

1.4.3 Contrast Minimum: 4.5:1 for normal text, 3:1 for large text (18px bold or 24px regular). 1.4.11 Non-text Contrast: 3:1 for UI components and graphical objects. 1.4.1 Use of Color: color is not the only means of conveying information.

Design Tokens

Create accessible color tokens that specify contrast ratios.

/* Accessible color tokens for designers */
:root {
  --color-primary: #005fcc;      /* 4.6:1 on white, passes AA */
  --color-text-primary: #1a1a1a; /* 14.5:1 on white, passes AAA */
  --color-text-secondary: #5a5a5a; /* 5.2:1 on white, passes AA */
  --color-error: #d32f2f;        /* 4.6:1 on white, passes AA */
  --color-disabled: #999999;     /* 2.8:1 on white, FAILS AA — only for disabled */
}

Focus States

WCAG 2.2 Requirements

2.4.11 Focus Appearance: The focus indicator must be at least 2px thick perimeter with 3:1 contrast against the unfocused state. 2.4.12 Focus Not Obscured: The focus indicator must not be hidden by other content.

Design the focus state in your component files. Do not leave it to developers to guess.

/* Focus state designed by design team */
.button:focus-visible {
  outline: 2px solid #005fcc;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(0, 95, 204, 0.2);
}

.input:focus-visible {
  border-color: #005fcc;
  box-shadow: 0 0 0 3px rgba(0, 95, 204, 0.3);
}

Layout and Zoom

WCAG Requirements

1.4.4 Resize Text: Text can be resized up to 200 percent without loss of content or functionality. 1.4.10 Reflow: Content can be presented without loss of information at 400 percent zoom.

Design for fluid layouts that work across viewport sizes. Test designs at 400 percent zoom.

Typography

WCAG Requirements

1.4.12 Text Spacing: Users can override text spacing without losing content. Minimum 16px font size for body text. Line height 1.5. Letter spacing 0.12em. Word spacing 0.16em.

/* Typography system that supports WCAG spacing overrides */
body {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.02em;
}

Component Design

Touch Targets

2.5.8 Pointer Target Spacing (AA): Targets must be at least 24 by 24 CSS pixels. Design all interactive elements with minimum 44 by 44 pixel touch targets.

ARIA Annotations in Figma

Add ARIA annotations to your Figma components. Specify role, accessible name, states, and keyboard interactions.

## Toggle Button Component

### ARIA
- role: switch
- state: aria-checked (true/false)
- name: via aria-label or visible label

### Keyboard
- Enter/Space: toggle state
- Tab: move to toggle
- Focus: visible 2px blue outline

Common Mistakes

1. Designing Without Contrast Checking

Designing with colors that look good but fail contrast. Check every color combination with a contrast tool.

2. Forgetting to Design Focus States

Leaving focus states undefined means developers guess. This leads to inconsistent or non-compliant focus indicators.

3. Creating Fixed-Width Layouts

Fixed-width layouts break at high zoom levels. Design with relative units and responsive breakpoints.

4. Using Only Color for Status

Color blind users cannot distinguish red from green. Add icons, patterns, or text labels.

5. Specifying Font Sizes Below 16px

Small text is hard to read and violates the spirit of 1.4.4. Use 16px minimum for body text.

6. Ignoring Touch Target Size

Links and buttons need adequate spacing. 44 by 44 pixels minimum for touch targets.

7. Not Annotating ARIA in Design Files

Developers need ARIA information to implement correctly. Include it in your design specifications.

Practice Questions

1. What is the minimum contrast ratio for normal text?

4.5:1 for normal text, 3:1 for large text.

2. What does 2.4.11 Focus Appearance require?

The focus indicator must be at least 2px thick with 3:1 contrast against the unfocused state.

3. How should designs handle zoom to 400 percent?

Fluid layouts with relative units should reflow content without horizontal scrolling at 400 percent zoom.

4. What is the minimum touch target size for WCAG 2.2?

24 by 24 CSS pixels minimum, with adequate spacing from adjacent targets.

5. Challenge: Audit a Figma component you designed. Check if it has a designed focus state, meets contrast requirements, and would reflow at 400 percent zoom.

FAQ

Do I need to check contrast for every color combination?

Check every foreground-background pair in your design system. Use tools like Stark or Contrast to automate this.

How do I design focus states that look good?

Use the same brand color as your primary accent with adequate thickness. A 2px outline with 2px offset is the minimum.

Can I use animations in accessible design?

Yes, but respect prefers-reduced-motion. Provide a way to disable animations.

What is the most important accessibility principle for designers?

Do not use color alone to convey information. Always add icons, text, or patterns.

Should I design for multiple zoom levels?

Design at default zoom and ensure the layout scales fluidly. Test at 200 percent and 400 percent.

Mini Project

Create a Figma component for a button with: accessible color tokens, designed focus state, 44px minimum height, ARIA annotation (role, keyboard interaction), and disabled state with contrast note.

What's Next

Learn about WCAG for Developers with implementation techniques for accessible code. Then explore WCAG for Content for writers and editors.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro