Service Layer medium complexity backend
0
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

A backend service that runs automated WCAG 2.2 AA compliance checks against screen definitions and UI component trees. It evaluates contrast ratios, touch target sizes, semantic label completeness, and drag-alternative coverage, producing a structured audit report. The service integrates into CI pipelines to block regressions before release.

Feature: WCAG 2.2 AA Compliance

accessibility-audit-service

Sources & reasoning

Lines 28 and 30 declare WCAG 2.2 AA an absolute MVP requirement with no organizational exemptions, and line 321 repeats this explicitly under Fase 1 scope. The priority matrix (line 143) marks it MUST HAVE Phase 1 for all five organizations. This is the strongest mandate in the source doc, directly placing target_release at MVP with no ambiguity.

  • docs/source/likeperson.md · line 28
    Appen SKAL oppfylle WCAG 2.2 nivå AA som minimumskrav for alle skjermer og interaksjoner - fra dag én, for alle organisasjoner. Ingen organisasjon er unntatt eller utsatt til senere fase.
  • docs/source/likeperson.md · line 30
    WCAG 2.2 AA compliance er et absolutt krav for MVP - ikke noe som fikses etterpå.
  • docs/source/likeperson.md · line 321
    WCAG 2.2 AA compliance fra dag én - for alle organisasjoner, uten unntak

Responsibilities

  • Evaluate colour contrast ratios for all text and UI elements against the 4.5:1 (normal text) and 3:1 (large text) thresholds
  • Verify touch target dimensions meet the 24x24px minimum and flag violations with element identifiers
  • Check that all interactive elements carry semantic labels consumable by VoiceOver and TalkBack
  • Detect drag-only interactions and confirm non-drag alternatives exist for each
  • Produce structured audit reports with severity levels and suggested remediation steps

Interfaces

runAudit(screenDefinition: ScreenSpec): AuditReport
checkContrastRatio(foreground: Color, background: Color): ContrastResult
validateTouchTargets(elements: UIElement[]): TouchTargetReport
validateSemanticLabels(tree: AccessibilityTree): LabelReport
generateCIReport(auditReports: AuditReport[]): CISummary