
A11y
io.github.rog0xPublished by GitHub account rog0xv1.0.2Updated Oct 24, 2026
Alt text, headings, contrast, ARIA for AI agents
Overview
A local MCP server that gives an AI assistant tools to audit HTML for web accessibility issues such as alt text, headings, contrast, ARIA and forms.
- What you can do
- Analyze images in HTML for missing, empty or low-quality alt text, including linked images and image inputs or areas. Validate heading structure for skipped levels, multiple h1s, empty or overly long headings, and return a heading outline tree. Calculate WCAG 2.x contrast ratios for color pairs and report AA and AAA compliance for normal and large text. Validate ARIA roles and properties, flag redundant roles and risky aria-label or aria-hidden usage. Audit forms for label association, fieldset and legend grouping, placeholder-only labels, autocomplete suggestions and duplicate IDs.
- When to use it
- Useful when reviewing HTML pages or components for accessibility compliance, preparing for WCAG checks, or having an assistant explain and fix alt text, heading, contrast, ARIA and form labeling problems.
- Requirements
- Runs as a local process over stdio, installed from the npm package and built with npm install and npm run build; the README shows launching it with node against the built index file in a desktop client configuration. No accounts, API keys or environment variables are declared.
Installation
In SourceWeft
- Open A11y 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
mcp-a11y-tools
Web accessibility analysis tools for AI agents, served over the Model Context Protocol (MCP).
Tools
check_alt_text
Analyze images in HTML for missing, empty, or low-quality alt text.
- Detects missing
altattributes - Identifies decorative images (
alt=""withrole="presentation") - Flags low-quality alt text (e.g., "image", "photo", filenames)
- Checks linked images,
<input type="image">, and<area>elements
check_heading_hierarchy
Validate heading structure for proper nesting and content quality.
- Verifies h1-h6 order with no skipped levels
- Ensures a single
<h1>per page - Detects empty, too-short, or too-long headings
- Supports
role="heading"witharia-level - Returns a visual tree of the heading outline
check_color_contrast
Check WCAG 2.x contrast ratio for foreground/background color pairs.
- Calculates precise contrast ratio per WCAG relative luminance formula
- Reports AA and AAA compliance for normal and large text
- Accepts hex (
#fff,#ffffff),rgb(r,g,b), and named colors
validate_aria
Validate ARIA attributes on HTML elements.
- Detects invalid ARIA roles
- Checks for missing required ARIA properties per role
- Flags redundant ARIA roles that match native semantics
- Warns about
aria-labelon non-interactive elements - Catches
aria-hidden="true"on focusable elements
check_form_accessibility
Audit form elements for accessibility compliance.
- Verifies every input has an associated label (explicit, implicit, or ARIA)
- Checks radio/checkbox groups for
<fieldset>and<legend> - Flags placeholder text used as the only label
- Suggests
autocompleteattributes for personal info fields - Detects duplicate IDs that break label association
Setup
Usage with Claude Desktop
Add to your claude_desktop_config.json:
License
MIT
Source: README.md at commit f5c5682
Tools
0Version history
1- v1.0.2LatestSep 16, 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.