MemberJunction / MemberJunction/MJ
Whiteboard is not keyboard-operable (WCAG 2.1.1) — open on next and lts/5, not a backport gap
- Dominant language
- TSQL
- Stars
- 29
- Forks
- 6
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 323
Description
## Summary
Whiteboard keyboard operability (item 4 of the Sidecar a11y brief) has not been addressed **on any line**. It was not part of #4121, so it is not a backport gap — `next` and `lts/5` are equally affected.
Raising it because #4303 surfaced it while clearing the other findings, and an item that is out of scope on every PR that touches the area tends to stay that way.
## What #4121 did and did not do
#4121 changed how whiteboard shortcuts are *scoped*: the eleven bare single-character tool shortcuts (`v h p r s t m w i c e`) previously listened on `document` and fired anywhere on the page, failing WCAG 2.1.4 (Character Key Shortcuts). They are now gated on focus being inside the whiteboard host, along with undo/redo, `Escape` and `Delete`/`Backspace`. `EnableGlobalShortcuts` restores the old behaviour for surfaces that accept the exposure.
That fixes the *interference* problem — a whiteboard no longer swallows keystrokes meant for the rest of the page.
It does not make the whiteboard itself **operable** by keyboard. Selecting, moving, resizing and connecting shapes still require a pointer. That is WCAG 2.1.1 (Keyboard), a separate success criterion from the one #4121 addressed, and a more substantial piece of work than scoping a keydown handler.
## Why this is worth stating explicitly
Reading the #4121 and #4303 changesets, it is easy to conclude the whiteboard's keyboard story is now handled. It is not — the shortcuts were made *safe*, not *sufficient*. Anyone assembling a conformance statement from the changelog would get this wrong.
## What is needed
A scoped design for keyboard operation of the canvas: focus model for shapes, selection and traversal order, move/resize commands, and how connections are made without a pointer. Probably its own brief rather than an incremental fix.
Sizing this is the first task; I am not proposing an implementation here.
## Lines affected
Both. Fix on `next` first; backport to `lts/5` only if Sidecar's conformance statement requires it, per the usual line rules.
Follow-up to #4303. Related: #4121. Sidecar a11y brief item 4.
Contributor guide
Research direction
Start with Sidecar a11y brief item 4 and review the changesets for #4121 and #4303 to understand the existing shortcut scope. Produce a design brief covering shape focus, selection and traversal order, keyboard move/resize commands, and pointer-free connections; completion means the scope and sizing are agreed before implementation.
Written by the indexing model from the issue text.
Assessment
- Domain
- accessibility, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100