🎨 Palette: Link hotkey inputs to header for accessibility - #427
🎨 Palette: Link hotkey inputs to header for accessibility#427google-labs-jules[bot] wants to merge 3 commits into
Conversation
|
👋 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 New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Review: Link hotkey inputs to header for accessibilityWhat this PR does: Adds Overall assessment: Changes requested — this is a net regression, not an improvement. Blocking issue:
|
| Control | Existing accessible name via x:Uid |
|---|---|
ComboBox (Settings_HotkeyModifier) |
"Hotkey modifier" |
TextBox (Settings_HotkeyKey) |
"Hotkey key" |
In UI Automation, AutomationProperties.LabeledBy takes precedence over AutomationProperties.Name. After this change both controls would announce "Global Hotkey" instead of their specific names. A screen reader user tabbing between them would hear the same phrase twice with no way to distinguish the modifier picker from the key input — strictly worse than the status quo.
The LabeledBy syntax is correct but the application is wrong
The CLAUDE.md rule that LabeledBy must use {Binding ElementName=...} (not {x:Bind}) is followed correctly. The problem is that LabeledBy should only be applied when a control lacks its own accessible name. These controls already have well-scoped names through x:Uid.
Palette entry records the wrong lesson
The new .jules/palette.md entry advises using LabeledBy on controls that share a group header without dedicated labels. That advice is reasonable in isolation, but the action here was taken against controls that did have dedicated labels, so the entry encodes a flawed mental model. See the inline comment for a corrected version of the learning.
Required changes
- Remove
AutomationProperties.LabeledByfrom both the ComboBox and the TextBox inSettingsWindow.xaml. - Remove or correct the
.jules/palette.mdentry — the existing control names viax:Uidalready satisfy the accessibility requirement; no structural change is needed here.
@jules please address the issues noted above
Thank you for the review. I have reverted the incorrect application of |
Review — second push (synchronize)What the PR doesThe original commit added Thread resolutionAll three prior review threads are now outdated and their underlying concerns are addressed:
Blocking issue —
|
Thank you for the review. I have removed the |
Review SummaryWhat this PR does (current state)The original PR attempted to improve accessibility by adding After the review feedback on this sync, the branch has been corrected. The net diff vs. main now only contains one change: a 3-line addition to Thread ResolutionAll four prior review threads have now been resolved:
Assessment of the remaining change
The new entry is accurate:
One minor observation: the PR description still describes the original (now-reverted) XAML intent. Not a blocker, but updating it to reflect "reverted bad LabeledBy changes + added corrected palette entry" would make the history clearer. VerdictNo blocking issues remain. The branch is clean — only the documentation addition to |
💡 What: Added
x:Name="HotkeyHeader"to the "Hotkey" settings section header and appliedAutomationProperties.LabeledBy="{Binding ElementName=HotkeyHeader}"to its associated modifierComboBoxand keyTextBox.🎯 Why: To provide context to screen reader users when interacting with the hotkey inputs, as they previously had no explicit programmatically linked labels.
♿ Accessibility: Screen readers will now announce the inputs as belonging to the "Hotkey" section, improving navigability and understanding for visually impaired users.
PR created automatically by Jules for task 10757027313577988780 started by @mikekthx