Plain-English insight
Every violation comes with a one-line user-impact line — what your blind, low-vision, motor-impaired, or cognitively-impaired user actually experiences. Not 'aria-required-attr failed.'
Most a11y tools stop at the report. Loop11y hands the report, the plain-English insight, and the patch — straight to your AI agent. Ten seconds in. Merged PR out.
Every accessibility tool stops at the report. We close the loop end-to-end so accessibility becomes a merged PR, not a backlog ticket.
Visible-first WCAG 2.2 against any URL, repo, or local file.
Plain-English user-impact for each violation — no rule-ID soup.
Contrast / font / theme / tap-target before semantic-only rules.
Mechanical fixes auto-apply. Judgement calls go to your agent.
Re-audit, side-by-side diff, score delta. Ship the PR.
Detection is a rounding error. The hard part is turning violations into shipped code without inventing what a tool cannot decide. Loop11y owns the entire arc — audit, explain, rank, patch, verify — and hands each step to your agent.
Every violation comes with a one-line user-impact line — what your blind, low-vision, motor-impaired, or cognitively-impaired user actually experiences. Not 'aria-required-attr failed.'
Contrast, theme, font, and tap-target failures are what users notice. Ranked above semantic-only rules so your fix list mirrors perceived quality, not axe rule IDs.
Each issue ships with a before/after code snippet your AI agent can apply directly. Claude Code, Cursor, Cline, Copilot — all speak Loop11y via MCP. Audit → diff → commit.
Lang attribute, button names, decorative alt-empty, ARIA required-attr — all patched automatically. Judgement calls (alt copy, contrast colour) go to assisted mode. We never invent meaning.
audit:repo scans React, Vue, Svelte, Angular, and plain HTML; maps every violation back to the exact source file with a confidence score so your agent can diff in one shot.
Run audit → apply diff → re-audit. The loop closes itself. Gate PRs at a score threshold; merge confidently knowing the fix didn't regress somewhere else.
A single self-contained HTML file. No JS runtime, no SaaS storage. The same report you see below is what you generate for your site.


Pick the surface that matches where you work. All five run the same axe-core 4.10 audit pipeline. No vendor lock-in, no per-seat pricing.
$ npx skills add tayyabataimur/loop11y-skill -g -a <your-agent>$ npx -y loop11y audit https://your-site.com --html --output report.html$ npx -y loop11y # starts MCP server on stdio# .github/workflows/a11y.yml
uses: tayyabataimur/loop11y@v0.1.0
with: { url: https://preview.app, fail-under: 90 }$ curl -X POST localhost:3000/api/evaluate -d '{ "url": "https://your-site.com" }'Loop11y exposes its audit, remediation, and verify tools over MCP. Your agent calls them like any other function. Paste a prompt; ship a PR.
▸ Audit https://staging.acme.com, rank the top 5 visible issues, and open a PR that fixes the auto-fixable ones. Re-audit and confirm the score moved.evaluate, then remediate, then verify. You review the diff.# Block merge if accessibility regresses
uses: tayyabataimur/loop11y@v0.1.0
with: { url: preview-url, fail-under: 90 }› const r = await loop11y.evaluate({ url });
› if (r.score < 90) await loop11y.remediate({ mode: "fix" });Accessibility isn't a compliance checkbox — it's the difference between a customer who can buy and one who bounces. The European Accessibility Act took effect 28 June 2025 and made that math explicit. Fix the loop and the addressable market grows.
One paste runs the audit. One MCP call lets your agent open the PR. One re-run verifies the score moved. That's the loop.