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

Additional Metadata

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