Service Layer medium complexity Shared Component mobile
0
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

Manages programmatic focus movement and keyboard/switch-access navigation order throughout the app. It ensures focus is placed on the correct element after screen transitions, modal openings, and dynamic content updates, and it provides non-gesture alternatives for all drag interactions. It also traps focus within modals and dialogs per WCAG 2.4.3.

Feature: WCAG 2.2 AA Compliance

focus-management-service

Sources & reasoning

Lines 28 and 30 declare WCAG 2.2 AA a hard MVP requirement with no exceptions and no deferrals across all organizations. Lines 31-38 enumerate specific sub-requirements (screen reader, contrast, touch targets, keyboard, drag alternatives). Blueprint marks this feature [MVP]. Source doc phase matrix (§4) lists WCAG as Fase 1, confirming MVP target_release.

  • 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.
  • **WCAG 2.2 AA compliance** er et absolutt krav for MVP - ikke noe som fikses etterpå.

Responsibilities

  • Move focus to the appropriate element after route or screen transitions
  • Trap and release focus within modal overlays and bottom sheets
  • Expose keyboard-navigable alternatives for all drag-and-drop or swipe interactions
  • Maintain a visible focus indicator by coordinating with AccessibilityDesignTokens
  • Announce dynamic content changes to screen readers via accessibility live regions

Interfaces

moveFocusTo(elementRef: ElementRef): void
trapFocus(containerRef: ElementRef): FocusTrap
releaseFocus(trap: FocusTrap): void
registerDragAlternative(interaction: DragInteraction, alternative: KeyboardAction): void
announceUpdate(message: string, politeness: LiveRegionPoliteness): void