Tools / a11y_scan
a11y_scan
Grade built token contrast and optional static screen accessibility.
Generated from @oods/foundry 0.10.1
Turned on with MCP_TOOLSET=all.
Use it when checking component token pairs and HTML structure; use artifact_certify for chart pillars or design_preview for measured browser evidence. Checks button states per intent, text at 4.5:1, and icons/progress/meter marks at 3:1. Returns measured pairs, document findings and explicit unmeasured cases. Without a schema it checks every built brand/theme; a UiSchema scopes pairs to its components and adds static HTML checks. Dynamic/inherited/system paints remain unmeasured. Browser layout, keyboard/focus and screen-reader behavior are not tested. apply:true writes the report, transcript and bundle index; omission writes nothing. Reference: TOOL-REFERENCE.md#a11y_scan; full schema: oods://schemas/a11y_scan.input.json.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
apply | boolean | no | When true, write the a11y report artifact to the artifacts directory. |
schema | object | no | Render this UiSchema in memory and inspect its HTML; select declared token pairs for its rendered components. |
Outputs
The package ships no output schema for this tool.
A real call
Recorded by this site's tools run, step a11y-scan, with the published OODS Foundry
0.10.1.
Its input:
{} Its result, first lines:
{
"artifacts": [],
"structuredData": {
"generatedAt": "2026-10-08T15:09:13.003Z",
"tokenSource": "~/.oods-foundry/runtime/0.10.1-8f7d4c36f4a2/packages/tokens/dist/css-variables-by-scope.json",
"pairSource": {
"source": "shared component-styles declarations",
"sha256": "64f8acaebd03cdde431a159b8ecb5dbc3641e8207e137f7db2a2b2657df56815",
"selection": "All declared variants of the rendered components; no browser cascade or paint claim."
},
"scopes": [
{
"brand": "A",
"theme": "light",
"checks": 166
},
{
"brand": "A",
"theme": "dark",
"checks": 166
},
{
"brand": "A",
"theme": "hc",
"checks": 212
},
{
"brand": "B",
"theme": "light",
"checks": 166
},
{
"brand": "B",
"theme": "dark",
"checks": 166
},
{
"brand": "B",
"theme": "hc",
"checks": 212
}
],
"summary": {
"totalChecks": 1088,
"passed": 252,
"failed": 0,
"screenFindings": 0,
"unmeasured": 734,
"notApplicable": 102,
"complianceStatus": "partial"
},
"rules": [
{
"ruleId": "A/light/css-1",
"brand": "A",
"theme": "light",
"selector": "body",
"target": "body",
"foreground": {
"token": "var(--sys-text-primary, CanvasText)",