Skip to content

[Due for payment 2026-04-07] [$250] Screen Reader: Global: Incorrect initial focus when opening the screen #77370

@elisenwazuoke

Description

@elisenwazuoke

Action Performed:

Precondition: User is logged in

  1. Using VoiceOver on iOS or TalkBack on Android, open the app
  2. Swipe right to focus the Account tab and double-tap to activate it
  3. Swipe right to focus the Profile button and double-tap to activate it
  4. Swipe right to focus the Status menu item and double-tap to activate it
  5. Note where focus lands when the Status screen loads

This is a global issue occurring in all screens with one text field
Examples:

  1. On Security > Merge accounts: focus moved to "Phone or email" text field
  2. On Security > Merge Accounts > Enter Code: focus moved to magic code field
  3. Profile > Contact methods > Verify email: focus moved to magic code field
  4. Profile > Pronouns: focus moved to Pronouns text field
  5. Profile > Status > Vacation delegate: focus moved to "name, Email or phone number" text field
  6. Profile > Timezone > Timezone: focus moved to "timezone" text field
  7. Profile > Phone number: focus moved to "Phone number" text field
  8. Profile > Address > Country: focus moved to "Country" text field
  9. Profile > Address > State: focus moved to "State" text field
  10. Preferences > Payment currency: focus moves to Search text field
  11. New Workspace > Confirm workspace: focus moves to "Workspace name" text field
  12. New Workspace > Confirm workspace > Default currency: focus moves to Search text field

Expected Result:

When the screen opens, focus should land on the first meaningful interactive element at the top of the screen, for example: the Back button or the screen heading.
Users must be able to review all content starting from the top and proceed linearly.

Actual Result:

Upon opening the screen, focus jumps directly to the text field.
All elements located at the top of the screen (headers, introductory text, buttons, tabs, or filters - depending on the page) are skipped entirely.
Screen reader users miss critical context and navigation options.

Area issue was found in:

Profile > Status

Failed WCAG checkpoints

WCAG 2.4.3 Focus Order
https://www.w3.org/WAI/WCAG22/Understanding/focus-order

User impact:

People with mobility impairments who must rely on keyboard access for operating a page benefit from a logical, usable focus order. People with vision impairments or disabilities that make reading difficult can become disoriented when tabbing takes focus someplace unexpected or when they cannot easily find the content surrounding an interactive element. Only a small portion of the page may be visible to an individual using a screen magnifier at a high level of magnification. Such a user may interpret a field in the wrong context if the focus order is not logical.

Suggested resolution:

Ensure that upon opening a new layout, the screen reader focus is moved to the first element.
https://appt.org/en/docs/react-native/samples/accessibility-focus

Environment(s)

Apple iPhone 14 Pro - iOS 18.7.1, Wi-Fi - Native (No mobile browser)
Samsung Galaxy Note10 Plus - Android 12, H0T Mobile - Native (No mobile browser)

Screenshots/Videos

Image
Bug7006135_1763523142173.Incorrect_initial_focus_when_opening_the_screen.mp4

Version Number: Production
Reproducible in staging?: NA
Reproducible in production?: Yes
Email or phone of affected tester (no customers): NA
Logs: https://stackoverflow.com/c/expensify/questions/4856 NA
Notes/Photos/Videos: Any additional supporting documentation Yes
Expensify/Expensify Issue URL: https://platform.applause.com/company/12102/products/36628/community-issues/7006135
Issue reported by: NA
Slack conversation: NA

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~022016981022159527852
  • Upwork Job ID: 2016981022159527852
  • Last Price Increase: 2026-01-29
Issue OwnerCurrent Issue Owner: @mallenexpensify

Metadata

Metadata

Labels

AccessibilityIssues affecting WACG accessibility on any platform.Awaiting PaymentAuto-added when associated PR is deployed to productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2ExternalAdded to denote the issue can be worked on by a contributorOverdue

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions