AccessibilityAuditService
Component Detail
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.
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 28Appen 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 30WCAG 2.2 AA compliance er et absolutt krav for MVP - ikke noe som fikses etterpå.
-
docs/source/likeperson.md · line 321WCAG 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