Skip to content

🎨 Palette: [UX improvement] Fix Ghost Tab Stops and VoiceOver Ambiguity - #206

Merged
NSEvent merged 1 commit into
mainfrom
ux/a11y-improvements-359915127547741611
Oct 22, 2026
Merged

NSEvent merged 1 commit into
mainfrom
ux/a11y-improvements-359915127547741611

Conversation

@NSEvent

@NSEvent NSEvent commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

💡 What

  • Replaced Button wrappers with .onTapGesture on list rows in MacroListView.swift and ScriptListView.swift.
  • Added specific index interpolations (\(index + 1)) to the Duplicate and Delete icon buttons in MacroEditorSheet.swift.

🎯 Why

  • Ghost Tab Stops: Wrapping list rows in a Button when they already contain explicit trailing actions creates duplicate Tab stops and redundant VoiceOver announcements.
  • Ambiguous Actions: The Duplicate and Delete buttons inside the Macro Editor list were previously announced universally as "Duplicate step", lacking context for which specific step they acted on.

♿ Accessibility

VoiceOver users can now correctly navigate directly to the Edit/Delete actions in macro and script lists without stopping on a redundant overarching container, and Macro Editor steps are uniquely identifiable.


PR created automatically by Jules for task 359915127547741611 started by @NSEvent

Summary by CodeRabbit

  • Usability
    • In macro and script lists, tapping the row’s content opens the editor; the separate pencil edit button remains available.
  • Accessibility
    • Duplicate and delete controls for macro steps now include the step number in their help text and accessibility labels, making the controls easier to distinguish.

Co-authored-by: NSEvent <44446865+NSEvent@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 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.

@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 0c2f01a4-c296-416a-ba34-4afd11b2d57a
📥 Commits

Reviewing files that changed from the base of the PR and between 502f8b1 and a362b2e.

📒 Files selected for processing: 4
  • .Jules/palette.md
  • XboxControllerMapper/XboxControllerMapper/Views/Macros/MacroEditorSheet.swift
  • XboxControllerMapper/XboxControllerMapper/Views/Macros/MacroListView.swift
  • XboxControllerMapper/XboxControllerMapper/Views/Scripts/ScriptListView.swift

Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 0 remain after this review.

📝 Walkthrough

Macro and script detail areas now invoke editing through tap gestures, while separate pencil buttons remain. Macro step duplicate and delete controls now include the step’s one-based index in their help text and accessibility labels.

Changes: Macro and script row interactions

Layer / File(s) Summary
Detail-area editing
.Jules/palette.md, XboxControllerMapper/XboxControllerMapper/Views/Macros/MacroListView.swift, XboxControllerMapper/XboxControllerMapper/Views/Scripts/ScriptListView.swift
Macro and script detail areas now invoke editing through tap gestures instead of plain-styled buttons. Separate pencil buttons remain. The palette documents this pattern and recommends item-specific labels for icon-only buttons in loops.
Macro step control labels
XboxControllerMapper/XboxControllerMapper/Views/Macros/MacroEditorSheet.swift
Duplicate and delete controls now include the step’s one-based index in their help text and accessibility labels.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to a362b

The accessibility changes are mergeable; no concrete regression was identified.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly summarizes the pull request's main accessibility changes: removing redundant tab stops and reducing VoiceOver ambiguity in list rows and macro-step actions.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@NSEvent
NSEvent merged commit 404ed4e into main Oct 22, 2026
2 checks passed
@NSEvent
NSEvent deleted the ux/a11y-improvements-359915127547741611 branch October 22, 2026 09:34
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.

1 participant