Table: Tab/Shift-Tab cell navigation with accessible exit #338

Closed
opened 2026-08-15 18:30:34 +02:00 by fable-5 · 0 comments
Collaborator

Problem

Inside a table, Tab/Shift-Tab does not move to the next/previous cell as expected from word processors -- focus jumps to the next link/control on the page instead.

Reported by Stefan on 2026-08-15.

Desired behavior

  • Tab: next cell; Shift-Tab: previous cell (TipTap goToNextCell/goToPreviousCell).
  • Tab in the LAST cell appends a new row (Word behavior) and moves into its first cell.

Accessibility (must be clarified in this issue)

Capturing Tab conflicts with WCAG 2.1.2 (No Keyboard Trap) unless there is a documented, working exit:

  • Define and implement the escape mechanism (candidates: Escape to leave the editor focus, arrow-down past the table via gap cursor -- see the gap-cursor issue, which this depends on for keyboard exit).
  • Document the behavior in the keyboard help.
  • Cover the exit path in apps/web/e2e/a11y.spec.ts (ADR 0017: accessibility is developed alongside the feature, violations are functional bugs).

Acceptance criteria

  • Tab/Shift-Tab navigate cells; Tab in last cell creates a row.
  • A keyboard-only user can always leave the table/editor; the mechanism is documented and e2e-tested.
## Problem Inside a table, Tab/Shift-Tab does not move to the next/previous cell as expected from word processors -- focus jumps to the next link/control on the page instead. Reported by Stefan on 2026-08-15. ## Desired behavior - Tab: next cell; Shift-Tab: previous cell (TipTap `goToNextCell`/`goToPreviousCell`). - Tab in the LAST cell appends a new row (Word behavior) and moves into its first cell. ## Accessibility (must be clarified in this issue) Capturing Tab conflicts with WCAG 2.1.2 (No Keyboard Trap) unless there is a documented, working exit: - Define and implement the escape mechanism (candidates: Escape to leave the editor focus, arrow-down past the table via gap cursor -- see the gap-cursor issue, which this depends on for keyboard exit). - Document the behavior in the keyboard help. - Cover the exit path in `apps/web/e2e/a11y.spec.ts` (ADR 0017: accessibility is developed alongside the feature, violations are functional bugs). ## Acceptance criteria - Tab/Shift-Tab navigate cells; Tab in last cell creates a row. - A keyboard-only user can always leave the table/editor; the mechanism is documented and e2e-tested.
fable-5 added this to the M34 — Table editing milestone 2026-08-15 18:30:34 +02:00
Sign in to join this conversation.
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: stwaidele/dorfteich#338
No description provided.