Appearance
Accessibility
The console is operable with a keyboard alone and with a screen reader. This page describes what that means in practice: how to move around without a mouse, what the interface announces, and how to control animation.
Keyboard navigation
| Key | What it does |
|---|---|
| Tab / Shift+Tab | Move to the next or previous control. |
| Enter or Space | Activate the focused control. |
| Escape | Close the open modal. |
| Arrow keys | Move within a radio group (for example Motion in Settings). On a focused column resize grip: Left / Right change width; Shift makes a larger step. |
Skip to main content is the first control on the page. It is hidden until it takes focus: press Tab once on load, then Enter, to jump past the sidebar and topbar into the page body.
Focused controls carry a 2px accent-coloured outline. Inside table cells that clip their contents, the indicator is drawn inside the control and the whole row is highlighted, so you can see which row is live.
Table rows
Rows in the findings, hosts, scans, and Active Jobs tables open from the keyboard. Tab to the row's title (or identity) cell and press Enter or Space — the same action as clicking the row. Grouped findings expand from their group row, which reports whether it is currently expanded. Report rows work the same way: the finding title (or, under an expanded finding in By finding, the host) is the expand control and announces whether the item is open.
Tabbing through a table announces column headers with each cell and the row's position in the table, so a findings row still reads as a finding rather than a run of loose text.
Resizable columns
Findings (URL, Title) and the Bustah results table let you change column width without a mouse. Tab to the grip at the right edge of the header (Resize … column) and press Arrow Left or Arrow Right. Hold Shift for a larger jump. The grip reports its current width to the screen reader.
Screen-reader behavior
- Loading and empty states are announced: "Loading findings…", "No findings yet.", "No findings matching filters."
- Errors are announced as soon as they appear, including form validation errors and failed bulk actions. An invalid field is marked invalid and its message is tied to that field, so the error is not colour-only and is not loose text under the box.
- Bulk progress ("Deleting 5 of 13…") is announced as it advances.
- Icon-only buttons carry a spoken name, not only a mouse tooltip.
- Grouped controls — a set of radio buttons or checkboxes, such as Scope on a proxy — are announced with the group's name before the individual options.
Theme
Global Settings → Appearance → Theme sets light, dark, Retro terminal, or Match system. The topbar sun/moon toggle flips between light and dark only; Match system and Retro terminal are available in Settings. Every theme uses the same focus indicator colour, adjusted per theme so it stays visible on every surface, and every text colour in all three is held to the same 4.5:1 contrast floor. See Settings.
Motion
Animation is controlled per browser under Global Settings → Appearance → Motion. See Settings.
| Choice | Effect |
|---|---|
| Match system | Follow this device's reduce-motion setting. The default. |
| Full motion | Animate even when the system asks to reduce motion. |
| Reduced | No spinner rotation or colour fades. |
Reduced removes motion, not information: a spinner still reports that work is in progress, and status still updates.
Theme and Motion are both stored in this browser and apply to every project you open in it. They are not part of project or global platform settings, so they do not follow you to another machine and do not change what other operators see.
Standard
The console targets WCAG 2.1 level AA. If you hit something you cannot operate from the keyboard or that your screen reader does not announce, treat it as a defect and report it.