-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Description
Action Performed:
Precondition: User is logged in
- Using iOS VoiceOver or Android TalkBack, open the app
- Swipe to focus the Reports tab and double-tap to activate it
- Swipe to focus an expense report with expenses to be submitted and double-tap to activate it
- Swipe to focus any expense and double-tap to activate it
- Swipe to focus the More button and double-tap to activate it
- Swipe to focus the Split option in the dialog and double-tap to activate it
- 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.
- Do not set accessible={true} on the parent container - This prevents iOS from focusing child elements in the container.
- Wrap the parent’s operable area in its own Pressable - This is what receives focus as "button".
- 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
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