VoiceOver’s Trackpad Commander on Mac

By default, VoiceOver on a Mac is controlled by keyboard commands. This is different to VoiceOver on iOS or iPadOS, which uses swipe gestures instead (since iPhones and iPads are primarily touch-screen devices).

If you like the idea of swiping around an interface using VoiceOver rather than learning all sorts of funky key combinations, Trackpad Commander is worth a try.

Essentially, by turning on the Trackpad Commander you’re switching from a purely keyboard-driven experience to a touch-driven one. To turn it on:

Open VoiceOver Utility

Choose ‘Commanders’ in the sidebar

Ensure you’re on the ‘Trackpad’ tab

Check ‘Enable Trackpad Commander’

Sensibly, the gestures are all the same as on iOS/iPadOS. So if you’re already used to using VoiceOver on an iPhone or iPad, you’ll be fine.

If you haven’t used VoiceOver on an Apple touch-screen device before, the good news is it’s pretty simple. Here are the basic commands for Trackpad Commander on macOS:

Basic Trackpad Commander commands

Gesture | Command | Keyboard equivalent
Flick right with one finger | Move to next bit of content on the page | ⌃ (Control) + ⌥ (Option) + → (Right arrow key)
Flick left with one finger | Move to previous bit of content on the page | ⌃ + ⌥ + ← (Left arrow key)
Flick right with two fingers | Move to next content area (or 'Window Spot', see below) | ⌃ + ⌥ + ⇧ (Shift) + →
Flick left with two fingers | Move to previous content area | ⌃ + ⌥ + ⇧ + ←
Double tap with one finger | Activate an interactive item (like a button or link) | ⌃ + ⌥ + Space
Rotate two fingers clockwise | Change to the next content type in the Rotor (headings, landmarks, and so on) | ⌃ + ⌥ + u, then → to cycle forwards through rotor items
Rotate two fingers anticlockwise | Change to the previous content type in the Rotor (headings, landmarks, and so on) | ⌃ + ⌥ + u, then ← to cycle backwards through rotor items
Flick down with one finger | Jump to next instance of the content type selected in the Rotor | In the Rotor, ↓ (Down arrow key) to move to next instance of the current content type, then ⏎ (Enter/Return) to go to it
Flick up with one finger | Jump to previous instance of the content type selected in the Rotor | In the Rotor, ↑ (Up arrow key) to move to previous instance of the current content type, then ⏎ to go to it

No trackpad pointer with Trackpad Commander!

Unlike typical VoiceOver, which lets you use the normal trackpad pointer in conjunction with VoiceOver, Trackpad Commander disables typical pointer use.

Something that confused me at first was the hover mode (for want of an official term for the feature). This is when you hold your finger on the trackpad for a brief period and a blue ring cursor about the size of a fingertip appears.

Instead of a typical pointer where you hover over something and click to activate it, Trackpad Commander’s pointer is used to change VoiceOver’s focus from one ‘Window Spot’ to another within an app (something you can also do using the Window Spots option in VoiceOver’s Rotor).

Window Spots are sort of high-level content zones within a app’s window. Here’s an example using Apple’s Notes app that might illustrate it better; its Window Spots are:

The toolbar

The search box

The folder list

The list of notes within the chosen folder

The main content area, for reading and editing the chosen note

This maps roughly onto most apps. Email apps, web browsers, even code editors all have toolbars, search, a list of items (sometimes more than one list if there’s a hierarchy), and a main content area.

The cursor behaviour works like this:

Every Window Spot except the current one is dimmed

When you move the cursor over a different Windows Spot:

The new Windows Spot is undimmed

The previously in-view Windows Spot is dimmed

VoiceOver announces the title/name of the newly focused Windows Spot

Taking your finger off the trackpad leaves focus on the most recently hovered frame and the dimmed surrounding frames are undimmed; you can now interact with that Window Spot

In this mode, since it’s all about the current window, you can’t move the cursor outside of the currently interactive window. It’s also worth mentioning that the top-left of the trackpad represents the top-left of the window, the top-right of the trackpad represents the top-right of the window, and so on.

Is Trackpad Commander better?

For many people, learning and memorising the various VoiceOver keyboard shortcuts, and contorting their fingers to activate them is a lot to ask. In fact, people with the use of only one hand would have to rely on Sticky Keys, so they may prefer the gesture-based Trackpad Commander.

Conceptually, Trackpad Commander is much simpler than the default way to control VoiceOver, so it could be an easier way for people unfamiliar with screen reader software to get started.

I’ve been using VoiceOver with the keyboard for years so I’m comfortable enough getting around that way, but I’ll definitely be presenting Trackpad Commander as an option when introducing the software to the designers, developers, and testers I work with.