Make mobile issue capture a focus-contained modal journey #1046

Closed
opened 2026-08-17 22:50:13 +00:00 by timmy · 0 comments
Owner

Problem

The mobile New issue sheet is visually modal but leaves focus on its launcher and permits keyboard/switch-control navigation into hidden dashboard controls. Closing always focuses the header New button rather than the exact invoking control. This blocks the core Capture → Evidence → File journey for keyboard, switch-control, VoiceOver, and TalkBack users.

Scope

  • Give the capture sheet one reusable modal lifecycle.
  • On open, focus a non-keyboard-summoning control inside the sheet.
  • Contain Tab/Shift+Tab within visible enabled capture controls.
  • Make dashboard content outside the sheet inert while open.
  • Restore the exact connected invoking control on Cancel, Escape, or browser Back.
  • Preserve draft, offline filing, share continuation, and mobile viewport behavior.

Acceptance

  1. At 390×844, opening from the task dock focuses Cancel (not the title input or background UI).
  2. Tab and Shift+Tab wrap among visible enabled controls inside the sheet; background controls cannot receive focus.
  3. Escape closes through the existing history/draft path and restores focus to the exact launcher.
  4. Cancel and browser Back restore focus consistently.
  5. The packaged offline issue filing browser journey and full test suite remain green.

Evidence

Audited origin/main c655cf5 and all 525 historical issues: #971 covers section navigation, #489 keyboard viewport positioning, and #101 zoom; none implements modal focus containment/restoration.

## Problem The mobile **New issue** sheet is visually modal but leaves focus on its launcher and permits keyboard/switch-control navigation into hidden dashboard controls. Closing always focuses the header New button rather than the exact invoking control. This blocks the core Capture → Evidence → File journey for keyboard, switch-control, VoiceOver, and TalkBack users. ## Scope - Give the capture sheet one reusable modal lifecycle. - On open, focus a non-keyboard-summoning control inside the sheet. - Contain Tab/Shift+Tab within visible enabled capture controls. - Make dashboard content outside the sheet inert while open. - Restore the exact connected invoking control on Cancel, Escape, or browser Back. - Preserve draft, offline filing, share continuation, and mobile viewport behavior. ## Acceptance 1. At 390×844, opening from the task dock focuses Cancel (not the title input or background UI). 2. Tab and Shift+Tab wrap among visible enabled controls inside the sheet; background controls cannot receive focus. 3. Escape closes through the existing history/draft path and restores focus to the exact launcher. 4. Cancel and browser Back restore focus consistently. 5. The packaged offline issue filing browser journey and full test suite remain green. ## Evidence Audited origin/main c655cf5 and all 525 historical issues: #971 covers section navigation, #489 keyboard viewport positioning, and #101 zoom; none implements modal focus containment/restoration.
timmy self-assigned this 2026-08-17 22:50:13 +00:00
timmy closed this issue 2026-08-17 23:07:37 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#1046
No description provided.