Skip to content

marklearst/a11y-companion-widget

Repository files navigation

♿️ A11Y Companion – Accessibility Checklist Widget for Figma Design and FigJam

Built and maintained by Mark Learst.

A11Y Companion Widget Screenshot

Project Health Status
License License
Latest release GitHub release (latest SemVer)
Last commit GitHub last commit
Commit activity GitHub commit activity
Open issues GitHub issues
Closed issues GitHub closed issues
Platform Figma Widget API
Tooling pnpm >=10
Figma Community Figma Widget

A11Y Companion is the official accessibility checklist widget for Figma and FigJam, built and maintained by Mark Learst. It brings the A11Y Project Checklist directly into your workflow for manual, team-visible WCAG tracking, with clear guidance and progress.

a11y Companion Widget | Figma Community

❓ What is this?

A11Y Companion is a Figma widget that helps you:

  • Review and check off accessibility requirements for your project
  • Track progress on WCAG compliance
  • Collaborate with your team using avatars and real-time updates
  • Get actionable, section-based checklist items with clear explanations and WCAG references

Based on the authoritative A11Y Project Checklist, this widget is designed for designers, content creators, and developers who want to make their work more accessible.

✨ Features

Core

  • Full A11Y Project checklist, organized by section
  • Per-section and overall progress tracking
  • WCAG references and detailed guidance per checklist item
  • Search and filter across checklist text and WCAG codes
  • Bulk section actions (check all / uncheck all)
  • Section collapse/expand for faster navigation
  • Markdown export with real task-list syntax (- [ ], - [x])
  • WCAG Level Coverage summary in markdown export (A, AA, AAA)
  • Works in both Figma Design and FigJam

New in v2.1.0

  • Multi-language support — 13 locales: English, Spanish, French, German, Portuguese (BR), Japanese, Korean, Ukrainian, Polish, Danish, Norwegian, Swedish, Finnish
  • Translation pipeline — automated scripts with term protection for HTML elements, WCAG codes, and technical terms
  • Locale-aware UI — all settings labels, progress text, contrast inspector notices, and template names localized
  • WCAG levels in all languages — A/AA/AAA conformance badges now display in every locale
  • Locale-safe number formatting — progress numbers use locale-appropriate thousands separators
  • Stable section state — open/close state persists correctly across language switches

v2.0.0 highlights

  • Variable-first design-system guardrails and baseline checks
  • Runtime contrast-safe accent resolution for themed UI states
  • Canonical variable imports and removal of legacy alias usage
  • Contrast Inspector with on-canvas preview, gradient-aware checks, and property-menu toggle
  • AvatarStack activity tracking from real check/uncheck interactions
  • Theme selection simplified to explicit light / dark

▶️ How to Use

  1. Install the widget in your Figma or FigJam file.
  2. Open the widget and review the checklist items by section.
  3. Search for specific items using the search bar at the top.
  4. Check off items as you complete them; your team can see your progress in real time.
  5. Use bulk actions (☐/✓) next to section titles to mark all items complete/incomplete.
  6. Click the collapse/expand button (▲/▼) to quickly navigate sections.
  7. Hover over checklist items for WCAG references and detailed explanations.
  8. Use the property menu to:
    • Change language (13 locales including English, Spanish, French, German, Japanese, Korean, and more)
    • Change checklist template
    • Switch between light/dark themes
    • Switch accent color themes (Default, Indigo, Emerald, Rose, Slate, Cyan)
    • Toggle Contrast Inspector
    • Export checklist progress to Markdown

🔬 Contrast Inspector

  1. Enable Contrast Inspector from the property menu.
  2. Select a layer on canvas.
  3. Press Check in the inspector row.
  4. Review:
    • preview sample
    • ratio and grade
    • foreground/background metadata
  5. Use Swap to preview reversed foreground/background contrast where supported.
  6. Use Clear to reset the current inspector result.

The inspector supports solid and single-gradient scenarios. Unsupported combinations are reported with explicit status messages.

⚠️ Distribution Guardrails

This repository maintains the official A11Y Companion widget listing. Please do not publish forks, clones, or modified builds to Figma Community. Use the official listing linked above. For changes or requests, open an issue.

🔒 Internal Maintenance Checks (Official Listing)

Checks used for maintaining the official repository and release workflow:

  • pnpm run build - bundle widget code to dist/code.js
  • pnpm run watch - rebuild on file changes
  • pnpm run lint - ESLint plus design-system architecture checks
  • pnpm run tsc - TypeScript checks (--noEmit)
  • pnpm run check:contrast - AA contrast checks for theme combinations
  • pnpm run check:contrast:suggest - nearest safe shade-step suggestions
  • pnpm run theme:baseline:check - compare theme output to baseline snapshot
  • pnpm run test:hardening - hardening regressions for shared/widget behavior

🗺️ Roadmap

Public roadmap updates are published with release notes in CHANGELOG.md.

🐞 Report Issues

Found a bug or regression in the official widget? Open an issue here:

Please include:

  • Figma or FigJam context
  • Steps to reproduce
  • Expected vs actual behavior
  • Screenshots (if UI-related)
  • Environment details (OS/Figma desktop version)

🔐 Security

For security-related reports, use the repository security policy:

🧭 Support and Project Notes

This repository is maintained for the official widget release. Use only the official listing/repository for the safest and most up-to-date version. Unofficial copies may include unreviewed changes, security issues, or regressions and are not supported by this project. Please do not republish this widget under a different name or listing in Figma Community.

🙌 Credits

💬 Personal Message

Accessibility is personal for me. I have been the eyes and ears for my legally blind and deaf brother for decades, and I have seen how often the web shuts him out. That loss of access is not theoretical. It is hours of digging through sites that do not care. I do not share this for vibes. I share it because it is the reason I built this, and why I will keep caring about getting it right. My brother is my biggest inspiration.

📝 License

This project is licensed under the Apache License 2.0. © 2025–2026 Mark Learst

About

♿️ a11y Companion Widget, Open-source Figma widget for running the A11Y Project checklist with WCAG references, search, theme presets, bulk actions, and progress export.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors