Skip to content

🎨 Palette: Add accessibility labels to icon-only buttons in PasswordScreen#62

Open
TargetMisser wants to merge 3 commits intomainfrom
palette-a11y-password-screen-16255976289391694001
Open

🎨 Palette: Add accessibility labels to icon-only buttons in PasswordScreen#62
TargetMisser wants to merge 3 commits intomainfrom
palette-a11y-password-screen-16255976289391694001

Conversation

@TargetMisser
Copy link
Copy Markdown
Owner

💡 What: Added accessibilityRole="button" and English accessibilityLabel descriptions to icon-only TouchableOpacity instances (show/hide password, edit, delete) in PasswordScreen.tsx.
🎯 Why: Without these props, screen reader users (VoiceOver/TalkBack) hear only "Button" or nothing at all when focusing on these actions, making the password management functionality inaccessible.
📸 Before/After: Visuals remain unchanged.
♿ Accessibility: Ensures full usability of password management for visually impaired users by explicitly describing button actions.


PR created automatically by Jules for task 16255976289391694001 started by @TargetMisser

…creen

Co-authored-by: TargetMisser <52361977+TargetMisser@users.noreply.github.com>
@google-labs-jules
Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 8, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
flight-work-app Ready Ready Preview, Comment, Open in v0 Apr 8, 2026 1:37am

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves accessibility on the Password screen by adding screen-reader metadata to icon-only action buttons so VoiceOver/TalkBack can announce meaningful actions.

Changes:

  • Added accessibilityRole="button" + accessibilityLabel to the per-row show/hide password icon button.
  • Added accessibilityRole="button" + accessibilityLabel to the per-row edit/delete icon buttons.
  • Added accessibilityRole="button" + accessibilityLabel to the modal show/hide password icon button.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +129 to +144
<TouchableOpacity
style={s.editBtn}
onPress={onEdit}
accessible={true}
accessibilityRole="button"
accessibilityLabel="Edit password"
>
<MaterialIcons name="edit" size={17} color={colors.primary} />
</TouchableOpacity>
<TouchableOpacity style={s.delBtn} onPress={onDelete}>
<TouchableOpacity
style={s.delBtn}
onPress={onDelete}
accessible={true}
accessibilityRole="button"
accessibilityLabel="Delete password"
>
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

accessibilityLabel is hardcoded as "Edit password" / "Delete password". Besides not being localized, these buttons act on an entry (name/username/notes), not only the password field. Consider using translated strings (via t(...)) and wording like "Edit entry" / "Delete entry" (or include the entry name to disambiguate when navigating by buttons).

Copilot uses AI. Check for mistakes.
style={s.eyeModal}
accessible={true}
accessibilityRole="button"
accessibilityLabel={showPw ? "Hide password" : "Show password"}
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The modal eye icon accessibilityLabel is hardcoded in English ("Show/Hide password"), which will be announced even when the app language is Italian. Please use i18n (t(...)) for these labels (add translation keys if necessary) so screen reader output matches the selected language.

Suggested change
accessibilityLabel={showPw ? "Hide password" : "Show password"}
accessibilityLabel={showPw ? t('hidePassword') : t('showPassword')}

Copilot uses AI. Check for mistakes.
Comment on lines +116 to +122
<TouchableOpacity
onPress={() => setRevealed(r => !r)}
style={s.eyeBtn}
accessible={true}
accessibilityRole="button"
accessibilityLabel={revealed ? "Hide password" : "Show password"}
>
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new accessibilityLabel strings are hardcoded in English ("Show/Hide password"). This screen already uses useLanguage().t(...) and the app defaults to Italian, so screen readers will announce mixed-language UI. Please source these labels from the i18n translations (add dedicated keys if needed) and use t(...) here so they match the selected language.

Copilot uses AI. Check for mistakes.
…creen

Co-authored-by: TargetMisser <52361977+TargetMisser@users.noreply.github.com>
…creen

Co-authored-by: TargetMisser <52361977+TargetMisser@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants