OTP item context menus (tap and hold) not accessible with VoiceOver screen reader
- Dominant language
- Swift
- Stars
- 684
- Forks
- 154
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 24
Description
### Steps To Reproduce
(Requires knowledge of using iOS’ VoiceOver feature)
1. Enable VoiceOver in iOS Settings > Accessibility
2. Open BitWarden Authenticator
3. Open the context menu of an OTP item (with VoiceOver, double-tap and hold or triple tap)
4. Attempt to navigate the context menu to choose the Copy, Edit or Delete options
### Expected Result
VoiceOver should read each menu item (Copy / Edit / Delete) as they are focused, and double tapping should activate the focused item.
### Actual Result
VoiceOver does not select either item, instead only focussing the “dismiss context menu” option.
### Screenshots or Videos
https://github.com/user-attachments/assets/a689c8c2-3608-4590-a920-8973305d0b15
### Additional Context
_No response_
### Build Version
2025.2.0 (82)
### What server are you connecting to?
US
### Self-host Server Version
_No response_
### Environment Details
- iPhone 14 Pro Max
- iOS 18.4 Beta 4 (though I believe the issue occurred on iOS 18.3 as well)
### Issue Tracking Info
- [x] I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
Contributor guide
Research direction
Start by reproducing the OTP item context-menu flow with VoiceOver on an iPhone, using the steps and video in the issue. Then locate the OTP item context-menu entry point and inspect why Copy, Edit, and Delete are not focusable or activatable; done means VoiceOver reads each option and double-tapping activates the focused action.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, swift
- Domain
- accessibility, mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100