A
A11yance/aria-query
Programmatic access to the ARIA specification
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
We have neither an install command nor a public remote endpoint from this repository, so we do not print a config. A made-up one is worse than none. How each client wires MCP up →
- Source
- collected from the abordage/awesome-mcp list · type: MCP server
- Harvest history
- first seen 2026-11-05 · last seen 2026-11-14 · seen 10× · listed by 10 sources
- Score
- score 1,003 · 10 sources · mcp
FAQ (answers come from our records)
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
first catalogued 2026-11-05;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.
# ARIA Query
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Programmatic access to the WAI-ARIA 1.2 Roles Model.
This package tracks the W3C Recommendation (last update: 6 June 2023).
CDN URL:
## Building the src/etc files
The files under src/etc are generated by the breakUpAriaJSON script.
To change them, edit the file scripts/roles.json then run:
bash
node ./scripts/breakUpAriaJSON.js
git add scripts/roles.json src/etc
It should work with Node version 6.11.2 or later.
## Utilities
### Interface
These methods are available on each export from the module. The typing here in the documentation is pseudo-typed. Each export will have its own specific types for each method signature.
javascript
entries: () => Array ,
get: (key: $Key) => ?$Value,
has: (key: $Key) => boolean,
keys: () => Array ,
values: () => Array ,
|};
### Roles
javascript
import { roles } from 'aria-query';
A map of role names to the role definition. For example:
javascript
let alertRole = roles.get('alert');
Value of alertRole
"requiredProps": {},
"props": {
"aria-atomic": "true",
"aria-busy": null,
"aria-controls": null,
"aria-current": null,
"aria-describedby": null,
"aria-details": null,
"aria-disabled": null,
"aria-dropeffect": null,
"aria-errormessage": null,
"aria-expanded": null,
"aria-flowto": null,
"aria-grabbed": null,
"aria-haspopup": null,
"aria-hidden": null,
"aria-invalid": null,
"aria-keyshortcuts": null,
"aria-label": null,
"aria-labelledby": null,
"aria-live": "assertive",
"aria-owns": null,
"aria-relevant": null,
"aria-roledescription": null
},
"abstract": false,
"childrenPresentational": false,
"baseConcepts": [],
"relatedConcepts": [ {
"module": "XForms",
"concept": {
"name": "alert"
}],
"superClass": [["roletype", "structure", "section"]]
### Elements to Roles
javascript
import { elementRoles } from 'aria-query';
HTML Elements with inherent roles are mapped to those roles. In the case of an element like , the element often requires a type attribute to map to an ARIA role.
javascript
[ '{"name": "article"}', [ 'article' ] ],
[ '{"name": "button"}', [ 'button' ] ],
[ '{"name": "td"}', [ 'cell', 'gridcell' ] ],
[ '{"name": "input", "attributes": [ {"name": "type", "value": "checkbox"}] }', [ 'checkbox' ] ],
[ '{"name": "th"}', [ 'columnheader' ] ],
[ '{"name": "select"}', [ 'combobox', 'listbox' ] ],
[ '{"name": "menuitem"}', [ 'command', 'menuitem' ] ],
[ '{"name": "dd"}', [ 'definition' ] ],
[ '{"name": "figure"}', [ 'figure' ] ],
[ '{"name": "form"}', [ 'form' ] ],
[ '{"name": "table"}', [ 'grid', 'table' ] ],
[ '{"name": "fieldset"}', [ 'group' ] ],
[ '{"name": "h1"}', [ 'heading' ] ],
[ '{"name": "h2"}', [ 'heading' ] ],
[ '{"name": "h3"}', [ 'heading' ] ],
[ '{"name": "h4"}', [ 'heading' ] ],
[ '{"name": "h5"}', [ 'heading' ] ],
[ '{"name": "h6"}', [ 'heading' ] ],
[ '{"name": "img"}', [ 'img' ] ],
[ '{"name": "a"}', [ 'link' ] ],
[ '{"name": "link"}', [ 'link' ] ],
[ '{"name": "ol"}', [ 'list' ] ],
[ '{"name": "ul"}', [ 'list' ] ],
[ '{"name": "li"}', [ 'listitem' ] ],
[ '{"name": "nav"}', [ 'navigation' ] ],
[ '{"name": "option"}', [ 'option' ] ],
[ '{"name": "input", "attributes": [ {"name": "type", "value": "radio"}] }', [ 'radio' ] ],
[ '{"name": "frame"}', [ 'region' ] ],
[ '{"name": "rel"}', [ 'roletype' ] ],
[ '{"name": "tr"}', [ 'row' ] ],
This package tracks the W3C Recommendation (last update: 6 June 2023).
CDN URL:
## Building the src/etc files
The files under src/etc are generated by the breakUpAriaJSON script.
To change them, edit the file scripts/roles.json then run:
bash
node ./scripts/breakUpAriaJSON.js
git add scripts/roles.json src/etc
It should work with Node version 6.11.2 or later.
## Utilities
### Interface
These methods are available on each export from the module. The typing here in the documentation is pseudo-typed. Each export will have its own specific types for each method signature.
javascript
entries: () => Array ,
get: (key: $Key) => ?$Value,
has: (key: $Key) => boolean,
keys: () => Array ,
values: () => Array ,
|};
### Roles
javascript
import { roles } from 'aria-query';
A map of role names to the role definition. For example:
javascript
let alertRole = roles.get('alert');
Value of alertRole
"requiredProps": {},
"props": {
"aria-atomic": "true",
"aria-busy": null,
"aria-controls": null,
"aria-current": null,
"aria-describedby": null,
"aria-details": null,
"aria-disabled": null,
"aria-dropeffect": null,
"aria-errormessage": null,
"aria-expanded": null,
"aria-flowto": null,
"aria-grabbed": null,
"aria-haspopup": null,
"aria-hidden": null,
"aria-invalid": null,
"aria-keyshortcuts": null,
"aria-label": null,
"aria-labelledby": null,
"aria-live": "assertive",
"aria-owns": null,
"aria-relevant": null,
"aria-roledescription": null
},
"abstract": false,
"childrenPresentational": false,
"baseConcepts": [],
"relatedConcepts": [ {
"module": "XForms",
"concept": {
"name": "alert"
}],
"superClass": [["roletype", "structure", "section"]]
### Elements to Roles
javascript
import { elementRoles } from 'aria-query';
HTML Elements with inherent roles are mapped to those roles. In the case of an element like , the element often requires a type attribute to map to an ARIA role.
javascript
[ '{"name": "article"}', [ 'article' ] ],
[ '{"name": "button"}', [ 'button' ] ],
[ '{"name": "td"}', [ 'cell', 'gridcell' ] ],
[ '{"name": "input", "attributes": [ {"name": "type", "value": "checkbox"}] }', [ 'checkbox' ] ],
[ '{"name": "th"}', [ 'columnheader' ] ],
[ '{"name": "select"}', [ 'combobox', 'listbox' ] ],
[ '{"name": "menuitem"}', [ 'command', 'menuitem' ] ],
[ '{"name": "dd"}', [ 'definition' ] ],
[ '{"name": "figure"}', [ 'figure' ] ],
[ '{"name": "form"}', [ 'form' ] ],
[ '{"name": "table"}', [ 'grid', 'table' ] ],
[ '{"name": "fieldset"}', [ 'group' ] ],
[ '{"name": "h1"}', [ 'heading' ] ],
[ '{"name": "h2"}', [ 'heading' ] ],
[ '{"name": "h3"}', [ 'heading' ] ],
[ '{"name": "h4"}', [ 'heading' ] ],
[ '{"name": "h5"}', [ 'heading' ] ],
[ '{"name": "h6"}', [ 'heading' ] ],
[ '{"name": "img"}', [ 'img' ] ],
[ '{"name": "a"}', [ 'link' ] ],
[ '{"name": "link"}', [ 'link' ] ],
[ '{"name": "ol"}', [ 'list' ] ],
[ '{"name": "ul"}', [ 'list' ] ],
[ '{"name": "li"}', [ 'listitem' ] ],
[ '{"name": "nav"}', [ 'navigation' ] ],
[ '{"name": "option"}', [ 'option' ] ],
[ '{"name": "input", "attributes": [ {"name": "type", "value": "radio"}] }', [ 'radio' ] ],
[ '{"name": "frame"}', [ 'region' ] ],
[ '{"name": "rel"}', [ 'roletype' ] ],
[ '{"name": "tr"}', [ 'row' ] ],
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/a11yance-aria-query/)
- Source
- awesome · https://github.com/A11yance/aria-query
- Browse by field
- MCP servers
- Listed by
- 10 independent sources
- added
- today
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.