HIGH story-expense-type-selection-mutual-exclusion-coordinator-004 5 pts

User Story

As a Coordinator
I want the expense type picker to be fully operable with a screen reader, keyboard navigation, and large touch targets
So that I can register expenses accurately regardless of whether I have visual, motor, or cognitive accessibility needs

Acceptance Criteria

  • Given VoiceOver or TalkBack is active, when the expense type picker renders, then each card's accessibility label reads '[Type Name], [selected/not selected], [unavailable: reason if applicable]'
  • Given the peer mentor navigates with VoiceOver swipe gestures, when focus moves between expense type cards, then focus order follows visual top-to-bottom, left-to-right order
  • Given a mutual exclusion is triggered, when the state changes, then a live region announcement notifies the user without moving focus away from the current element
  • Given the expense type cards are rendered, when measured, then each interactive element has a minimum touch target size of 44 × 44 dp
  • Given the organisation has more than six expense types, when the picker renders, then only six types are shown initially with a clearly labelled 'Show more' control
  • Given the contrast ratio of text against card background is measured, when tested, then all text-background combinations meet a minimum ratio of 4.5:1 for normal text and 3:1 for large text

Business Value

All three workshop organisations serve users with diverse accessibility needs — Blindeforbundet requires screen reader support, NHF serves users with cognitive and motor impairments including stroke survivors, and HLF users may have hearing-related co-conditions. Accessibility is listed as a MUST HAVE in Phase 1 for all organisations. Failing to meet WCAG 2.2 AA in the expense registration flow would exclude a significant portion of the user base from one of the highest-frequency features, directly undermining the app's core value proposition of lowering administrative burden.