Add complete keyboard navigation.
This commit is contained in:
@@ -342,6 +342,8 @@ surface MetadataDiffSurface {
|
||||
@guarantee ScanAction
|
||||
-- Scan/Rescan button at top.
|
||||
-- Progress bar + message during scan.
|
||||
-- Control+Option+R (macOS) or Control+Alt+R runs the scan; repair buttons use Tab
|
||||
-- and are activated with Enter or Space.
|
||||
|
||||
@guarantee EntityTabs
|
||||
-- Tabs: Posts, Media, Scripts, Templates — each with badge count of diffs.
|
||||
@@ -443,6 +445,8 @@ surface SiteValidationSurface {
|
||||
|
||||
@guarantee ApplyAction
|
||||
-- Apply button disabled when nothing to fix.
|
||||
-- Control+Option (macOS) or Control+Alt, followed by R, scans and A applies;
|
||||
-- both remain in Tab order.
|
||||
-- On apply: renders missing, deletes extra, re-renders updated.
|
||||
-- Toast: "Validation applied: N rendered, N deleted".
|
||||
}
|
||||
|
||||
@@ -131,6 +131,7 @@ surface PostEditorSurface {
|
||||
|
||||
@guarantee MetadataSection
|
||||
-- Collapsible section. Starts expanded when title is empty.
|
||||
-- Control+Option+M (macOS) or Control+Alt+M toggles it outside focused text input.
|
||||
-- Two-column layout.
|
||||
-- Left column: Title, Tags, Author, Language + detect button,
|
||||
-- Do Not Translate checkbox, Slug (read-only), Categories,
|
||||
@@ -156,6 +157,7 @@ surface PostEditorSurface {
|
||||
|
||||
@guarantee ExcerptSection
|
||||
-- Collapsible section with textarea (4 rows).
|
||||
-- Control+Option+X (macOS) or Control+Alt+X toggles it outside focused text input.
|
||||
|
||||
@guarantee EditorBodyToolbar
|
||||
-- Toolbar: "Content" label, mode toggle (Markdown/Preview),
|
||||
|
||||
@@ -219,6 +219,7 @@ surface SettingsViewSurface {
|
||||
@guarantee CollapsibleSections
|
||||
-- All 8 sections are collapsible.
|
||||
-- Section visibility respects search filter.
|
||||
-- Each visible section exposes a unique Control+Option or Control+Alt access key.
|
||||
}
|
||||
|
||||
-- ─── Settings view actions ──────────────────────────────────
|
||||
|
||||
@@ -136,6 +136,8 @@ surface WordPressImportSurface {
|
||||
-- taxonomy, and discovers WordPress shortcodes. The saved report shows
|
||||
-- item counts, conflicts, missing uploads, year distribution, macro
|
||||
-- usage, and importable totals before any project content is changed.
|
||||
-- Its Conflicts, Posts, Pages, Media, Taxonomy, and Macros sections
|
||||
-- expose unique Control+Option or Control+Alt access keys for disclosure control.
|
||||
|
||||
@guarantee ConflictReview
|
||||
-- Conflicts default to ignore. The operator can keep ignoring, overwrite
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user