Skip to content

Tooltips on the icon-only buttons that had none - #1048

Open
alexandre-vl wants to merge 2 commits into
zeronsh:mainfrom
alexandre-vl:zeron/add-missing-button-tooltips
Open

alexandre-vl wants to merge 2 commits into
zeronsh:mainfrom
alexandre-vl:zeron/add-missing-button-tooltips

Conversation

@alexandre-vl

@alexandre-vl alexandre-vl commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Buttons that show only a glyph, starting with the comment "+" beside a Markdown table header, now say what they do on hover, like the app's other icon buttons. Each tooltip reuses the button's accessible label, or the wording its twin uses elsewhere, in the app's existing tooltip chip.

The Markdown preview of README.md with the pointer on the "+" left of the Path table header: a chip below it reads "Add comment".

What changes

  • Comments. The "+" adder in diffs and Markdown previews says "Add comment" (crates/ui/src/comment_ui.rs:40), as does the file editor's gutter "+" (crates/ui/src/files/preview.rs:2927). The gutter's comment marker says "Show comment" or "Hide comment", by whether its comment is open (preview.rs:2893, :2903).
  • Model picker. The Starred tab, each agent tab (named after its agent) and the favorite star ("Add to favorites" / "Remove from favorites") get tooltips (crates/ui/src/pickers.rs:4904, :4945, :5394), as does the compact picker's Back (crates/ui/src/pickers/compact.rs:524). The full picker shows the compact one's PickerHint chip, now pub(super) (compact.rs:1473), so both pickers' tooltips look the same.
  • Pull requests. The board's search clear says "Clear search" (crates/ui/src/pull_requests.rs:2509). The comment box's send button says "Send comment", or "Sending comment" while a send is in flight, the same text as its accessible label (crates/ui/src/pull_request_interactions.rs:245, :425).
  • Settings.
    • Appearance: an accent swatch shows its color's name (crates/ui/src/settings/appearance.rs:1903). The × on Add a theme and on Adjust background says "Close" (:2601, :3137), and the background zoom buttons say "Zoom out" and "Zoom in" (:3025, :3052).
    • Billing: the extra-credit pack stepper says "Fewer packs" / "More packs", now its accessible label too (crates/ui/src/settings/billing.rs:648, :664).
    • Cloud: the repositories refresh says "Check repositories again", and the GitHub device-code chip "Copy code" (crates/ui/src/settings/cloud.rs:1045, :1152).
    • Providers: the refresh says "Check for agents and updates" (crates/ui/src/settings/harnesses.rs:346).
  • Shell. Add action's icon choices name their icon: Play, Test, Lint, Configure, Build, Debug (crates/ui/src/shell/actions_ui.rs:614). The section dialog's × says "Close" (crates/ui/src/shell/sidebar_sections.rs:866), the voice error's × "Dismiss" (crates/ui/src/shell/voice_stage.rs:249), and the "…" that folds New project's folder trail "Show hidden folders" (crates/ui/src/shell/spaces.rs:8351). That crumb's other tooltip, a crumb's full name past 26 characters (spaces.rs:8322, :8347), never applies to the fold, whose name is "…" (:8282), so no element gets two.
  • Screenshots. docs/screenshots/icon-tooltips/ holds a full-window capture of each tooltip; its README lists them and says how they were taken.

Testing

  • macOS 27.0.1, rustc 1.99.1: cargo test -p zeron-ui --lib -- --test-threads=1 at bdb4e0c4, rebased onto v0.2.124 (c04e3749): 1875 passed, 0 failed. Run in parallel, the suite aborts with SIGABRT on this Mac without this change too; CI runs it under nextest, one process per test.
  • No test added. A throwaway gpui test, not committed, hovered the comment adder and saw its tooltip built, and failed with the tooltip line removed.
  • Live, each of the 26 captures below, in the production Shell: an offscreen window that never took focus, synthetic pointer and key events, and an in-process engine. The account, the pull requests, Billing, Cloud and the model catalog came from faked engine replies. No step sent a comment, bought credits, wrote the clipboard or opened a URL, and the voice start failed before any audio device opened.
  • git show --check: clean.
  • Not run: dark mode; Windows and Linux; the buttons hovered by hand in the packaged app; "Sending comment", which shows only while a send is in flight.
