ferrox-a11y-design-reviewer

ferrox-a11y-design-reviewer is an agent for Claude Code from FerroxLabs/ferrox-factory. It costs 79 tokens per session (2,312 once invoked), scanned A, original, MIT.

A design-stage review tool for checking user interfaces against WCAG 2.1 AA accessibility guidance, which covers making websites usable by people with disabilities.

In plain words
What is it for?
Use it to review design tokens, component source files, and mockups before implementation, with read-only structured findings.
Why use it?
Accessibility problems are cheaper to fix before a design becomes finished code. It examines the design and explains issues involving labels, alternative text, keyboard use, ARIA, and severity.

Agent for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the ferrox-core plugin — 81 skills, 42 agents, 7 hooks shipped together

Good fit Use it to review design tokens, component source files, and mockups before implementation, with read-only structured findings.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/ferroxlabs/ferrox-factory/ferrox-a11y-design-reviewer
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/FerroxLabs/ferrox-factory

Made for: Claude Code.

Or install ferrox-core, the plugin that ships this one along with the rest of its 81 skills, 42 agents, 7 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ferrox-a11y-design-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/ferroxlabs/ferrox-factory/ferrox-a11y-design-reviewer/github.svg)](https://agentmods.dev/agents/ferroxlabs/ferrox-factory/ferrox-a11y-design-reviewer)
Your own site
<a href="https://agentmods.dev/agents/ferroxlabs/ferrox-factory/ferrox-a11y-design-reviewer"><img src="https://agentmods.dev/badge/agents/ferroxlabs/ferrox-factory/ferrox-a11y-design-reviewer/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for ferrox-a11y-design-reviewer

Your own site · 80×15
<a href="https://agentmods.dev/agents/ferroxlabs/ferrox-factory/ferrox-a11y-design-reviewer"><img src="https://agentmods.dev/badge/agents/ferroxlabs/ferrox-factory/ferrox-a11y-design-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 79 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,312 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00079 $0.02312
Opus 5 $0.00039 $0.01156
Sonnet 5 $0.00016 $0.00462
Haiku 4.5 $0.00008 $0.00231

Measured 11d ago against content hash d5d72d6f6cc9, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

ferrox-a11y-design-reviewer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/ferrox-a11y-design-reviewer.md · 129 lines

How it starts

The opening of the file, as written. The whole thing — 129 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Sister eye to ferrox-a11y-auditor, which runs LATE on implemented surfaces. The 2 eyes share 1 rule set and fire at different points: this one at design time, that one after the change ships. Do not duplicate the late audit; this eye's beat ends where the design artifact ends.

Mandatory Initial Read: If prompt contains <required_reading>, load ALL listed files before any action.

All artifacts are READ-ONLY. This eye never modifies a source or design file. It returns a structured findings list; the orchestrator owns any file write.

Gate pack division of labor (landed v1.11): the mechanical slice of this review lives at the executable tier now. gates/web-ui owns contrast ratio math (WU-02), tap target minimums (WU-03), focus visibility and keyboard reachability (WU-04), landmark presence (WU-05), heading order (WU-06), alt and label presence (WU-07), and reduced-motion fallbacks (WU-08). This eye keeps the judgment slice: is the label meaningful, is the alt text honest, does the ARIA pattern fit its widget, is the link text self-describing, and how severe each finding really is. On the mechanical dimensions this eye has 2 jobs: (a) judge every INDET <ID> <reason-code> line the pack surfaced (the dispatch passes them in as named judgment items), and (b) when the dispatch reports UNSUPPORTED-INPUT for a surface (it does not satisfy the card's input contract), cover the mechanical floor on that surface yourself, applying the thresholds as written in gates/web-ui/card.md, never from memory.

<adversarial_stance> FORCE stance: Assume every judgment call was ducked: every label is a placeholder, every alt text is a lie, and every ARIA role is cosplay until the artifact proves otherwise. On gate-covered surfaces the pack's FAIL lines stand and its INDET lines are open charges to adjudicate; on UNSUPPORTED-INPUT surfaces compute the floor yourself, never eyeball it.

Common failure modes, how a11y reviewers go soft:

  • Waving an INDET line through because the pack "already looked at it" (INDET means the formula refused to answer; the answer is now yours)
  • Accepting a token file's declared intent without computing the actual pair ratios (token files sit outside the gate's input contract; the fallback floor pass is yours)
  • Treating decorative-vs-informative alt text as the implementer's problem
  • Skipping ARIA pattern fit on custom controls (role="button" divs) because they are "obviously clickable"
  • Rubber-stamping a mechanically clean surface as accessible when its labels say nothing and its link text says "click here" </adversarial_stance>

<audit_pillars>

Grade 5 pillars. Every finding carries: severity, pillar, kind, surface (path:line), evidence, fix. Fix suggestions are concrete: a target hex that clears the card's floor, a proposed accessible label, never "improve contrast".

Pillar 1: Contrast

  • Mechanical floor owned by gates/web-ui (WU-02): ratio math for every resolvable text pair. Do not recompute it on a surface the gate scored.
  • Judge the pack's INDET lines (reason codes gradient-background, image-background, unresolvable-var): does the text actually read against that gradient or image? Confirmed illegibility: AA_CONTRAST_FAIL.
  • On UNSUPPORTED-INPUT surfaces (token files, component sources, anything outside the card's contract): compute every foreground + background pair yourself with a shell-level node one-liner at the floors declared in gates/web-ui/card.md. Below floor: AA_CONTRAST_FAIL.

Read the full file on GitHub · 129 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 129 lines · 79 tokens per session scan A d5d72d6f6cc9

Subscribe to this mod's changes

ferrox-a11y-design-reviewer is an agent published in the GitHub repository FerroxLabs/ferrox-factory (23 stars, last pushed 1mo ago), licensed MIT. It adds 79 tokens to every session and 2,312 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

ux-flow-auditor

Use this agent when the user mentions UX flow issues, dead-end views, dismiss traps, missing empty states, broken user journeys, or wants a UX audit of their iOS app. Automatically scans SwiftUI and UIKit code for user journey defects - detects dead ends, dismiss traps, buried CTAs, missing loading/error/empty states…

CharlesWiltgen/Axiom · 190 tokens

ijfw-accessibility-reviewer

Design-phase WCAG 2.1 AA review of UI artefacts: contrast, semantics, focus, ARIA. Trigger per design review pass.

FerroxLabs/ijfw · 37 tokens

Design System Auditor

Design system accessibility auditor. Validates color tokens, CSS custom properties, Tailwind config, and design token files (Style Dictionary, tokens.json) for WCAG AA/AAA contrast compliance. Catches contrast failures at the token source before they reach deployed UI. Also validates focus ring tokens (WCAG 2.4.13…

Community-Access/accessibility-agents · 109 tokens

design

Design system generator — maps product domain to style, palette, typography, anti-patterns. Creates .rune/design-system.md. Use BEFORE any frontend code generation.

Rune-kit/rune · 35 tokens

mobile-ux-optimizer

Use this agent when you need to optimize UI/UX components or interfaces for mobile-first experiences, analyze existing design themes, or ensure mobile usability standards are met. Examples: Context: User has created a desktop-focused component and needs it optimized for mobile. user: 'I've built this navigation…

xbim08/awesome-claude-code-plugins · 0 tokens

frontend-reviewer

Reviews interface, branding and copy. Always verifies against a screenshot and the rendered DOM, never by reading CSS or HTML.

everywan-dev/claude-code-engineering · 28 tokens