Add complete keyboard navigation.

This commit is contained in:
2026-08-07 17:00:49 +02:00
parent 87a161058f
commit 5709c80209
38 changed files with 1943 additions and 355 deletions

View File

@@ -72,6 +72,26 @@ surface AppShellSurface {
shell.sidebar.width
shell.content_area.panel.visible
shell.assistant_sidebar.visible
@guarantee KeyboardTraversal
-- Tab and Shift+Tab traverse every enabled button, checkbox, picker,
-- and text editor in visual order. Disabled controls are skipped.
-- Enter or Space activates the focused control.
@guarantee KeyboardHints
-- Holding Control+Option on macOS or Control+Alt on Linux/Windows reveals
-- an access-key marker on every enabled control intersecting the viewport.
-- Semantic controls use their direct one-character shortcut. Remaining
-- visible controls receive stable two- or three-letter A-Z codes in
-- widget-tree order, excluding direct letters as generic prefixes.
-- Every marker is a warm-yellow box with black text and border, placed
-- wholly inside its control without obscuring activity-bar icons.
-- Typing a prefix while holding the modifier hides non-matches and shows
-- only each candidate's remaining suffix; a complete code activates its
-- control. Escape or modifier release cancels the access-key mode.
-- Covered layers and off-screen scroll content receive no code. A focused
-- Option/Alt alone always remains available for character input, and a
-- focused text editor retains modified input instead of entering the mode.
}
value ContentArea {
@@ -162,6 +182,7 @@ value ActivityButton {
label_key: String -- i18n key for tooltip
badge: Badge? -- only git has a badge
active: Boolean -- highlighted when this view is showing
access_key: String -- Control+Option (macOS) or Control+Alt + 1..9,0 in displayed order
}
value Badge {
@@ -317,3 +338,9 @@ value TokenUsage {
-- Ctrl/Cmd+B: toggle sidebar
-- Ctrl/Cmd+W: close active tab (see tabs.allium)
-- Tab / Shift+Tab: next / previous enabled control
-- Enter / Space: activate focused control
-- Control+Option (macOS) or Control+Alt + 1..9,0: activate the corresponding activity
-- Post editor Control+Option (macOS) or Control+Alt + M/X: toggle metadata/excerpt
-- Import and Settings sections expose unique Control+Option or Control+Alt access keys
-- Site Validation uses R/A and Metadata Diff uses R with the platform modifier pair