Loading...
All sections

Dialog contract — every dialog, by area

This section proves the one promise QUILL makes about every dialog it can put on screen: it opens, you can drive it entirely from the keyboard, and it hands focus back when it closes. QUILL is screen-reader-first, so a dialog that "works" with the mouse but strands a keyboard user, or closes silently, is a fail.

There are hundreds of dialogs, so this section does not narrate each one. Instead it states the contract once (below), then gives you one checkbox per dialog so nothing is skipped. The authoritative list of dialogs is ../../planning/signoff/SIGNOFF-dialogs.md (the A11Y-4 registry); the names on each line are taken verbatim from it — hardened_custom is a QUILL-built dialog, native is a stock Windows dialog (file/folder/message/entry), web is an HTML-form dialog. Read §2–§3 of README.md for the Pass/Fail/Blocked/N-A and Works/Surface-exact/Accessible boxes.

The dialog contract (the pass/fail rubric for every line below)

Open the dialog named on the line, then confirm all of the following. If any one fails, the line fails — even if the dialog's feature otherwise worked.

  1. Opens and takes focus. Activating its command opens the dialog and focus lands inside it (on a sensible first control, announced with its name and role) — not left behind in the editor.
  1. Keyboard-complete. Tab / Shift+Tab reach every control in a sensible order; you can operate the whole dialog with no mouse. Enter activates the default button.
  1. Named and roled. Every control announces an accessible name and role (button, edit, checkbox, list, …), and the dialog itself announces a title. No blank, "pane", or control-with-no-name.
  1. Escape and Close/Cancel both dismiss it — and return focus. Pressing Escape and activating the Close/Cancel button each close the dialog and return focus to the control that opened it. Focus must never vanish.
  1. Announces its outcome. Whatever the dialog does (saved, applied, cancelled, error) is spoken aloud, and shown in braille where a display is attached. A silent success is an accessibility failure.
  1. No destructive action without an audible, cancellable confirmation. Any dialog that overwrites, deletes, discards unsaved work, or removes data must ask first, in speech you can hear and cancel. Lines that are destructive are flagged destructive below.

Run each dialog twice: once with the mouse physically unplugged (keyboard only), then again reading it with your screen reader's review / virtual cursor. Both must pass.

Each checkbox line restates the contract in shorthand — opens · keyboard-complete · named · Escape+Close return focus · announces outcome — so you can verify without scrolling back.

CORE-EDITOR — the editor's dialogs (487)

The main QUILL editor. Every dialog below is reachable in a public build. Work through them area by area; each must satisfy the contract above.

RADIO — Quill Radio (public standalone app) (36)

Dialogs in the standalone Quill Radio app. All are present in a public build.

WEATHER — Quill Weather (public standalone app) (4)

Dialogs in the standalone Quill Weather app. All are present in a public build.

STUDIO [GATED] — Quill Studio / audiobook production (43)

Quill Studio is gated out of the public 1.0 build. On a public build every line here is N/A; confirm their absence in gated-absence.md. Only test if a dev/admin build (e.g. QUILL_DEV_BUILD=1) enables Studio.

_Every line in this area is_ [GATED] / N/A _on a public 1.0 build._

PODCASTS [GATED] — Podcasts app (35)

The Podcasts app is gated out of the public 1.0 build. On a public build every line here is N/A; confirm absence in gated-absence.md. Only test on a build that enables Podcasts.

_Every line in this area is_ [GATED] / N/A _on a public 1.0 build._

BEACON [GATED] — Quill Beacon app (30)

Quill Beacon is gated out of the public 1.0 build. On a public build every line here is N/A; confirm absence in gated-absence.md. Only test on a build that enables Beacon.

_Every line in this area is_ [GATED] / N/A _on a public 1.0 build._

PLAYER [GATED] — Quill Media Player app (9)

The Media Player is gated out of the public 1.0 build. On a public build every line here is N/A; confirm absence in gated-absence.md. Only test on a build that enables the Player.

_Every line in this area is_ [GATED] / N/A _on a public 1.0 build._

CONVERTER [GATED] — Quill Converter app (3)

The Converter app is gated out of the public 1.0 build. On a public build every line here is N/A; confirm absence in gated-absence.md. Only test on a build that enables the Converter.

_Every line in this area is_ [GATED] / N/A _on a public 1.0 build._

Section sign-off