Accessibility Audit Runner
API Contract
REST
/api/v1/accessibility-audits
9 endpoints
GET
/api/v1/accessibility-audits/api/v1/accessibility-audits
List all accessibility audit runs
Public
Response Example
{
"data": [
{
"id": "audit-001",
"audit_type": "switch_access",
"passed": true,
"issue_count": 0,
"run_at": "2026-03-25T14:00:00Z"
},
{
"id": "audit-002",
"audit_type": "keyboard_access",
"passed": false,
"issue_count": 3,
"run_at": "2026-03-25T14:05:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 2
}
}
GET
/api/v1/accessibility-audits/api/v1/accessibility-audits/:id
Get a specific audit run result
Public
Response Example
{
"id": "audit-002",
"audit_type": "keyboard_access",
"passed": false,
"issue_count": 3,
"issues": [
{
"widget": "SearchBar",
"issue": "Missing focus indicator"
},
{
"widget": "TabBar",
"issue": "Tab order not logical"
},
{
"widget": "ModalCloseButton",
"issue": "Not reachable via keyboard"
}
],
"run_at": "2026-03-25T14:05:00Z"
}
POST
/api/v1/accessibility-audits/api/v1/accessibility-audits
Trigger a new accessibility audit run
Public
Request Example
{
"audit_type": "touch_targets",
"widget_tree": {
"root": "AppRoot",
"widgets": [
"TabBar",
"FABButton",
"SearchBar",
"NavButton"
]
}
}
Response Example
{
"id": "audit-003",
"audit_type": "touch_targets",
"status": "running",
"created_at": "2026-03-26T09:00:00Z"
}
PUT
/api/v1/accessibility-audits/api/v1/accessibility-audits/:id
Update audit configuration or annotate an existing audit result
Public
Request Example
{
"notes": "Re-run after fixing TabBar focus indicator"
}
Response Example
{
"id": "audit-002",
"audit_type": "keyboard_access",
"notes": "Re-run after fixing TabBar focus indicator",
"updated_at": "2026-03-26T09:15:00Z"
}
DELETE
/api/v1/accessibility-audits/api/v1/accessibility-audits/:id
Delete an audit record
Public
Response Example
{
"deleted": true,
"id": "audit-002"
}
POST
/api/v1/accessibility-audits/api/v1/accessibility-audits/switch-access
Run switch access traversal audit on a widget tree (runSwitchAccessAudit)
Public
Request Example
{
"widget_tree": {
"root": "AppRoot",
"widgets": [
"TabBar",
"FABButton",
"SearchBar"
]
}
}
Response Example
{
"id": "audit-004",
"audit_type": "switch_access",
"passed": true,
"issue_count": 0,
"traversal_order": [
"TabBar",
"SearchBar",
"FABButton"
],
"run_at": "2026-03-26T09:20:00Z"
}
POST
/api/v1/accessibility-audits/api/v1/accessibility-audits/keyboard
Run keyboard navigation audit on a widget tree (runKeyboardAccessAudit)
Public
Request Example
{
"widget_tree": {
"root": "AppRoot",
"widgets": [
"TabBar",
"FABButton",
"SearchBar",
"ModalCloseButton"
]
}
}
Response Example
{
"id": "audit-005",
"audit_type": "keyboard_access",
"passed": false,
"issue_count": 1,
"issues": [
{
"widget": "FABButton",
"issue": "No keyboard shortcut defined"
}
],
"run_at": "2026-03-26T09:25:00Z"
}
POST
/api/v1/accessibility-audits/api/v1/accessibility-audits/touch-targets
Check touch target sizes meet WCAG 44x44pt minimum (checkTouchTargetSizes)
Public
Request Example
{
"widget_tree": {
"root": "AppRoot",
"widgets": [
"TabBar",
"NavButton",
"CloseIcon"
]
}
}
Response Example
{
"id": "audit-006",
"audit_type": "touch_targets",
"passed": false,
"issue_count": 1,
"issues": [
{
"widget": "CloseIcon",
"actual_size": {
"width": 24,
"height": 24
},
"required_size": {
"width": 44,
"height": 44
},
"issue": "Touch target too small"
}
],
"run_at": "2026-03-26T09:30:00Z"
}
GET
/api/v1/accessibility-audits/api/v1/accessibility-audits/:id/report
Get a formatted accessibility audit report (generateAuditReport)
Public
Response Example
{
"audit_id": "audit-006",
"audit_type": "touch_targets",
"summary": "1 of 3 widgets failed touch target size requirements.",
"passed": false,
"wcag_level": "AA",
"recommendations": [
"Increase CloseIcon hit area to 44x44pt using padding or GestureDetector wrapper"
],
"generated_at": "2026-03-26T09:35:00Z"
}