WCAG 2.2 Compliance

io.github.VeduisPublished by GitHub account Veduisv1.0.0Updated Oct 30, 2026

WCAG 2.2 audits with corrected markup, verified fix examples, and U.S. ADA deadlines.

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

Local MCP server that audits HTML snippets against WCAG 2.2, explains success criteria, gives verified fix examples, and resolves U.S. ADA compliance deadlines.

What you can do
  • Audit HTML fragments or full documents with 18 static checks, returning the failing criterion, the offending markup and a corrected snippet
  • Look up WCAG 2.2 success criteria: meaning, conformance level, ADA Title II applicability and whether an automated rule exists
  • Retrieve verified fix examples pairing a failing snippet, the corrected snippet, the rationale and a manual test step
  • Resolve ADA, Section 504, EAA and Ontario compliance deadlines by entity type, optionally as of a given date
When to use it
Useful when reviewing markup for accessibility defects, explaining a specific WCAG criterion to a team, or scoping which accessibility deadlines apply to an organization. It is a static checker, so it complements rather than replaces rendered-page testing or manual review.
Requirements
Runs as a local stdio process; the README installs it via npx from a GitHub spec, an MCPB bundle for Claude Desktop, or a Docker build. Node.js is needed for the npx route. No API keys, accounts or network calls are required; data is bundled.
Before you install
Every audit reports conformance_claim: false: a clean result means no static defect was found, not that the page conforms. Contrast, focus visibility, keyboard traps, reading order, caption accuracy and error recovery are not covered and need a rendered page or a person. The README points to a separate commercial scanner for full-domain audits.

Installation

In SourceWeft

  1. Open WCAG 2.2 Compliance in the dashboard and add it to a workspace.
  2. 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

wcag-compliance-mcp

MCP server for WCAG 2.2 audits, verified remediation examples, and U.S. accessibility deadlines. Four tools, no API keys, no network calls, all data bundled.

Built from a benchmark that was verified in headless Chromium: 64 fail/pass HTML pairs executed against axe-core 4.14.0, all 87 WCAG 2.2 success criteria, and 21 sourced regulatory dates from the 1990 ADA through the 2028 DOJ Title II deadline.

[DOI]

Listed in the official MCP registry as io.github.Veduis/wcag-compliance-mcp, on the 97k star MCP directory, and in the accessibility tools list.

Tools

ToolWhat it answers
audit_html_snippetWhich WCAG 2.2 defects are in this HTML, what is the failing criterion, and what does the fix look like
lookup_wcag_criterionWhat does 1.4.3 mean, what level is it, does it apply to ADA Title II entities, and is there an automated rule
get_verified_fix_exampleShow me a failing snippet, the corrected snippet, why it matters, and how to test it manually
check_ada_compliance_deadlinesWhen does my organization have to comply, and what rule sets the date

audit_html_snippet

18 static checks over a fragment or full document:

CheckSuccess criterion
Image without a text alternative1.1.1
Image button without alt1.1.1
role="img" SVG with no name1.1.1
Link with no accessible name2.4.4
Button with no accessible name4.1.2
Form field with no programmatic label3.3.2
Missing html lang3.1.1
Missing page title2.4.2
Skipped heading levels or no h11.3.1
Duplicate id values4.1.1
Positive tabindex2.4.3
aria-hidden on a focusable element4.1.2
Non-li children of ul/ol1.3.1
iframe without title4.1.2
Data table without th1.3.1
video without a captions track1.2.2
Viewport meta blocking zoom1.4.4
Common-purpose input without autocomplete1.3.5

Every finding returns the criterion, the offending markup, and a corrected snippet.

check_ada_compliance_deadlines

Entity types: title_ii_large, title_ii_small, title_iii_business, federal_contractor, hhs_recipient, eu_business, ontario.

Pass as_of to compute the answer for any date, which makes the tool useful for retroactive scoping and for legal memos that need to state what applied on a given day. Every date carries its primary source URL.