All 26 tooltips

Add comment — "+" beside a Markdown table header

"+" beside a Markdown table header, hovered: a chip reads "Add comment".

Add comment — "+" in a diff line's gutter

"+" in a diff line's gutter, hovered: a chip reads "Add comment".

Add comment — "+" in the file editor's gutter

"+" in the file editor's gutter, hovered: a chip reads "Add comment".

Show comment — Comment marker, comment closed

Comment marker, comment closed, hovered: a chip reads "Show comment".

Hide comment — Comment marker, comment open

Comment marker, comment open, hovered: a chip reads "Hide comment".

Starred — Model picker's star tab

Model picker's star tab, hovered: a chip reads "Starred".

Claude Code — Model picker's agent tab

Model picker's agent tab, hovered: a chip reads "Claude Code".

Add to favorites — A model's star, off

A model's star, off, hovered: a chip reads "Add to favorites".

Remove from favorites — A model's star, on

A model's star, on, hovered: a chip reads "Remove from favorites".

Back — Compact picker's back arrow

Compact picker's back arrow, hovered: a chip reads "Back".

Clear search — × in the board's search

× in the board's search, hovered: a chip reads "Clear search".

Send comment — Send in the Activity comment box

Send in the Activity comment box, hovered: a chip reads "Send comment".

Orange — An accent swatch

An accent swatch, hovered: a chip reads "Orange".

Close — × on Add a theme

× on Add a theme, hovered: a chip reads "Close".

Close — × on Adjust background

× on Adjust background, hovered: a chip reads "Close".

Zoom out — − beside the zoom slider

− beside the zoom slider, hovered: a chip reads "Zoom out".

Zoom in — + beside the zoom slider

+ beside the zoom slider, hovered: a chip reads "Zoom in".

Fewer packs — − on the extra-credit packs

− on the extra-credit packs, hovered: a chip reads "Fewer packs".

More packs — + on the extra-credit packs

+ on the extra-credit packs, hovered: a chip reads "More packs".

Check repositories again — Refresh beside Choose on GitHub

Refresh beside Choose on GitHub, hovered: a chip reads "Check repositories again".

Copy code — GitHub device-code chip

GitHub device-code chip, hovered: a chip reads "Copy code".

Check for agents and updates — Refresh beside the device menu

Refresh beside the device menu, hovered: a chip reads "Check for agents and updates".

Test — An icon choice in Add action

An icon choice in Add action, hovered: a chip reads "Test".

Close — × on New section

× on New section, hovered: a chip reads "Close".

Dismiss — × on the voice error

× on the voice error, hovered: a chip reads "Dismiss".

Show hidden folders — "…" in New project's folder trail

"…" in New project's folder trail, hovered: a chip reads "Show hidden folders".


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

The comment "+" in diffs and Markdown previews, and twenty other buttons
that show only a glyph, now say what they do on hover, like the rest of
the app's icon buttons. Each tooltip reuses the button's accessible label
or the wording its twin uses elsewhere.

- Comments: the "+" adder (diffs, Markdown previews, the file editor's
  gutter) and the gutter's comment marker (Show / Hide comment).
- Model picker: the Starred and per-agent tabs, the favorite star, and the
  compact picker's Back.
- Pull requests: Clear search, Send comment.
- Settings: accent swatches, both dialog close buttons, the background
  zoom − / +, the pack stepper, Cloud's repository refresh and code copy,
  and Providers' refresh.
- Shell: the action icon picker, the section dialog's close, the voice
  error's dismiss, and the hidden-folders crumb.

The full model picker shows the same PickerHint chip as the compact one.
Twenty-six full-window captures of the production Shell, one per tooltip
the previous commit added, each taken after the hover delay. The README
lists them and says how they were captured: an offscreen window, synthetic
input, and an in-process engine whose account, pull request, and catalog
replies are faked, so every name and number shown is invented.

This branch has not been deployed

No deployments
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