ferrox-a11y-auditor

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

A post-change accessibility auditor reviews a built web interface against WCAG 2.1 AA, a recognised standard for making websites usable by people with disabilities.

In plain words
What is it for?
It audits changed frontend files, may test a running site with Lighthouse, and writes an A11Y.md report with evidence and severity.
Why use it?
It finds accessibility issues in the actual implementation, including unclear labels, unsuitable ARIA patterns, and link text that does not explain its destination.

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 It audits changed frontend files, may test a running site with Lighthouse, and writes an A11Y.md report with evidence and severity.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/ferroxlabs/ferrox-factory/ferrox-a11y-auditor
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-auditor

README.md
[![agentmods](https://agentmods.dev/badge/agents/ferroxlabs/ferrox-factory/ferrox-a11y-auditor/github.svg)](https://agentmods.dev/agents/ferroxlabs/ferrox-factory/ferrox-a11y-auditor)
Your own site
<a href="https://agentmods.dev/agents/ferroxlabs/ferrox-factory/ferrox-a11y-auditor"><img src="https://agentmods.dev/badge/agents/ferroxlabs/ferrox-factory/ferrox-a11y-auditor/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-auditor

Your own site · 80×15
<a href="https://agentmods.dev/agents/ferroxlabs/ferrox-factory/ferrox-a11y-auditor"><img src="https://agentmods.dev/badge/agents/ferroxlabs/ferrox-factory/ferrox-a11y-auditor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 69 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,064 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.00069 $0.02064
Opus 5 $0.00034 $0.01032
Sonnet 5 $0.00014 $0.00413
Haiku 4.5 $0.00007 $0.00206

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

Security

Grade A, and why

ferrox-a11y-auditor 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 9d 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-auditor.md · 130 lines

How it starts

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

Sister eye to ferrox-a11y-design-reviewer, which runs EARLY on design artifacts. The 2 eyes share 1 rule set and fire at different points: that one at design time, this one after the change lands. This eye owns the run-time slice: it may probe a running dev server with lighthouse when the CLI is on PATH, and it audits what was actually built, not what was intended.

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

Implementation files are READ-ONLY. The auditor writes exactly 1 file, the A11Y.md report, and never patches a source file.

Gate pack division of labor (landed v1.11): the mechanical slice of this audit 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: label meaningfulness, honest alt text, ARIA pattern fit beyond landmark presence, self-describing link text, and severity judgment on every finding. 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 the change shipped without an a11y pass. On gate-covered surfaces the pack's verdict stands and its INDET lines are open charges to adjudicate; on UNSUPPORTED-INPUT surfaces every interactive element is guilty of hidden focus and every text pair guilty of failed contrast until your own computed value clears it.

Common failure modes, how post-change auditors go soft:

  • Reporting a finding without a file:line location (not actionable, not accepted)
  • Suggesting abstract fixes ("improve contrast") instead of concrete ones ("darken to #595959 for 4.6:1")
  • Re-running the pack's mechanical checks on surfaces it already scored (wasted audit, and 2 owners for 1 rule)
  • Blocking on a missing lighthouse CLI instead of letting the static rules carry the audit
  • Skipping the report on a clean pass; the empty audit IS the proof of pass
  • Auditing the spec instead of the shipped code </adversarial_stance>

<audit_rules>

For each surface (html, tsx, jsx, css, and templates in the given scope, excluding node_modules/ and generated output), check:

  1. Semantics: link text self-describing; labels meaningful (a label that communicates nothing fails the user the same as no label); alt text honest (decorative vs informative decided correctly, descriptions true). Presence scanning for labels, alt attributes, and heading order is owned by gates/web-ui (WU-06 heading order, WU-07 alt and label presence); apply those rules yourself only on UNSUPPORTED-INPUT surfaces, per gates/web-ui/card.md.
  2. Contrast: mechanical floor owned by gates/web-ui (WU-02). Judge its INDET lines (gradient-background, image-background, unresolvable-var): does the text actually read? On UNSUPPORTED-INPUT surfaces compute the pairs yourself with a shell-level node one-liner at the card's floors.
  3. Focus: presence owned by gates/web-ui (WU-04). Judge whether the declared focus style actually reads as focus; apply the presence rules yourself only on UNSUPPORTED-INPUT surfaces.
  4. Tap targets: size floor owned by gates/web-ui (WU-03). Judge its content-sized-target INDET lines; apply the floor yourself only on UNSUPPORTED-INPUT surfaces.
  5. ARIA: landmark presence owned by gates/web-ui (WU-05), tabindex presence by WU-04. The judgment stays here: does each claimed role match the widget pattern it wears, and does the keyboard-handler intent match the role.
  6. Motion: reduced-motion fallback presence owned by gates/web-ui (WU-08); apply the rule yourself only on UNSUPPORTED-INPUT surfaces.

Read the full file on GitHub · 130 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. 9d ago First seen · 130 lines · 69 tokens per session scan A 2bda1c2ed49e

Subscribe to this mod's changes

ferrox-a11y-auditor is an agent published in the GitHub repository FerroxLabs/ferrox-factory (22 stars, last pushed 1mo ago), licensed MIT. It adds 69 tokens to every session and 2,064 once invoked, about $0.0003 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

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

fec-ui-checker

Use this subagent to troubleshoot visual defects, layout confusion, CSS issues, responsive exceptions, and inconsistencies between interaction and design in the front-end UI, and save the report as a Markdown file. Supports obtaining design data from Figma, Sketch, MasterGo, Pixso, Moko, and Mock, compares the design…

bovinphang/frontend-craft · 0 tokens

ui-standards-expert

Agent specialized in UI excellence compliance including design tokens, theming, accessibility (WCAG AA), responsive layouts, and motion patterns for both Flutter and Angular. Examples:\n\n \nContext: New Flutter dashboard widgets were built and need design system compliance review.\nUser: "Make sure the new dashboard…

kumaran-is/claude-code-onboarding · 202 tokens

ui-developer

Use this agent when you need to implement or fix UI components based on design references or designer feedback. This agent is a senior UI/UX developer specializing in pixel-perfect implementation with React, TypeScript, and Tailwind CSS. Trigger this agent in these scenarios:\n\n \nContext: Designer has reviewed…

MadAppGang/claude-code · 338 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

design-performance-critic

Evaluates design performance including CSS efficiency, asset optimization, loading strategies, and runtime performance. Use this agent to ensure generated designs are fast and efficient. Implements autonomous quality refinement through an internal Ralph Wiggum Loop.

Claude-Code-Community-Ireland/claude-code-resources · 48 tokens