WCAG Aria patterns MCP
MCP server for WCAG practices found at https://github.com/karanshah229/wcag-aria-practices-mcp-skill/tree/main
WAI-ARIA: Authoring Practices Guide
This repository maintains the WAI-ARIA Authoring Practices Guide (APG).
- Published at: w3.org/wai/aria/apg
- Developed by the Authoring Practices Task Force of the ARIA Working Group
- Staff contact: Daniel Montalvo
Please do not provide commit access to this repository without coordination.
How the work is organized
- Work is planned and prioritized in our milestones. Each milestone corresponds to a working draft or release published to w3.org.
- Work is organized by topic in our projects. Each project corresponds to a type of design pattern or section of guidance.
- The scope of work and roadmap are described in the project wiki.
MCP Server (AI and Chatbot Integration)
The repository includes a Model Context Protocol (MCP) server that exposes WAI-ARIA pattern documentation as on-demand resources. AI agents and chatbots can fetch pattern specs (keyboard interaction, ARIA roles, states, and properties) when helping developers build accessible components.
Prerequisites: Node.js and npm install.
Run from cloned repo:
npm run mcp
Use with Cursor: Add to your MCP settings (e.g. in Cursor settings or .cursor/mcp.json):
{
"mcpServers": {
"wai-aria-apg": {
"command": "node",
"args": ["/path/to/aria-practices/mcp-server/index.mjs"]
}
}
}
Replace /path/to/aria-practices with the actual path to your cloned repository. The AI can then fetch pattern specs via resources like apg://pattern/accordion or apg://pattern/combobox.
For other MCP-compatible clients, see the Model Context Protocol documentation.
Cursor Skill: Copy skill/wai-aria-apg to .cursor/skills/ in your project so the AI uses APG patterns when building accessible components. See skill/README.md.
Contributing
- Comment in an existing issue or raise a new issue, expressing your willingness to help and briefly summarizing the nature of your proposed resolution.
- An editor will confirm there are no conflicting plans and, if needed, provide guidance.
- Be sure you have linters installed and configured as described below.
- Read our wiki page about submitting pull requests.
- Do some fabulous work and submit a pull request.
Note: Please feel free to ask questions either through an issue or on the Authoring Practices Task Force mailing list.
Code conformance
This repository utilizes linting tools to do static code analysis and ensure consistent code quality across HTML, CSS, and JavaScript. Each linting tool and respective code standards are documented below and in the code guide.
Pull requests that contain linting errors will not be merged until the errors are resolved. To make this easier, you can install and run the tools locally before pushing code. Also note that the tools for CSS and JavaScript will automatically fix many issues if you have them installed locally. To install these tools:
- Make sure that you have Node.js installed, which comes with node package manager (npm)
- Open the directory that contains your
aria-practicesrepository in a terminal - Run
npm install
The HTML validator also requires the installation of a JDK in order to run. If you don't already have a JDK installed, download the latest JDK from Oracle.
It is also highly recommended that you use a code editor that supports these tools and EditorConfig.
HTML
HTML is validated against the NU HTML Validator. Should a warning or error occur because a future ARIA feature is not yet implemented, it will be added to the .vnurc file, allowing the error to pass through.
Run locally:
npm run lint:html
CSS
CSS is validated by stylelint using the stylelint-config-standard ruleset.
NOTE: on commit, stylelint will be run on staged CSS files. If errors are found that can be automatically fixed with the --fix flag, they will be fixed and the changes committed.
Run locally:
npm run lint:css
JavaScript
JavaScript is validated by ESLint, using our own config.
NOTE: on commit, eslint will be run on staged CSS files. If errors are found that can be automatically fixed with the --fix flag, they will be fixed and the changes committed.
Run locally:
npm run lint:js
Test and fix your code
- Open a terminal window to the directory that contains the
aria-practicesrepository - The repository has a script defined that will test all JavaScript in the examples directory. To run it, execute the command
npm test. Note: this may take a few minutes to run and will open several browser windows during the test that will gain focus. - Many errors can be fixed automatically with the command
npm run fix. - After running fix, test again to see what you need to fix manually.
When the linter encounters errors, it will report them in the console. The error report will contain the file name and line number, and it will indicate the character or place in the line that raised the style violation. To fix an error, satisfy the change that the violation indicates.
For example, here is an error for an invalid variable name style. Variables must follow a camelCase convention.
/Users/user1/Documents/github/aria-practices/examples/slider/js/text-slider.js
19:8 error Identifier 'value_nodes' is not in camel case camelcase
The error occurred in examples/slider/js/text-slider.js, on line 19 and the
offending character is indicated by the number 8 after the colon. Change the
variable value_nodes to valueNodes in your source file to eliminate this
error.
To see the complete list of style rules that are applied by ESLint, review the .eslintrc.json file in the root of the project.
Editorial documentation
See the APG Editorial Style Guidelines for information about writing prose for the APG. The ReadMe for the ARIA specification contains additional useful editorial guidance.
Server Terkait
Scout Monitoring MCP
sponsorPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Figma → Vue Design System
A Vue 3 component library with automated design token synchronization from Figma.
Praison AI
AI Agents framework with 64+ built-in MCP tools for search, memory, workflows, code execution, and file operations. Install via `uvx praisonai-mcp`
SeaLights
An MCP server for interacting with the SeaLights platform for quality intelligence.
Mastra/mcp
Client implementation for Mastra, providing seamless integration with MCP-compatible AI models and tools.
Software Planning Tool
A tool for structured software development planning, helping to break down projects into tasks and track progress.
MCP Tools
A developer toolset for creating a real-time MCP server using the PHP Laravel framework, with GitHub integration.
Tinyman MCP
An MCP server for the Tinyman protocol on the Algorand blockchain, offering tools for swaps, liquidity provision, and pool management.
GitLab MR & Confluence Linker
Analyzes GitLab merge requests and links them to Confluence documentation.
AgentMode
An all-in-one MCP server for developers, connecting coding AI to databases, data warehouses, data pipelines, and cloud services.
Julia Documentation MCP Server
An MCP server for accessing Julia documentation and source code.