Install

bash
npx -y github:Veduis/wcag-compliance-mcp

Three other routes:

RouteCommand
MCPB bundle (Claude Desktop, one click)wcag-compliance-mcp.mcpb
Official registryio.github.Veduis/wcag-compliance-mcp
Dockerdocker build -t wcag-compliance-mcp . && docker run -i --rm wcag-compliance-mcp

The npm package wcag-compliance-mcp lands with the next publish. Until then the GitHub spec installs the same code and dependencies.

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "wcag-compliance": {      "command": "npx",      "args": ["-y", "github:Veduis/wcag-compliance-mcp"]    }  }}

Cursor

.cursor/mcp.json:

json
{  "mcpServers": {    "wcag-compliance": {      "command": "npx",      "args": ["-y", "github:Veduis/wcag-compliance-mcp"]    }  }}

VS Code (Copilot agent mode)

.vscode/mcp.json:

json
{  "servers": {    "wcag-compliance": {      "command": "npx",      "args": ["-y", "github:Veduis/wcag-compliance-mcp"]    }  }}

Docker

bash
docker build -t wcag-compliance-mcp .docker run -i --rm wcag-compliance-mcp

Example

Ask your agent:

Audit this pricing page for WCAG 2.2 issues and give me the corrected markup.

The agent calls audit_html_snippet, then get_verified_fix_example for each failing criterion. What comes back is a failing snippet, the corrected snippet, and the manual test step, not a vague warning.

$ audit_html_snippet('<img src="chart.png">')
{  "summary": {    "issues": 1,    "checks_run": 18,    "checks_failed": 1,    "conformance_claim": false  },  "findings": [    {      "check_id": "img-alt",      "sc": "1.1.1",      "level": "A",      "title": "Image missing a text alternative",      "count": 1,      "elements": [        {          "snippet": "<img src=\"chart.png\">",          "reason": "No alt, aria-label, or aria-labelledby. Decorative images need alt=\"\"."        }      ],      "fix": "<img src=\"chart.png\" alt=\"Bar chart: Q3 revenue rose 18 percent over Q2\">"    }  ]}

What automation cannot see

This matters more than the feature list. In the benchmark behind this server, axe-core 4.14.0 flagged 39 of 64 deliberately defective documents. The other 25 needed scripted checks or a human. Across the full standard, 29 of 87 criteria have a mapped rule and 58 have none, and at Level AA, the level the law actually targets, only 7 of 24 criteria have a rule.

So the server reports conformance_claim: false on every audit. A clean result means no static defect was found, not that the page conforms. Contrast, focus visibility, keyboard traps, reading order, captions accuracy, and error recovery all need a rendered page or a person. If you need a full-domain audit with those checks, that is what vComplianceScanner does.

Data provenance

DatasetDOI
Preprint: what automated testing actually detects10.5281/zenodo.23829968
64 browser-verified fail/pass pairs, axe-core 4.14.010.5281/zenodo.23781867
87 WCAG 2.2 success criteria with rule mapping10.5281/zenodo.23781861
21 sourced ADA / Section 504 / EAA dates10.5281/zenodo.23781873
64 multi-turn LLM remediation prompts10.5281/zenodo.23781879

Mirrors: Hugging Face. Test cases are CC BY 4.0, code is MIT.

Development

bash
npm installnpm test          # 18 checks, including a live stdio handshakenpm start

Layout:

src/index.mjs    MCP server, tool registration, resourcesrc/checks.mjs   18 static checks, no browser requiredsrc/data.mjs     criteria, pairs, timeline, deadline resolutiondata/            bundled JSON, generated from the published datasetstest/smoke.mjs   engine tests plus protocol handshake

More from Veduis

License

MIT for the code. Dataset content is CC BY 4.0, attribution to Veduis LLC.

Source: README.md at commit 3612c03

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

1
  1. v1.0.0LatestOct 30, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.