WCAG Compliance Checker
API Contract
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"
]
}