Skip to content

a11y: close the accessibility gaps found in research-12 #64

Description

@thorwhalen

Follow-up to research-12 (docs/research/acture_research_12 -- Accessibility APIs and Command Dispatch.md, §3 and §4.1). acture's CommandRecord already matches the cross-platform accessibility action shape (label, description, key binding, enabled, invoke). What's missing is the projections and a few small gaps. Each item is small, and none needs a new CommandRecord field unless item 4 finds a named consumer.

  • Palette ARIA test. acture-palette-react gets the APG combobox pattern from cmdk 1.1, but nothing asserts it. Add a test covering roles, aria-activedescendant and the accessible name, plus the focus hand-off when the view switches to the picker chain or the handoff form.
  • Hidden vs disabled. The palette drops commands whose when is false. Menus conventionally show them as disabled. Decide per surface and record the rule in acture-palette-design. A menu projection should map when to aria-disabled / AXEnabled.
  • Dispatch-result announcer. Route Result (ok or error.message) to a polite aria-live region after the palette closes (WCAG 4.1.3). It is a small consumer or middleware and covers every surface.
  • Toggle / checked state (design only). Checkable commands (menuitemcheckbox, AXMenuItemMarkChar, UIA Toggle) have nowhere to report their state. Prefer a separate state projection keyed by command id over a record field. Needs a named consumer first.
  • aria-keyshortcuts in projections. Emit it from keybinding (with $mod resolved to Control or Meta) on menu and button projections, where the shortcut is live.
  • docs/hand-written-native-menu.md. Project the registry into an Electron/Tauri native menu (label, accelerator, enabled, checked, click → dispatch). This exposes an acture app's commands to VoiceOver, the macOS Help-menu search, Raycast and Paletro.
  • WCAG 2.1.4. Optionally add a single "disable character-key shortcuts" switch to acture-hotkeys. Per-binding unbind already meets the criterion, as research-10 §3.7 notes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions