bitwarden / bitwarden/ios

[PM-41480] "Show/reveal" controls have a non-standard VoiceOver label

Open
#2,933 1 comment 0 reactions 0 assignees View on GitHub
app:password-manager bug
Dominant language
Swift
Stars
684
Forks
154
Avg merge
7d 2h
Merged PRs (30d)
32

Description

### Steps To Reproduce

1. Enable VoiceOver, which can be done from "system settings > accessibility".
2. Go to any item in your vault that includes a hidden field. This includes login, cards and identities.
3. Use the standard VoiceOver gesture (left to right swipe), to scroll through the controls like "reveal" and "copy".

### Expected Result

VoiceOver, for the most part, can detect each button by its spoken label, such as "copy", "save", et cetera. This should also be the case for the show/reveal button.

### Actual Result

The spoken label for the reveal button appears to b "eye24". This is understandably very confusing for VoiceOver screen-reader users. As stated above, this is in any context, in any entry type where this kind of control appears.

### Screenshots or Videos

_No response_

### Additional Context

For those that may not be aware, VoiceOver is Apple's screen-reader for visually impaired users. It can be activated in ">system settings > accessibility".

### Build Version

2026.7.0

### What server are you connecting to?

US

### Self-host Server Version

_No response_

### Environment Details

iPhone SE 2020, IOS 26.5

### 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

Open the contributing guide

Research direction

Start by reproducing the issue on an iPhone with VoiceOver enabled, then inspect the reveal controls used by login, card, and identity items. Confirm which accessibility label produces “eye24” and update the relevant controls so VoiceOver announces a clear show or reveal label in every listed context. Done means the label is correct across all affected entry types.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
accessibility, mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.