Skip to content
This repository is currently being migrated. It's locked while the migration is in progress.

Updated a11y for travel claim flow#13383

Open
matthew-df wants to merge 6 commits into
developfrom
bug/12558-travel-claims-flow-a11y
Open

Updated a11y for travel claim flow#13383
matthew-df wants to merge 6 commits into
developfrom
bug/12558-travel-claims-flow-a11y

Conversation

@matthew-df
Copy link
Copy Markdown
Contributor

There is no requirement to implement the suggestions but please respond to Copilot review comments in some way. Unaddressed comments will prevent the PR from moving to the QA process.

Description of Change

Updated the a11y focusing to reset the screen reader focus to the top of the screen when moving through the travel claim details flow. This also affects anywhere with a multi-step including file request and submitting evidence.

Target Release Date

Link to Issue

Closes #12558

Code testing

  • Unit tests have been created or updated to cover this change
  • End to end (Detox) tests have been added or updated as needed

Pre-QA Artifacts

Include all artifacts or select not applicable and explain below.

  • Screenshots or screen recording at factory default settings (before and after, if applicable) in portrait orientation
  • Screenshots in landscape orientation
  • Screenshots at 2x text size
  • Screen recording of interaction using VoiceOver (iOS) and/or TalkBack (Android)
  • Visual artifacts not applicable to this PR (explain why below)
    No visual changes but here is the screen reader interaction in iOS and Android
ScreenRecording_05-05-2026.07-27-06_1.MP4
Screen_recording_20260505_071923.mp4
How to capture these

Screenshots & Video

2x text size

  • iOS Dynamic Type: Settings > Accessibility > Display & Text Size > Larger Text. Toggle ON, move slider.
  • Android Font Scale: Settings > Accessibility > Display size and text. Adjust Font size and Display size sliders.

VoiceOver / TalkBack (best on actual hardware)

Test Context for QA

How does a user get here?

Feature Flags

Risk Assessment:

  • Low (UI polish, copy change, isolated component)
  • Medium (New feature, non-core path)
  • High (Changes to Core Features: Login, Claims, Rx, Secure Messaging, major updates to a backend service, etc.)

What should QA pay extra attention to?

Test Review

Test User(s)


Checklist for QA

QA Engineer: Check off the items below as you test

  • Shared Test Script executed (post results as a PR comment)
  • Feature-specific verification based on QA Test Context above
  • Tested on iOS
  • Tested on Android

Run a build for this branch

Copilot AI review requested due to automatic review settings May 5, 2026 14:34
@matthew-df matthew-df requested a review from a team as a code owner May 5, 2026 14:34
@flagship-mobile-app flagship-mobile-app Bot requested a review from a team May 5, 2026 14:36
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves accessibility in the multi-step travel claim (and other multi-step) flows by resetting screen reader focus to the top-of-screen header when navigating between steps, addressing issue #12558.

Changes:

  • Adds a focus ref to MultiStepSubtask and triggers header focus reset on step navigation events.
  • Extends FullScreenSubtask to accept an optional headerRef and forwards it into the header.
  • Updates HeaderBanner to support an externally provided ref (customRef) and uses it as the active focus target.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
VAMobile/src/components/Templates/MultiStepSubtask.tsx Adds accessibility focus handling to reset focus on step transitions via navigator listeners.
VAMobile/src/components/Templates/HeaderBanner.tsx Introduces customRef to allow external control of which header element receives accessibility focus.
VAMobile/src/components/Templates/FullScreenSubtask.tsx Adds headerRef prop and forwards it to HeaderBanner to support multi-step focus resets.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread VAMobile/src/components/Templates/MultiStepSubtask.tsx
Comment thread VAMobile/src/components/Templates/HeaderBanner.tsx
Comment thread VAMobile/src/components/Templates/FullScreenSubtask.tsx
…a-mobile-app into bug/12558-travel-claims-flow-a11y
AdryienH
AdryienH previously approved these changes May 5, 2026
@digitalken digitalken self-assigned this May 5, 2026
Comment thread VAMobile/src/components/Templates/MultiStepSubtask.tsx
Comment on lines +6 to +17
import { ParamListBase, useFocusEffect } from '@react-navigation/native';
import { TransitionPresets, createStackNavigator } from '@react-navigation/stack';



import { useSnackbar } from '@department-of-veterans-affairs/mobile-component-library';



import { FullScreenSubtask, FullScreenSubtaskProps } from 'components';
import { useAccessibilityFocus } from 'utils/hooks';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit of extra spacing here

digitalken
digitalken previously approved these changes May 7, 2026
Copy link
Copy Markdown
Contributor

@digitalken digitalken left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. Looks good on iOS and Android.

2. Accessibility

Reference: Accessibility Testing Plan

  • All interactive elements are reachable and operable via VoiceOver (iOS)
  • All interactive elements are reachable and operable via TalkBack (Android)
  • Screen reader announces elements in a logical reading order
  • Headings are properly leveled (no skipped levels)
  • Actionable elements have meaningful accessible labels (no bare "Button", "Link", etc.)
  • Focus is managed correctly after navigation or modal dismiss
  • Color is not the sole means of conveying information

6. Platform Parity

  • Tested on iOS (simulator or device)
  • Tested on Android (emulator or device)
  • Behavior is consistent across platforms (or platform-specific behavior is intentional and documented)

7. Data and State

  • Works with expected/valid test data (happy path)

8. Feature-Specific Verification

These checks are informed by the QA Test Context section of the PR.

  • Happy path: Navigate to the feature using the path described in the PR and verify it works as described

AdryienH
AdryienH previously approved these changes May 7, 2026
@matthew-df matthew-df dismissed stale reviews from AdryienH and digitalken via 891331f May 7, 2026 16:36
@flagship-mobile-app flagship-mobile-app Bot requested a review from a team May 7, 2026 16:40
Copy link
Copy Markdown
Contributor

@digitalken digitalken left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BUG - [Sev-3] - [All] - Screen reader doesn't begin at top of each new page in Travel Claim flow

4 participants