Skip to content

[PM-42022] fix: Drivers License accessibility fixes - #3012

Draft
morganzellers-bw wants to merge 4 commits into
mainfrom
pm-32807-drivers-license-type-fixes
Draft

[PM-42022] fix: Drivers License accessibility fixes#3012
morganzellers-bw wants to merge 4 commits into
mainfrom
pm-32807-drivers-license-type-fixes

Conversation

@morganzellers-bw

@morganzellers-bw morganzellers-bw commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

🎟️ Tracking

  • PM-42022 - View screen show/hide toggle has a generic button announcement
  • PM-42020 - Add & Edit Screen: show/hide toggle name announcement is not custom by line item
  • PM-42027 - Entered characters are not announced individually
  • PM-42021 - MP Re-prompt information icon is not announced and can't be accessed

📔 Objective

Adds a batch of VoiceOver accessibility fixes under the Drivers License item type, mirroring the same batch of fixes already shipped for Bank Account in #2985:

  • View/Add-Edit screen toggles now announce which field they control instead of generic "Password"/"Toggle Visibility" wording
  • The license number spells out its characters individually to VoiceOver when visible, instead of being read as a whole number/word
  • The Master Password Re-prompt info icon is independently announced and reachable instead of being swallowed by the toggle row

The overflow ("more options") menu fix (PM-42026) is stacked on top in #3013, since it grew into a larger shared-component rework and made sense to track as its own PR.

📸 Screenshots

@morganzellers-bw morganzellers-bw added the ai-review Request a Claude code review label Sep 2, 2026
@github-actions github-actions Bot added app:password-manager Bitwarden Password Manager app context app:authenticator Bitwarden Authenticator app context t:bug Change Type - Bug labels Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

🤖 Bitwarden Claude Code Review

Overall Assessment: APPROVE

Reviewed the VoiceOver accessibility changes across BitwardenTextField, PasswordText, PasswordVisibilityButton, the Drivers License add/edit and view screens, and the master password re-prompt toggle in AddEditItemView. Verified that every BitwardenTextField initializer assigns the new passwordVisibilityFieldName, that the two new Localizable.strings keys follow the existing %1$@ convention and feed the gitignored SwiftGen output, that speechSpellsOutCharacters(_:) is available at the project's iOS 15.0 deployment target, and that PasswordText's new defaulted property keeps the existing memberwise call sites compiling. Confirmed the BitwardenToggle accessory: initializer and the find(toggleWithAccessibilityLabel:) / find(buttonWithAccessibilityLabel:) helpers already exist on main, and that AutoFillView uses the same accessory + accessibilityHint(externalLink) pattern the re-prompt toggle now adopts. Checked all other PasswordVisibilityButton call sites — none applies its own .accessibilityLabel, and their tests locate the button by accessibility identifier, so newly honoring the previously-unused accessibilityLabel property adds a default announcement without shadowing a call-site label or breaking existing assertions.

Code Review Details

No findings.

@morganzellers-bw
morganzellers-bw marked this pull request as draft September 2, 2026 14:37
@morganzellers-bw
morganzellers-bw force-pushed the pm-32807-drivers-license-type-fixes branch from 97dc5ed to 91603d2 Compare September 2, 2026 14:37
@codecov

codecov Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.59%. Comparing base (33d3ff3) to head (f661821).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3012      +/-   ##
==========================================
+ Coverage   79.57%   79.59%   +0.01%     
==========================================
  Files        1169     1169              
  Lines       75195    75219      +24     
==========================================
+ Hits        59838    59868      +30     
+ Misses      15357    15351       -6     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@morganzellers-bw
morganzellers-bw force-pushed the pm-32807-drivers-license-type-fixes branch from 91603d2 to 5ab90ec Compare September 2, 2026 16:17
…icense view toggles

The View screen's license number visibility toggle used PasswordVisibilityButton's
generic "Toggle Visibility" wording because the button never applied its own
accessibilityLabel property to the underlying control. Fix the bug in the shared
component and wire the Drivers License view to announce the field name.
…icense add/edit toggles

The Add/Edit license number visibility toggle announced generic "Password"
wording because BitwardenTextField's show/hide button hardcoded that label
regardless of field type. Add an opt-in field name parameter and wire the
Drivers License number field to announce its own name.
…ly to VoiceOver

The View screen's masked license number is rendered as plain Text, which
VoiceOver reads as a single word rather than spelling out each character.
Add an opt-in flag using the native speechSpellsOutCharacters modifier and
enable it for the license number field.
…o icon to VoiceOver

The info button was nested inside the toggle's title HStack, so VoiceOver
collapsed the whole row into a single unreachable element. Move the button
into BitwardenToggle's accessory slot, which keeps it independently
reachable, and announce it as an external link.
@morganzellers-bw
morganzellers-bw force-pushed the pm-32807-drivers-license-type-fixes branch from 5ab90ec to f661821 Compare September 2, 2026 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review Request a Claude code review app:authenticator Bitwarden Authenticator app context app:password-manager Bitwarden Password Manager app context t:bug Change Type - Bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant