Skip to content

feat(a11y): migrate accessibility core to DSH 0.1.7-rc.2 - #5

Draft
mattheliu wants to merge 42 commits into
baseline/dsh-v0.1.7-rc.2from
feat/a11y-core-0.1.7-rc.2
Draft

mattheliu wants to merge 42 commits into
baseline/dsh-v0.1.7-rc.2from
feat/a11y-core-0.1.7-rc.2

Conversation

@mattheliu

@mattheliu mattheliu commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Summary

Merge official dsh-v0.1.7-rc.2 (477b4f420553e8a52c2fbccc464d7561b239c443) into the existing accessibility core. This PR deliberately targets the exact rc.2 baseline, not the fork's historical default branch. npm next=0.2.0-rc.1 is a separate investigation.

Companion integration: omdsh-dev/dsh-accessibility#29

  • Preserve semantic landmarks, conversation records/live announcements, keyboard composites, modal focus restoration, contextual labels, accessible separators, and explicit low-noise headless presentation.
  • Adapt changed upstream component and fixture APIs. Fix workspace tree focus/states, permission/model trigger focus, modal-layer behavior, and Fetch links nested inside disclosure buttons.
  • Preserve upstream menu-check sizing and focus-ring treatments. Update reviewed ARIA expectations and exercise the changed keyboard behavior; do not blindly accept snapshots.

Local verification

  • Full GUI: 590 files passed; 9,274 tests passed, 1 explicit skip.
  • Core accessibility: 40 passed, Chromium/Firefox/WebKit; 2 forced-colors skips outside Chromium.
  • External companion integration: 5 passed across the three browsers with clean core 1e53eedb532a7965aee4d4c294c2ee313cf15906 and companion 20b3b151858d9b9e6cb986501c00faf6960eb1b6.
  • Core, companion, and live AT lab startup/cleanup smoke passed on those same clean revisions. These runs did not observe a screen reader or exercise human tasks.
  • Build, 18 hygiene gates, 20 quick documentation gates, 42 full doc-sync gates, and headless expected output (17 tests) passed. CLI help/usage and keyless smoke passed.
  • Full lint found one overlong declaration, cleared by a formatting-only wrap plus owning-file lint. Normal commit hooks and the normal pre-push incremental typecheck passed.
  • General Web replay was covered in partitions. The remaining 144-file run initially had 21 failing files; each failed scope was repaired and rerun, including a final 3-file/12-test pass. This is not a claim that a single final full Web invocation was green.
  • An earlier full GUI run timed out on Markdown registration; a later isolated full run passed without retry/timeout changes. Its earlier cause is not established.
  • Steering/turn-tail Session recordings were not refreshed. The goal-action fixture owner refreshed only the current v4 header's startsSeries field and passed replay; older generations were untouched.
  • Added-lines credential/private-key/local-home pattern scan found no matches. This is not a full security audit.

Review and release boundary

Keep this PR unmerged pending designer/product review of the user-perceivable interaction changes and remote CI. No npm publication or release tag is included. Automatic browser checks do not establish actual speech, OS accessibility-API mapping, or independent completion by disabled developers. Real VoiceOver/NVDA and disabled-user evidence remains pending; historical campaign records stay bound to their original revisions.

# Conflicts:
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.i18n.yaml
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.md
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.zh.md
#	.github/workflows/ci.yml
#	apps/cli/tests/profiles/headless/tests/fixtures/deepseek-defaults.cordis.yml
#	apps/web/tests/expected/agent-preset-selection/menu.expected.md
#	apps/web/tests/live-interactions.e2e.ts
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	packages/bundle/headless/src/index.ts
#	packages/bundle/headless/tests/headless.spec.ts
#	packages/client/ui-chat/README.i18n.yaml
#	packages/client/ui-chat/README.md
#	packages/client/ui-chat/README.zh.md
#	packages/client/ui-chat/src/client/chat/ChatView.tsx
#	packages/client/ui-chat/src/client/chat/MessageItem.tsx
#	packages/client/ui-conversation/src/client/skeleton/ConversationSession.tsx
#	packages/client/ui-conversation/tests/input-bar.client.spec.tsx
#	packages/client/ui-permission-presets/tests/permission-presets-row.client.spec.tsx
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
#	packages/client/ui-settings-general/src/client/SettingsRoot.module.css
#	packages/client/ui-tool/src/client/tool/toolviews/bash-sample.tsx
#	packages/client/ui-trajectory/README.i18n.yaml
#	packages/client/ui-trajectory/README.md
#	packages/client/ui-trajectory/README.zh.md
#	packages/session/session-persistence-sqlite/tests/sqlite.spec.ts
#	packages/session/session-projection-cache/tests/cache.spec.ts
#	scripts/ci-workflow.spec.ts
#	snapshots/web/subagent-conversation/ui-expanded.expected.md
#	snapshots/web/subagent-conversation/ui.expected.md
#	snapshots/web/subagent-interrupt/offline-composer.expected.md
@mattheliu mattheliu added kind/feature Adds or intentionally changes product behavior area/web Browser and Electron graphical interfaces area/cli CLI and headless user-facing presentation area/infra Build, CI, repository gates, dependencies and developer tooling labels Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/cli CLI and headless user-facing presentation area/infra Build, CI, repository gates, dependencies and developer tooling area/web Browser and Electron graphical interfaces kind/feature Adds or intentionally changes product behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant