# Accessibility

> Use Cloak Proxy with VoiceOver, the keyboard, Increase Contrast and Reduce Motion, without relying on color: what each status mark means and what is read.

Source: https://docs.subcloak.com/cloak-proxy/reference/accessibility/

Added in Cloak Proxy 0.5.1.

Cloak Proxy works with VoiceOver, the keyboard and the display settings in **System Settings › Accessibility**. Nothing in the main window depends on color alone: every status that has a color also has text or a shape.

## Status without color

The traffic list's status dot has a shape for each state, as well as a color:

| Mark | Meaning |
|---|---|
| Filled dot (green) | The exchange finished. |
| Ring (orange) | Still waiting for the response. The **Status** column reads **Active**. |
| Cross (red) | Failed, or a response whose body reports an error, such as a GraphQL error in a 200 or a gRPC status that isn't OK. |
| Filled dot (gray) | An HTTPS connection that passed through encrypted. Its row is dimmed and its URL reads **Encrypted tunnel**. |

The same shapes appear elsewhere:

- The toolbar's status: a dot while listening, a ring while recording is paused, a cross when the proxy can't listen. The text beside it says the same.
- Debugging tools in the Tools window, capture switches in Device Setup and App Capture, and mock servers in the API client: a filled dot when on, a ring when off.
- API client monitors: a dot when the last run passed, a cross when it failed, a ring before the first run.

Method and status pills always show their text (**GET**, **404**, **Active**, **Failed**), so their color is only a hint.

## VoiceOver

Turn VoiceOver on with <kbd>⌘</kbd> <kbd>F5</kbd>, or in **System Settings › Accessibility › VoiceOver**.

- **Traffic list.** Each row is read as one sentence: method, status, host and path, client, duration, then anything else that applies, for example "GET, 200 OK, api.example.com/v1/users, ShopApp, 120 ms" or "POST, 503 Service Unavailable, api.example.com, 4.50 s, slow, Map Local, highlighted orange, has a comment". Interact with a row to hear each column on its own; the status dot column is read as **State**.
- **Sidebar.** Apps, domains, devices and pins are buttons that say how many requests they have and whether they're selected. Groups (**Apps**, **Domains**, **Devices**) say whether they're expanded.
- **Inspector.** The request and response tab bars are tab groups: each tab says its name, its count (**Header 12**), and whether it's selected.
- **Toolbar and status bar.** Every button has a name, including the ones that show only an icon in a narrow window. **Filter** and **Auto Select** are read as switches, on or off.
- **Filter bar.** The content-type filters (**All**, **HTTP**, **JSON** and the rest) say whether they're selected, and the quick filter is read as **Quick filter** followed by what it filters.
- **Icon buttons** across the app (copy, remove, add, close, expand) have names too. Their tooltips are read as their help.
- **Pickers, switches and fields** in every window, including rule editors and settings, have names, even where the screen shows only the control.

### Security windows

- **Scope**: each rule's on/off checkbox, scheme and **More** menu are named, and so are the import, export, add and delete buttons.
- **Tokens and Sign-in**: the section picker, **Look again** and **Copy the findings as Markdown** are named. Severities are read as words (**High**, **Medium**), not just colors.
- **Request Fuzzer**: the attack mode, payload type, wordlist, encoding and limits are named. In the results, the diff column reads **Differs from the baseline** or **Same as the baseline**, and **Payload reflected** when the payload came back in the response.
- **AI Security**: the section picker, each AI Guard rule's checkbox (by the rule's name) and action, and the **More** menus are named. A finding's severity is read from its pill.
- **Insights › API Scan**: the section picker is named; each finding reads its severity and title.
- **Map Remote pattern tester**: the URL field is **URL to test**, and the result is read as one sentence: whether it matches, why not, and the URL it becomes.

## Keyboard

To move between every control with <kbd>Tab</kbd>, turn on **System Settings › Keyboard › Keyboard navigation**. With it on you can reach the sidebar's rows, the inspector's tabs and the status bar's buttons, and press <kbd>Space</kbd> to choose one.

These work without it:

| Keys | What they do |
|---|---|
| <kbd>↑</kbd> <kbd>↓</kbd> | Move between requests in the traffic list. |
| <kbd>⌘</kbd> <kbd>F</kbd> | Go to the quick filter. |
| <kbd>⇧</kbd> <kbd>⌘</kbd> <kbd>]</kbd> and <kbd>⇧</kbd> <kbd>⌘</kbd> <kbd>[</kbd> | Next and previous traffic tab. |
| <kbd>⇧</kbd> <kbd>⌘</kbd> <kbd>A</kbd> | Search everything: every action, tool and setting by name. |

See [Keyboard shortcuts](https://docs.subcloak.com/cloak-proxy/reference/keyboard-shortcuts/) for the rest.

## Display settings

- **Increase Contrast** (**System Settings › Accessibility › Display**): method, status and tool pills get an outline and stronger text, and the selected inspector tab is outlined.
- **Differentiate without color**: the selected inspector tab is outlined. The status shapes above are always on.
- **Reduce Motion**: the sidebar's groups, rule folders and the API client's agent panel open and close without animating, and lists jump to new rows instead of scrolling to them.
- **Text size**: macOS doesn't offer Dynamic Type to Mac apps, and the Accessibility › Display › **Text size** setting applies only to the apps it lists. To make everything larger, use **Display › Larger Text** (a lower resolution) or Zoom (**Accessibility › Zoom**).

*[Screenshot: The main window with Increase Contrast on: outlined method and status pills, and the status dots as a filled dot, a ring and a cross.]*

## Related

  - [Keyboard shortcuts](https://docs.subcloak.com/cloak-proxy/reference/keyboard-shortcuts/): Every shortcut in the main window, the inspector and the tools.
  - [Traffic list](https://docs.subcloak.com/cloak-proxy/inspect/traffic-list/): Columns, status dots, colors and highlights.
  - [Interface tour](https://docs.subcloak.com/cloak-proxy/getting-started/interface-tour/): Every region of the main window.
