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"
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}