Skip to content
Board Planner
GitHubOpen the app

Accessibility

This page is written from what is actually asserted in the test suite rather than from an intention. Where something is not covered, it says so.

The whole board. Tab moves between cards, Enter or Space opens the focused one, ⇧ Enter adds it to the selection. In the list, J and K move between rows. See Keyboard shortcuts for the rest.

Composing an agent. Every palette block carries an Add button that puts it in the phase it names with no drag at all, and the drag itself works from the keyboard — pick up with Space or Enter, move with the arrows, drop with Space or Enter, cancel with Esc. An agent can be composed end to end and saved using no pointer at any point.

Copying a task’s link. The copy button takes Enter like any other.

Esc closes whatever is open, and only that: the shortcut help, the New Task modal, a card’s context menu, a confirm dialog — leaving the selection the dialog was about — and, when no dialog is open, it clears a card selection.

Shortcuts are inert while a dialog is open. The dialog owns the keyboard until Esc closes it, and only ? still toggles the shortcut help.

Every control says which row it belongs to. In a list of similar rows — MCP servers, chat channels, webhooks — a bare Delete or Enable is useless. Each control carries its row’s name, and follows it: rename a server and its controls rename with it. A webhook row, which has no name of its own, is told apart by its masked URL.

A select is reached by its label. The unsaved marker beside a field’s name is not part of that name, so a section with unsaved changes is still announced by what it is rather than by its state.

The shortcut help is a real dialog — it takes focus, traps it, locks the scroll behind it and returns focus when it closes. Inside, the shortcuts are a definition list pairing each description with its key, and a key drawn as a glyph carries a spoken label too, so ⌘K is not read out as punctuation.

Shortcuts that would do nothing are hidden rather than listed and inert: a read-only board does not advertise N, and a sprint board with a fixed view does not advertise V.

One keyboard-focus treatment across every field and control, drawn as an outline rather than a ring, so an element keeps its own border while focused instead of trading it for a ring drawn where the border used to be.

Where a field sits flush against a scrolling container, the container reserves room for it — an outline is clipped by a scrollport exactly as much as a shadow is.

Cards cannot be dragged — a touch screen has no drag to give — so every card carries an actions button opening the same menu a right-click opens on a desktop, Move to included.

Fields use a large enough type size that focusing one does not make iOS zoom the page in, which it does below 16px and does not undo on blur.

  • The board’s drag and drop has no keyboard equivalent. Moving a card between columns without a pointer is done through the card’s menu — Move to — rather than by picking the card up. The agent editor is the only drag in the product that can be driven from the keyboard.
  • A due date’s urgency is carried by colour. The date itself is always written out, and priority and category chips carry their text as well as their colour — but overdue and due within two days are the colour of that date and nothing else, so telling them apart means knowing today’s date.
  • No formal audit has been done, and no conformance level is claimed. What is written above is what the suite asserts and a person has checked.