
A11yScope
io.github.perceivablev0.1.2Updated Oct 11, 2026
WCAG 2.2 AA accessibility checks for pages and HTML, run locally in headless Chrome.
Overview
Runs local WCAG 2.2 AA accessibility checks on web pages and HTML snippets in headless Chrome and returns grouped violations with fixes.
- What it does
- A11yScope exposes the engine behind the A11yScope Chrome extension as an MCP server. Its scan_page tool loads a URL or local HTML file in headless Chrome and returns violations grouped by rule, each with a CSS selector, an HTML snippet and a message describing what to change. scan_html does the same for markup an agent just generated, and list_rules describes the 31 checks with their WCAG 2.2 success criteria, level, impact and fix guidance. Scan options include review items, passed checks, per-rule finding limits, viewport size and a wait time for late-rendering pages.
- When to use it
- Useful when an assistant writes or edits web pages and should verify accessibility before finishing, for example scanning a local development server and fixing violations in a loop. Also suited to checking generated HTML snippets for contrast, labels, structure and ARIA issues.
- Requirements
- Runs locally as a stdio process via npx (package a11yscope-mcp). Needs Node 20 or newer and a Chromium-based browser already installed; if none is found, a Chrome for Testing build (~150 MB) is downloaded once into Puppeteer's cache. The optional A11YSCOPE_CHROME environment variable points at a specific browser executable. No account, API key or network service is required.
Installation
In SourceWeft
- Open A11yScope in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
a11yscope-mcp
WCAG 2.2 AA checks for AI coding agents. The same engine as the A11yScope Chrome extension, exposed as an MCP server so Claude Code, Cursor, Claude Desktop and other MCP clients can audit the pages they build and fix what they find.
Runs locally in headless Chrome. Nothing is uploaded, no account, no telemetry.
Install
Claude Code
Cursor / Claude Desktop / any MCP client — add to the MCP config:
Needs Node 20 or newer and a Chromium-based browser. Installing downloads
nothing: the first scan uses the Chrome, Chromium, Edge or Brave already on
the machine, and only if none is found does it fetch a Chrome for Testing
build (~150 MB, once) into Puppeteer's cache. To point it at a specific
browser, set A11YSCOPE_CHROME to the executable path.
Tools
Options on both scan tools: include_review (items that need a human
decision), include_passed, max_findings_per_rule, viewport size.
scan_page also takes wait_ms for pages that render late.
Typical prompt: "Scan http://localhost:3000 with a11yscope and fix every violation, then scan again."
What it checks
Text alternatives (images, form labels, buttons, links, frames, SVG), colour contrast with the large-text and bold exemptions applied and translucent backgrounds composited, document structure (language, title, headings, main landmark, skip link, tables, lists, duplicate ids), and keyboard, pointer and ARIA (zoom lock, positive tabindex, aria-hidden focusable, nested interactive controls, 24×24 target size, autoplay, captions, invalid roles, required ARIA states, autocomplete, focus visibility).
Calibrated against sites built by accessibility practitioners: gov.uk, webaim.org, deque.com, a11yproject.com and w3.org/WAI all report zero violations. Anything reported there is treated as our bug until proven otherwise, and false-positive reports are the most useful thing you can send.
What it does not do
Automated checks find roughly a third of accessibility barriers. A clean
result is a good sign, not a conformance claim. Whether alt text is accurate,
whether a page makes sense in a screen reader, whether a keyboard user can
finish a task — no tool can answer those, and this one does not pretend to.
Anything it cannot decide comes back as review, not as pass or fail. It is
not a substitute for an expert evaluation and does not certify compliance
with the EAA, ADA, KWCAG or any other standard.
Licence
Copyright © 2026 Perceivable. Free to install and run, including commercially,
through npm and MCP clients. The engine source is published so that "nothing
leaves your machine" can be verified rather than trusted; it is not open
source, and no licence is granted to copy, modify or redistribute it or to
publish derivative works. Full terms: the LICENSE file in this package and
at the repository root. Problems and false positives:
https://github.com/perceivable/a11yscope/issues.
Source: mcp/README.md at commit c7a0aa6
Tools
0Version history
1- v0.1.2LatestOct 11, 2026


