An accessibility audit to Figma redesign workflow means running automated and manual WCAG checks on your live HTML, identifying failing components, importing those components into Figma as editable layers using html2design, and redesigning them for compliance — then handing annotated Figma specs to developers as remediation instructions. The key advantage: designers work with the real implementation as their baseline, not a Figma file that may have drifted from the live site.
Why Start the Accessibility Redesign in Figma?
Accessibility remediation typically follows one of two paths: fix directly in code (fast for isolated issues like missing alt text) or redesign in Figma and hand off to developers (necessary when failures are visual and systemic — contrast, focus indicators, component structure, touch target sizing).
The Figma path makes sense when:
- Multiple components fail the same criterion and need a consistent fix (e.g., all buttons have insufficient contrast — the solution is a new color token, not 40 individual code patches)
- The fix changes the visual design (contrast, spacing, focus ring styling) and needs designer review before developer implementation
- You need annotated specs for a development team that won't make design decisions independently
- Stakeholder sign-off on the accessible design is required before code remediation begins
The challenge: your Figma file probably doesn't match the live implementation. You'd be redesigning against an approximation. Importing the actual failing HTML into Figma with html2design gives you the real implementation as your starting point — every pixel, every color, every font value exactly as it exists in production.
Key workflow principle: Import the failing HTML section before designing the fix. The imported Figma frame becomes your "current state" layer. Build the "fixed state" as a separate frame beside it. Showing before/after in the same Figma file makes designer review, stakeholder sign-off, and developer handoff significantly clearer.
Step 1: Run the Accessibility Audit
Automated tools catch approximately 30–40% of WCAG failures — the rest require manual review. Start with automation to get a prioritized issue list, then supplement with manual checks.
Automated audit tools
- axe DevTools — Browser extension that runs a WCAG audit on the active page. Shows violations with element selectors, WCAG criterion reference, and suggested fixes. Free tier available; best in class for automation coverage.
- WAVE — WebAIM's accessibility evaluation tool. Overlays icons directly on the page marking errors, alerts, and structural elements. Good for visual-first audits.
- Chrome Lighthouse — Built into DevTools → Lighthouse tab → Accessibility audit. Produces a scored report with specific WCAG references. Fast for initial triage.
- IBM Equal Access Checker — Good complement to axe for catching different issue subsets, especially for IBM Design Language patterns.
Manual checks to add
- Keyboard navigation — Tab through every interactive element. Does focus move in logical order? Is focus always visible? Can everything be activated with Enter/Space?
- Screen reader test — Run VoiceOver (macOS) or NVDA (Windows) and navigate to key sections. Listen for missing labels, confusing announcements, or interactive elements that aren't announced correctly.
- Zoom test — Set browser zoom to 200% (WCAG 1.4.4). Does content reflow correctly? Does text truncate, overlap, or lose functionality?
- Motion sensitivity — Check for auto-playing animations. WCAG 2.3.3 (AAA) and 2.2.2 (AA) address motion; verify there's a pause/stop mechanism for anything that moves for more than 5 seconds.
Common trap: Automated tools score contrast based on the computed background/foreground color pair for each element. They can miss contrast failures on gradient backgrounds, text over images, and semi-transparent overlays — these require manual checking with a contrast analyzer tool like TPGi Colour Contrast Analyser.
Step 2: Prioritize Failures for Figma Redesign
Not every audit failure needs a Figma redesign. Triage your findings:
| Issue type | Fix in code directly? | Needs Figma redesign? |
|---|---|---|
| Missing alt text | Yes — content fix | No |
| Missing form labels | Usually yes | Only if visual label needs design change |
| Insufficient color contrast | No — visual design decision | Yes |
| Focus indicator missing/invisible | No — visual design decision | Yes |
| Touch targets too small (<44px) | No — layout/sizing decision | Yes |
| Missing ARIA landmarks | Yes — semantic HTML fix | No |
| Text spacing overrides fail | Usually code fix | No |
| Color as sole info indicator | No — visual design decision | Yes |
Focus your Figma work on issues that require visual design decisions: contrast, focus styles, touch targets, and color-as-information patterns. These are the issues where a Figma redesign and annotated spec is genuinely useful to developers.
Step 3: Import Failing Sections into Figma
Step 3a
Open the failing page in Chrome
Navigate to the live page with the accessibility violation. If the issue is on a specific component (a button, a form, a card), scroll to it. Open DevTools → Elements panel and locate the component's root element.
Step 3b
Copy the failing component's outerHTML
Right-click the root element → Copy → Copy outerHTML. For page-level issues (overall contrast, layout at zoom), copy the entire <main> or relevant section. For component-level issues (button contrast, input focus ring), copy just the failing component.
Step 3c
Import into Figma with html2design
Open Figma, run html2design → Paste HTML. The failing component appears as a native Figma frame. Label this frame "Current State — WCAG Fail" so it's clearly distinct from your redesign work.
Step 3d
Duplicate the frame as your working copy
Duplicate the imported frame and move the copy beside the original. Label it "Fixed State — WCAG Pass." Work on the copy — the original remains as your before-state reference throughout the redesign process.
Step 4: Redesign for Compliance in Figma
With the live implementation as your Figma baseline, you can now redesign precisely for each WCAG criterion.
Color contrast (WCAG 1.4.3)
WCAG 2.1 Level AA requires 4.5:1 contrast for normal text and 3:1 for large text (18pt+ or 14pt+ bold). In your imported Figma frame, select a text layer. Open the Stark or Contrast plugin — it reads the fill color and background fill and calculates the ratio instantly. Adjust the text color or background fill until the ratio passes. Record the passing color pair in a Figma annotation beside the frame.
For teams on a design token system: this is the moment to update the token, not just the one instance. If your text-muted color fails contrast, every component that uses it needs the fix. Update the Figma Color Variable (or Style) and watch all component instances update automatically.
WCAG contrast quick reference: Normal text needs 4.5:1 (AA) or 7:1 (AAA). Large text (18pt+ / 14pt+ bold) needs 3:1 (AA) or 4.5:1 (AAA). UI components and graphical objects need 3:1 against adjacent colors. Decorative elements and disabled UI are exempt.
Focus indicators (WCAG 2.4.7 and 2.4.11)
The most common focus indicator failure: the browser default outline was removed with outline: none and nothing replaced it. In Figma:
- Select the button, input, or link in the imported frame.
- Add a stroke to the shape using the Stroke property in Figma. Choose a color with 3:1 contrast against the background (WCAG 2.4.11 minimum area requirement).
- If the element has a rounded background, make the focus ring a slightly larger rectangle with a gap — matching the WCAG 2.2 "focus appearance" model (2px minimum, offset by 2px).
- Create the focus state as a Figma Component Variant so developers see both default and focused states.
Touch target sizing (WCAG 2.5.8)
WCAG 2.2 Success Criterion 2.5.8 (Level AA) requires interactive targets to be at least 24x24 CSS pixels (upgraded from the older 44x44px WCAG 2.5.5 AAA guideline, though 44x44px remains best practice for mobile). In Figma:
- Select the interactive element in the imported frame.
- Check its dimensions in the Figma layout panel. If under 44x44px (or 24x24px at minimum), annotate it with a red overlay rectangle showing the minimum size requirement.
- In the fixed state frame, show the element with sufficient padding or explicit min-width/min-height to meet the target.
Color as sole information indicator (WCAG 1.4.1)
Patterns that fail this criterion: error states shown only in red (no error icon or text), status badges where the label is color-only (a green badge says "active," a red one says "error," but the text inside is the same), required form fields marked only with a colored asterisk.
In Figma, redesign to add a second visual cue: an icon, a text label, a shape change, or an underline. The test is: if you convert the design to grayscale, does the same information remain conveyed? If yes, WCAG 1.4.1 passes.
Step 5: Annotate the Figma File for Developer Handoff
The goal of the Figma annotation is unambiguous developer instructions — specific enough that the developer doesn't need to make design decisions during implementation.
Standard accessibility annotation elements in Figma:
- Numbered focus order circles — Place a circle with a number on each interactive element showing the expected tab order. Use a consistent annotation component so numbers are visually distinct from the design.
- ARIA label callouts — For icons, icon buttons, and elements where the visible label differs from the accessible name, add a text annotation: "aria-label: 'Close modal'" beside the element.
- Heading level indicators — Mark H1, H2, H3 in the Figma layer for each heading element. Developers can verify the visual hierarchy matches the semantic hierarchy.
- Error state annotations — Show the error state variant with the error message text, error icon, and aria-describedby association labeled explicitly.
- Contrast ratio callouts — For each text/background pair, annotate the passing contrast ratio and the hex values used. "Text: #1F2937, Background: #FFFFFF, Contrast: 16:1 (AA ✓)"
Step 6: Review and Ship the Remediation
Before handing off the Figma file:
- Designer review — Verify the fixed design still meets brand and aesthetic standards. Accessibility fixes shouldn't look like afterthoughts — they should feel native to the design system.
- Check with a screen reader — Test the key user flows with VoiceOver or NVDA before the developer implements the fix, so you catch annotation gaps before code is written.
- Validate contrast with a plugin — Run Stark or Contrast on the fixed state frames in Figma. Every text/background combination should show a passing ratio.
- Post-implementation audit — After the developer implements the fix, re-run axe DevTools on the live page. The fixed criterion should no longer appear in the violations list.
Frequently Asked Questions
How do I design accessible components in Figma?
Import the live non-compliant component with html2design to get the real implementation as a Figma baseline. Duplicate the frame, then redesign for the specific WCAG criteria that failed: adjust colors for contrast, add focus indicator styles, increase touch target padding. Use Figma accessibility plugins (Stark, Contrast, Able) to validate the redesign before handoff.
What WCAG level should I target?
WCAG 2.1 Level AA is the standard required by most accessibility regulations globally — including the European EN 301 549, Section 508 in the US, and WCAG 2.2 AA (which supersedes 2.1 AA with minor additions). Targeting AA is both the legal baseline and a meaningful accessibility improvement for users. Level AAA is aspirational and not required for compliance — include AAA criteria where achievable without significant design compromise.
Can Figma designs be accessibility-checked before developers build them?
Yes — use Stark, Contrast, or Able plugins to check contrast ratios and simulate color blindness directly in Figma. These plugins cover the visual layer of accessibility. Semantic, keyboard, and screen reader accessibility can't be fully validated in Figma — that requires testing the live HTML. The Figma audit catches visual failures early; the code audit catches structural failures after implementation.
Accessibility Audit to Figma Checklist
- ✓ Run axe DevTools + Lighthouse on all key pages — capture all violations
- ✓ Triage: separate code-only fixes from visual redesign items
- ✓ Import each failing component into Figma with html2design — label as "Current State"
- ✓ Duplicate the frame and redesign the fix — label as "Fixed State"
- ✓ Validate contrast ratios on fixed state using Stark or Contrast plugin
- ✓ Add accessibility annotations: focus order, ARIA labels, heading levels
- ✓ Re-run axe after developer implementation to confirm violations resolved
Key Takeaways
- ✓ Automated tools (axe DevTools, Lighthouse) catch ~30–40% of WCAG failures — always supplement with keyboard, zoom, and screen-reader checks
- ✓ Import the failing HTML into Figma as "Current State" before designing the fix — gives you the real production baseline, not an approximation
- ✓ Use side-by-side before/after frames — "Current State" and "Fixed State" — for cleaner stakeholder sign-off and developer handoff
- ✓ html2design works with localhost and auth-gated pages — copy failing component HTML from DevTools, no public URL needed
- ✓ Validate contrast ratios on the fixed state in Figma using the Stark or Contrast plugin before handing off to developers
Related Articles
The Complete Guide to HTML to Figma Conversion (2026) →
The pillar guide covering every framework, every method, and every use case — all in one place.
How to Convert HTML to Figma: A Developer's Guide →
The foundational DevTools copy + html2design paste workflow — the core step in the audit-to-Figma pipeline.
How to Import a Website into Figma →
Import any page section into Figma as a starting point for accessibility redesign work.
Design Tokens: Bridging Code and Figma →
If contrast failures stem from your color tokens, fixing the Figma Variable propagates the fix across the entire design system.
Design System Migration: From Code to Figma Components →
Migrate your full component library into Figma — a useful companion when accessibility remediation is system-wide.
Responsive Design to Figma: Converting Breakpoints to Variants →
Touch target failures often surface specifically on mobile — import the mobile breakpoint for accurate touch target redesign work.
Developer Handoff: Keep Code and Figma in Sync →
Once remediation is complete, use the developer handoff workflow to keep accessibility compliance reflected in Figma going forward.
Try it now
Import your failing component and redesign for compliance
Copy the non-compliant section's outerHTML from DevTools, paste it into html2design, and get an editable Figma baseline for your accessibility redesign — in under 60 seconds.
Install from Figma Community →$12/mo · $96/yr · Cancel anytime