Skip to content

KeyTips: badges follow arrow-key menu navigation; QAT customize drill; check boxes toggle on activation - #73

Merged
mstrobel merged 1 commit into
developfrom
fix/keytips-qat-menu-nav
Sep 12, 2026
Merged

mstrobel merged 1 commit into
developfrom
fix/keytips-qat-menu-nav

Conversation

@mstrobel

@mstrobel mstrobel commented Sep 12, 2026 •

Copy link
Copy Markdown
Owner

Follow-up to #72 (maintainer, 2026-09-12).

Badges follow the keyboard through menus. With the overlay up, a submenu the arrow keys open (Right/Enter on a header row) or a sibling top-level menu reached by arrows gets a level pushed over its rows; a popup the keyboard closes (Left, Esc inside the menu) pops its level. The rule: a newly opened popup whose placement target is one of the shown level's badged controls is a continuation of the drill. KeyTipController.SyncWithPopups runs at the post-layout hook once no build is parked, and each level records the surface it annotates. A keyboard-opened popup that never realizes anything badgeable is left open (only a drill's own give-up undoes its reveal).

QAT customize ▾. It had no badge (a glyph face, and its checklist is a raw Popup rather than a dropdown button). It now carries the explicit 00 badge in the QAT's digit family and drills into the checklist: the candidate check boxes, More Commands…, Show Below the Ribbon.

Check boxes. The access-key reaction stays focus-first as designed (single- and multi-match consistent). A KeyTip badge names the box outright, so activating it toggles through the click path (ButtonBase.InvokeKeyTipClick).

Tests: new KeyTipMenuNavigationTests (nested submenu via arrows, sibling menu via arrows, QAT customize drill + toggle). Bars 314 / UI 3962 green. Design doc §14 updated.

🤖 Generated with Claude Code

https://claude.ai/code/session_013qbF5ru6uh5w7fqhP3yoPE

…ustomize ▾ drills into its checklist; check boxes toggle on badge activation

Maintainer, 2026-09-12. (1) With the overlay up, the arrow keys now carry the badges along: a submenu the keyboard
opens (Right/Enter on a header row) or a sibling top-level menu reached by arrows gets a level pushed over its rows
— the popup's placement target is one of the shown level's badged controls — and a popup the keyboard closes (Left,
Esc inside the menu) pops its level. KeyTipController.SyncWithPopups runs at the post-layout hook once no build is
parked; each level records the surface it annotates (KeyTipLevel.Surface). A keyboard-opened popup that never
realizes anything badgeable is left open (a drill's give-up still undoes its own reveal).
(2) The QAT customize ▾ had no badge (a glyph face; its checklist is a raw Popup): it now carries the explicit '00'
badge in the QAT's digit family and drills into the checklist.
(3) A CheckBox's access-key reaction is focus-first by design (single- and multi-match consistent); a KeyTip badge
names the box outright, so activating it now toggles through the click path (ButtonBase.InvokeKeyTipClick).
KeyTipMenuNavigationTests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013qbF5ru6uh5w7fqhP3yoPE
@mstrobel
mstrobel merged commit 5088d08 into develop Sep 12, 2026
3 checks passed
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