Skip to content

Keep keyboard focus in the itinerary after removing a stop - #5

Open
JaeTierce31 wants to merge 1 commit into
feat/mappedfair-foundationfrom
fix/keyboard-remove-focus
Open

JaeTierce31 wants to merge 1 commit into
feat/mappedfair-foundationfrom
fix/keyboard-remove-focus

Conversation

@JaeTierce31

@JaeTierce31 JaeTierce31 commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

Purpose

Address a keyboard interaction risk in the first offline itinerary slice. When someone removes the focused stop with Enter, move focus to the next available stop (or the previous one). When the plan becomes empty, focus the plan heading so the change has a clear context.

Change

  • Track the next focus target only for keyboard or assistive-technology button activation; pointer removal does not force a focus jump.
  • Add a Chromium acceptance test for removing two stops by keyboard and checking focus after each removal and the saved state.

Verification

Local lint, 2 unit/integration tests, typecheck, build, and diff check passed. CI run 36194824796 passed on commit 8d65bab7aae5c8c0969b4d382a0ddbc516f3b36f: all 3 Chromium acceptance tests passed, including the keyboard focus path. This is a focused keyboard behavior test; it is not a screenshot-based Product Design audit or a hands-on touch-device usability check.

Review focus

Please check focus order and screen-reader expectations after removal, especially when the final stop is removed. This stacks on draft PR #2 and does not settle ADR-001 source rights or the independent review gate tracked by J3S-35.

Copy link
Copy Markdown
Member Author

Independent review handoff — PR #5

Please review commit 8d65bab7aae5c8c0969b4d382a0ddbc516f3b36f against feat/mappedfair-foundation and submit an explicit GitHub review (approval or change request). The author account cannot supply an independent approval.

Focus on:

  1. Keyboard and assistive-technology activation of Remove, including focus after removing a middle/last stop and whether the empty-plan heading is an appropriate destination.
  2. The event.detail === 0 path versus pointer activation, ref cleanup, and focus timing across React updates.
  3. Whether the new Chromium test meaningfully verifies focus and save state without masking an accessibility regression.

CI run 36194824796 passed all three Chromium tests on this head. The result does not substitute for independent review or hands-on usability checks. After an eligible review and any fixes, PR #5 can merge into the foundation branch; then CI must be checked on PR #2's new head.

Copy link
Copy Markdown
Member Author

Volunteer reviewer wanted — bounded React keyboard-focus change

We are seeking a volunteer / no-cost independent human reviewer for this PR. There is no paid engagement or expectation of a favorable verdict.

Scope: two files, 29 additions / 2 deletions at head 8d65bab7aae5c8c0969b4d382a0ddbc516f3b36f, against feat/mappedfair-foundation (cf069b15761d63ef7615173def92ef0125522da9).

  • apps/web/src/App.tsx: focus after removing first/middle/last/final itinerary stops; keyboard/AT versus pointer activation; React effect timing and ref cleanup.
  • apps/web/e2e/offline.spec.ts: whether the added Playwright assertions establish the intended behavior and what remains untested.

Existing review checklist · Passing CI receipt.

To volunteer: reply here from your own GitHub account with relevant React/accessibility experience, any involvement in authoring this change, and the scope you can review. Maintainer will confirm reviewer eligibility. Please submit your own GitHub review tied to the reviewed commit, with findings and a judgment based on the evidence. No admin access or credentials are requested.

Separate code inspection, automated tests, and human keyboard/touch tests in your report. For any hands-on checks, record browser/OS/device, steps and actual results; mark unperformed checks as untested. A code review alone will not close the human-usability gate.

PR #2 is a larger, separately scoped review; volunteering here does not commit you to it. PR #5 remains unmerged pending eligible independent approval and resolution of findings. PR #2 stays draft/unmerged; ADR-001 and human checks remain open.

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