Summary Accessibility Provider
API Contract
REST
/api/v1/accessibility
9 endpoints
GET
/api/v1/accessibility/api/v1/accessibility
List all registered accessibility configurations
Public
Response Example
{
"data": [
{
"id": "acc_slide_1",
"slide_id": "slide_total_hours",
"announcement": "Slide 1 of 7: You logged 312.5 hours of mentoring in 2025",
"reduced_motion_enabled": false,
"created_at": "2026-01-06T08:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 7
}
}
GET
/api/v1/accessibility/api/v1/accessibility/:id
Get accessibility configuration for a specific resource
Public
Response Example
{
"id": "acc_slide_1",
"slide_id": "slide_total_hours",
"announcement": "Slide 1 of 7: You logged 312.5 hours of mentoring in 2025",
"reduced_motion_enabled": false,
"contrast_foreground": "#FFFFFF",
"contrast_background": "#1A1A2E",
"contrast_ratio": 16.2,
"passes_wcag_aa": true,
"passes_wcag_aaa": true
}
POST
/api/v1/accessibility/api/v1/accessibility
Create an accessibility configuration for a slide
Public
Request Example
{
"slide_id": "slide_milestone_unlock",
"announcement": "Slide 5 of 7: You unlocked the 300 Hours milestone on November 22, 2025",
"contrast_foreground": "#FFD700",
"contrast_background": "#1A1A2E"
}
Response Example
{
"id": "acc_slide_5",
"slide_id": "slide_milestone_unlock",
"announcement": "Slide 5 of 7: You unlocked the 300 Hours milestone on November 22, 2025",
"contrast_foreground": "#FFD700",
"contrast_background": "#1A1A2E",
"contrast_ratio": 9.1,
"passes_wcag_aa": true,
"passes_wcag_aaa": false
}
PUT
/api/v1/accessibility/api/v1/accessibility/:id
Update accessibility configuration for a slide
Public
Request Example
{
"announcement": "Slide 5 of 7: Congratulations! You earned the 300-Hour Mentor badge on November 22nd",
"contrast_foreground": "#FFFFFF",
"contrast_background": "#1A1A2E"
}
Response Example
{
"id": "acc_slide_5",
"slide_id": "slide_milestone_unlock",
"announcement": "Slide 5 of 7: Congratulations! You earned the 300-Hour Mentor badge on November 22nd",
"contrast_foreground": "#FFFFFF",
"contrast_background": "#1A1A2E",
"contrast_ratio": 16.2,
"passes_wcag_aa": true,
"passes_wcag_aaa": true
}
DELETE
/api/v1/accessibility/api/v1/accessibility/:id
Delete an accessibility configuration
Public
Response Example
{
"deleted": true,
"id": "acc_slide_5"
}
GET
/api/v1/accessibility/api/v1/accessibility/slides/:slide_id/announcement
Get screen reader announcement text for a specific summary slide
Public
Response Example
{
"slide_id": "slide_total_hours",
"announcement": "Slide 1 of 7: You logged 312.5 hours of mentoring in 2025, placing you in the top 8% of mentors on the platform"
}
GET
/api/v1/accessibility/api/v1/accessibility/motion-settings
Get the device reduced-motion accessibility preference
Public
Response Example
{
"reduced_motion_enabled": false,
"animation_scale": 1,
"source": "device_settings"
}
POST
/api/v1/accessibility/api/v1/accessibility/contrast-validation
Validate WCAG contrast ratio between foreground and background colors
Public
Request Example
{
"foreground_color": "#FFD700",
"background_color": "#1A1A2E"
}
Response Example
{
"foreground_color": "#FFD700",
"background_color": "#1A1A2E",
"contrast_ratio": 9.1,
"passes_wcag_aa": true,
"passes_wcag_aa_large": true,
"passes_wcag_aaa": false,
"passes_wcag_aaa_large": true
}
POST
/api/v1/accessibility/api/v1/accessibility/announcements
Post a message to be announced by the device screen reader
Public
Request Example
{
"message": "Your 2025 Annual Impact Summary has finished loading",
"priority": "polite"
}
Response Example
{
"announced": true,
"message": "Your 2025 Annual Impact Summary has finished loading",
"priority": "polite",
"timestamp": "2026-01-06T09:00:00Z"
}