Skip to content

Let people turn off single-key shortcuts and test the keyboard paths properly - #2661

Merged
pournasserian merged 3 commits into
v2from
2626-shortcut-switch
Oct 20, 2026
Merged

pournasserian merged 3 commits into
v2from
2626-shortcut-switch

Conversation

@pournasserian

@pournasserian pournasserian commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Closes #2626

What

Follow-ups from the independent review of #2585 (F-DSK, #2422).

  • A "Single-key shortcuts" switch in the shortcuts dialog, on by default (WCAG 2.1 SC 2.1.4, which UX-04 targets).
    • Off turns off every shortcut without Control, Alt or Meta: the action letters, the queue numbers, J and K, and ?. The help stays one click away.
    • The choice is kept in this browser's local storage. If storage refuses it, it lasts for the page.
    • admin.js shows the stored choice when the switch is rendered, after each enhanced navigation (enhancedload), and when the switch takes focus.
  • J and K also match their physical keys, as the other letters do, so they work on Persian, Hebrew and other layouts.
  • After an approve or reject from a queue, the page goes to the set that followed this one before the decision. Skipping a set and approving the next no longer lands back on the skipped one.
  • The shortcut dialogs list every key: the arrow keys, Home and End on both views, and Space beside Enter for folding an item.

The island's readiness (finding 7) stays as documented, as the issue says.

A letter that types another Latin letter on a non-QWERTY layout can still fire that letter's shortcut. That is existing behaviour, filed as #2662.

Tests

Browser:

  • Switch off:
    • With single-key shortcuts off, A leaves the set awaiting review and J moves nothing.
    • After a reload, J and ? still do nothing. A neither approves nor leaves the page, which is checked after a pause, not at once. The switch is still off.
    • After an enhanced navigation to the desk, the switch still shows off.
    • With admin.js made to ignore the stored choice, this test fails.
  • Physical keys: a keydown with the J key's code and a Persian character moves to the next item.
  • Arrow keys: ArrowDown, ArrowUp, Home and End move through the desk's rows and the set's items.
  • Field check: "Big bold jab" typed into a generated form's title stays in the field, and B doesn't go back. This is the field check outside any dialog, which the old test couldn't reach.
  • Queue order: skipping the first set with N and approving the second lands on the third.

bUnit: the dialogs list the new keys, and the switch is rendered on.

dotnet build -warnaserror, the unit and bUnit suite and the keyboard browser tests pass locally. No new package and no new project reference.

Checklist

  • Linked to an issue a maintainer has confirmed
  • Targets v2
  • Tests or docs updated where behaviour changed
  • No tool-generated co-author trailers or footers

@pournasserian pournasserian added this to the M1 Governance core milestone Oct 20, 2026
@pournasserian pournasserian added v2 FluentCMS v2 (v2 branch) type:bug Defect area:desk Review desk (DSK) labels Oct 20, 2026
…r the page when storage refuses, and test the reload properly
@pournasserian
pournasserian merged commit e63fd03 into v2 Oct 20, 2026
2 checks passed
@pournasserian
pournasserian deleted the 2626-shortcut-switch branch October 20, 2026 03:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:desk Review desk (DSK) type:bug Defect v2 FluentCMS v2 (v2 branch)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Let people turn off single-key shortcuts and test the keyboard paths properly

1 participant