Skip to content

feat(a11y): add core keyboard and browser contracts - #2

Open
mattheliu wants to merge 30 commits into
baseline/dsh-v0.1.2-alpha.2from
feat/a11y-core-0.1.2-alpha.2
Open

feat(a11y): add core keyboard and browser contracts#2
mattheliu wants to merge 30 commits into
baseline/dsh-v0.1.2-alpha.2from
feat/a11y-core-0.1.2-alpha.2

Conversation

@mattheliu

@mattheliu mattheliu commented Aug 30, 2026

Copy link
Copy Markdown

Summary

  • Build the accessibility-core candidate from exact dsh-v0.1.2-alpha.2 and migrate behavior by interaction owner.
  • Make shared Modal own inertness, focus containment/restoration, nested topmost dismissal and descriptions; move Settings and Workspace error paths onto that owner.
  • Give grouped, flat and search Workspace views a single roving tree entry with arrows, Home/End, disclosure, activation, typeahead and row-action focus ownership.
  • Require persistent-shell sends to return to an exact stdin wait; accept a sampled leave-and-return or post-submission output for fast transitions, while rejecting a pre-write wait or same-shell echo plus silence alone.
  • Add a required assembled-app Chromium/Firefox/WebKit accessibility job on standard hosted fork runners.

Evidence

  • Exact candidate: dc9cc8d6145a7007c8f23a987234daa7f2442d09.
  • Workspace tree owner: 52/52 tests; 100% statements (91/91), branches (86/86), functions (11/11), lines (80/80).
  • Terminal session owner: 54/54 tests; 100% statements (452/452), branches (275/275), functions (74/74), lines (394/394). The local real-PowerShell composition test is skipped because this macOS host has no pwsh; that skip is not counted as PowerShell evidence.
  • Built assembled app: 2/2 paths passed independently in Chromium, Firefox and WebKit.
  • Full Web snapshot replay: 89 files passed, 1 capability skip; 303 tests passed, 15 capability skips.
  • Recorded-session snapshots in the CI lib mode: 114 passed, 2 capability skips.
  • CI static aggregate: 43/43 gates passed. SQLite schema owner: 86/86 tests passed. Full build and pre-push typecheck passed.
  • Failed history is preserved without rerun. Run 33330458425 exposed the missing exported-hook JSDoc, a nested npm browser invocation, stale accessibility expectations, a fast persistent-PowerShell transition that escaped polling, and a 100 ms SQLite retry fixture budget under Windows coverage. This head contains deterministic corrections for each observed cause.
  • New attempt-1 main CI: https://github.com/omdsh-dev/deepseek-harness/actions/runs/33332020842

Scope and limitations

This is an alpha.2 migration checkpoint, not a claim that all of DSH is accessible. Automated DOM and browser contracts do not substitute for task-level VoiceOver, NVDA, other assistive-technology sessions, braille/input evidence, or disabled-developer validation. Menus, shell landmarks and separators, conversation/tool/trajectory flows, announcements, contrast, reflow, motion and remaining core-task protocols are still open. No merge, release tag or npm publication is proposed.

Related to omdsh-dev/dsh-accessibility#22.

@mattheliu mattheliu changed the title fix(a11y): migrate modal focus ownership to alpha.2 feat(a11y): add core keyboard and browser contracts Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant