Skip to content

[$250] Screen Reader: Split Expense: Elements of each row are grouped, cannot focus/activate separately #77465

@olenamihno

Description

@olenamihno

Action Performed:

Precondition: User is logged in

  1. Using iOS VoiceOver or Android TalkBack, open the app
  2. Swipe to focus the Reports tab and double-tap to activate it
  3. Swipe to focus an expense report with expenses to be submitted and double-tap to activate it
  4. Swipe to focus any expense and double-tap to activate it
  5. Swipe to focus the More button and double-tap to activate it
  6. Swipe to focus the Split option in the dialog and double-tap to activate it
  7. Swipe to focus the splits and note if the amount text field is operable and receives focus

Expected Result:

VoiceOver users should be able to focus and interact with the amount text field.
The container button must not trap the text field or prevent it from receiving focus.

Actual Result:

The elements of each row are grouped, cannot be focused and activated separately.

Area issue was found in:

Split Expense

Failed WCAG checkpoints

WCAG 4.1.2 Name, Role, Value
https://www.w3.org/WAI/WCAG22/Understanding/name-role-value

User impact:

Providing role, state, and value information on all user interface components enables compatibility with assistive technology, such as screen readers, screen magnifiers, and speech recognition software, used by people with disabilities.

Suggested resolution:

Use two separate accessibility elements inside the same visual container.

  1. Do not set accessible={true} on the parent container - This prevents iOS from focusing child elements in the container.
  2. Wrap the parent’s operable area in its own Pressable - This is what receives focus as "button".
  3. Keep TextInput as a separate sibling element - VoiceOver sees it as a separate control.
    https://reactnative.dev/docs/textinput
    https://reactnative.dev/docs/accessibility#accessible

Environment:

Apple iPhone 14 Pro - iOS 18.7.1, Wi-Fi - Native (No mobile browser)

Screenshots/Videos

Image
Bug7007049_1763522789047.Amount_text_field_inside_split_expense_row_is_not_operable_with_VoiceOver.mp4

Version Number: Production
Reproducible in staging?: NA
Reproducible in production?: Yes
Email or phone of affected tester (no customers): No
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/7007049
Issue reported by: NA
Slack conversation: NA

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~022009685307531790574
  • Upwork Job ID: 2009685307531790574
  • Last Price Increase: 2026-01-21
Issue OwnerCurrent Issue Owner: @deetergp

Metadata

Metadata

Labels

AITriageMelvin Triage of an issueAccessibilityIssues affecting WACG accessibility on any platform.BugSomething is broken. Auto assigns a BugZero manager.ExternalAdded to denote the issue can be worked on by a contributorReviewingHas a PR in reviewWeeklyKSv2

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions