Skip to content

Accessibility

Pincer uses native controls throughout, so the system’s accessibility features work in the sidebar, the transcript, the composer and Settings. This page covers what Pincer adds on top of that.

  • Each message reads as one item: who wrote it, then the message, for example “Nova: Here’s the summary…”. Replies start with the message they reply to.
  • A reply that is still streaming reads as “Nova, Responding, Here’s the summary…”. It always reads the start of the reply, so the label stays put while more text arrives.
  • Grouped replies: when an agent’s reply is split into several messages, the actions rotor lists Reply, Copy Link, Bookmark (or Remove Bookmark) and Add Reaction once for each message, for example “Reply, part 1 of 3, Here’s the next step…”. The short opening text identifies which message each action targets. Branch, Edit and Regenerate stay with the last message.
  • Rotors: the VoiceOver rotor has Messages, Replies, Your Messages and Tool Calls, so you can jump between those items even in a long chat. On macOS, press VO U to open the rotor, ← → to choose one, ↑ ↓ to pick an item and Return to go there. On iPhone and iPad, rotate two fingers to pick the rotor, then swipe up or down to move.
  • Actions rotor: on a message, swipe up or down (iOS) or press VO ⌘ Space (macOS) for Copy message, Reply, Copy Link and Add Reaction. Add Reaction only appears when reactions are turned on. Agent replies with thinking also offer Copy Thinking.
  • On iPhone and iPad, one swipe moves one whole message. The message’s other buttons, such as showing thinking or a tool call’s details, opening an image or toggling a reaction, are in the same actions rotor. So are its links, as Open followed by the link text, for up to 10 links.
  • On the Mac, each message is a group. Press VO ⇧ ↓ to step inside it and reach its text, the Copy, Reply and React buttons, reaction chips, thinking and tool call headers, images and attachments.
  • A reaction chip you’ve added reads as selected. The typing indicator reads as “Working”.
  • File edit cards have a header button that reads what changed, for example “Edited foo.swift, 3 added, 1 removed, collapsed”. Their copy button reads as Copy diff, or Copy file contents for a new file, and long diffs have Show all N lines and Show fewer lines buttons.
  • Pincer says “Copied” when you copy a message, a code block or a diff, or use any other copy command.
  • When the agent finishes replying in the chat you have open, VoiceOver reads the start of the reply, for example “Nova replied: Here’s the summary…”. Chats in the background don’t announce.
  • If a run fails, the agent’s avatar announces it. With avatars turned off, Pincer says “Nova: reply failed” instead.
  • The avatar also announces when the agent starts waiting for an approval.
  • Find in Chat reads its result count as it changes, for example “Result 2 of 5” or “No results”.

Pincer doesn’t read replies token by token while they stream.

To hear a whole reply spoken without VoiceOver, use Read aloud. Its Read New Replies Aloud setting stays quiet while VoiceOver is running.

Agent and group headers read whether they are Expanded or Collapsed, and activating one expands or collapses it. An agent’s + button reads as “New chat with Nova”.

Each chat reads its title, then whether it’s pinned or unread, then its preview. While a chat is running, it also says what the agent is doing, for example “Moki is working” or “Moki: 2 helper runs working”. The subagent runs button reads as “Show 3 subagent runs” or “Hide subagent runs”.

  • The + attach button reads as Attach files. It opens a menu to take a photo, pick photos or choose a file.
  • The microphone button reads as Dictate Message, or Stop Dictation while it’s listening. ⇧ ⌘ D does the same from a keyboard. VoiceOver says “Listening” when dictation starts and “Dictation stopped” when it stops, except when Send stops it.
  • Send reads as Send, or Queue a follow-up while a run is going, and Stop stops it.
  • The context meter reads as “Context window” with how full it is. Activate it for the details and Compact Now.
  • The model picker reads as “Model” with the current model.
  • Slash command suggestions are a list of buttons, with the highlighted one marked as selected.

Each run in the session manager reads its title, agent, the same status the screen shows (Queued, Running, Done, Error, Stopped or Timed Out, preceded by “Interrupted” after a Gateway restart), how long it ran in words, and when it was last updated, for example “Research, Claude, Interrupted, Error, 2 minutes, 5 seconds, updated 3:04 PM”. On the Mac, the status icons have spoken labels too.

Icon buttons have spoken labels, for example Remove followed by the item it removes, or the theme’s name in Appearance. In the chat icon picker, each symbol reads as words, and the current one reads as selected.

The Dismiss, Always Ignore and Restore actions are in the actions rotor. See Gateway health.

On macOS, and on iPad with a keyboard, you can use Pincer without a pointer:

  • Sidebar: on macOS, ↑ ↓ move between chats. ⌥ ⇧ ↓ jumps to the next unread chat, and ⌘ 1…9 opens a pinned chat.
  • Transcript: ⌥ ⌘ ↑ and ⌥ ⌘ ↓ (Previous Message and Next Message) move to the previous or next message in the chat you’re in and scroll it into view. On macOS they also move keyboard focus into the transcript, with a focus ring on that message; with VoiceOver, VoiceOver moves to it. You can change them in Keyboard Shortcuts settings. Within the transcript, ↑ ↓ move between messages. On macOS, ← → select a message within a grouped reply, and the focus ring follows that message. Return or Space opens the selected message’s actions, and Esc goes back to the composer.
  • Command palette: ⌘ K reaches any chat, agent or setting, and VoiceOver speaks the highlighted item as you arrow through it. ↑ ↓ move, Return runs, Esc closes.
  • Composer: Return sends, ⇧ Return adds a new line, ⌘ . stops a run, ⇧ ⌘ R replies to the last message and Esc cancels the reply.
  • Slash commands: ↑ ↓ move through suggestions, Tab or Return completes, Esc hides them.
  • Find in Chat: ⌘ F, then ⌘ G and ⇧ ⌘ G step through matches. Esc closes the find bar.

The full list is in Keyboard shortcuts.

On iPhone and iPad, the transcript, sidebar and composer follow your Text Size setting (Settings → Accessibility → Display & Text Size → Larger Text), including the larger accessibility sizes. The chat lays itself out again as soon as you change it, without restarting Pincer. The composer’s buttons grow with the text, up to a limit so they still fit beside it.

On macOS, Pincer uses the system’s standard text sizes.

With Reduce Motion turned on, agent avatars show still poses instead of animating.

Pincer is in English for now. The app is being prepared for translation. If you’d like to help, see Localization.