REST /api/v1/wcag-compliance-checks 8 endpoints
GET /api/v1/wcag-compliance-checks/api/v1/wcag-compliance-checks

List all WCAG compliance check results

Public

Response Example

{
  "data": [
    {
      "id": "wcc-001",
      "check_type": "contrast",
      "screen_name": "LoginScreen",
      "passed": false,
      "wcag_level": "AA",
      "checked_at": "2026-03-26T07:00:00Z"
    },
    {
      "id": "wcc-002",
      "check_type": "touch_target",
      "screen_name": "Dashboard",
      "passed": true,
      "wcag_level": "AA",
      "checked_at": "2026-03-26T07:05:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 2
  }
}
GET /api/v1/wcag-compliance-checks/api/v1/wcag-compliance-checks/:id

Get full details of a specific WCAG compliance check

Public

Response Example

{
  "id": "wcc-001",
  "check_type": "contrast",
  "screen_name": "LoginScreen",
  "foreground_color": "#9CA3AF",
  "background_color": "#FFFFFF",
  "contrast_ratio": 2.85,
  "required_ratio": 4.5,
  "passed": false,
  "wcag_criterion": "1.4.3",
  "wcag_level": "AA",
  "checked_at": "2026-03-26T07:00:00Z"
}
POST /api/v1/wcag-compliance-checks/api/v1/wcag-compliance-checks

Run a new WCAG compliance check

Public

Request Example

{
  "check_type": "contrast",
  "screen_name": "ProfileScreen",
  "foreground_color": "#374151",
  "background_color": "#F9FAFB"
}

Response Example

{
  "id": "wcc-003",
  "check_type": "contrast",
  "screen_name": "ProfileScreen",
  "foreground_color": "#374151",
  "background_color": "#F9FAFB",
  "contrast_ratio": 9.72,
  "required_ratio": 4.5,
  "passed": true,
  "wcag_criterion": "1.4.3",
  "wcag_level": "AA",
  "checked_at": "2026-03-26T12:00:00Z"
}
PUT /api/v1/wcag-compliance-checks/api/v1/wcag-compliance-checks/:id

Update the WCAG level target or rerun configuration for a check

Public

Request Example

{
  "wcag_level": "AAA"
}

Response Example

{
  "id": "wcc-003",
  "check_type": "contrast",
  "screen_name": "ProfileScreen",
  "wcag_level": "AAA",
  "required_ratio": 7,
  "passed": false,
  "updated_at": "2026-03-26T12:01:00Z"
}
DELETE /api/v1/wcag-compliance-checks/api/v1/wcag-compliance-checks/:id

Delete a WCAG compliance check record

Public

Response Example

{
  "message": "Compliance check wcc-003 deleted"
}
POST /api/v1/wcag-compliance-checks/api/v1/wcag-compliance-checks/touch-target

Check if a widget meets the minimum 44x44dp touch target size requirement

Public

Request Example

{
  "widget_key": "icon-btn-notifications",
  "screen_name": "TopBar",
  "width_dp": 32,
  "height_dp": 32
}

Response Example

{
  "widget_key": "icon-btn-notifications",
  "screen_name": "TopBar",
  "width_dp": 32,
  "height_dp": 32,
  "required_dp": 44,
  "passed": false,
  "wcag_criterion": "2.5.5",
  "recommendation": "Increase touch target to at least 44x44dp using padding or GestureDetector wrapper"
}
POST /api/v1/wcag-compliance-checks/api/v1/wcag-compliance-checks/semantic-completeness

Validate that a semantic tree contains all required accessibility attributes

Public

Request Example

{
  "screen_name": "AppointmentBookingForm",
  "semantic_tree": {
    "root": "appointment-form",
    "nodes": [
      {
        "key": "date-picker",
        "label": "Appointment date",
        "role": "textField",
        "hint": "Select date"
      },
      {
        "key": "time-picker",
        "label": null,
        "role": "button",
        "hint": null
      }
    ]
  }
}

Response Example

{
  "screen_name": "AppointmentBookingForm",
  "total_nodes": 2,
  "passed_nodes": 1,
  "failed_nodes": 1,
  "passed": false,
  "issues": [
    {
      "node_key": "time-picker",
      "missing": [
        "label",
        "hint"
      ],
      "wcag_criterion": "1.3.1"
    }
  ]
}
POST /api/v1/wcag-compliance-checks/api/v1/wcag-compliance-checks/reports

Generate a full WCAG compliance report for a named screen

Public

Request Example

{
  "screen_name": "PatientRegistration",
  "wcag_level": "AA"
}

Response Example

{
  "id": "wcag-report-007",
  "screen_name": "PatientRegistration",
  "wcag_level": "AA",
  "generated_at": "2026-03-26T12:05:00Z",
  "overall_passed": false,
  "summary": {
    "contrast_checks": {
      "passed": 8,
      "failed": 2
    },
    "touch_target_checks": {
      "passed": 12,
      "failed": 0
    },
    "semantic_completeness_checks": {
      "passed": 15,
      "failed": 1
    }
  },
  "critical_issues": [
    "Label text on 'helper-text' has contrast ratio 2.1:1",
    "'submit-btn-secondary' missing accessible label"
  ]
}

Additional Metadata

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