---
id: CAP-PFM-CSH-003
title: Reach common actions with keyboard shortcuts
feature: FEAT-PFM-CSH-01
product_area: platform
module: console-shell
revision: 2
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
intent_sources: []
purpose: Frequent console actions have consistent keyboard entry points for staff.
outcomes:
  - Common actions remain reachable without pointer navigation.
  - Search shortcuts respect the person’s search authority.
concepts:
  - CON-PFM-CSH-001
actors:
  - ACT-PFM-001
  - ACT-PFM-002
surfaces:
  - console
preconditions: []
postconditions: []
permissions:
  - key: console.quick-search
    where_checked: console
    scope: tenant
  - key: platform.quick-search.read
    where_checked: api
    scope: tenant
rules:
  - id: BR-CAP-PFM-CSH-003-01
    proved_by: [ATS-PFM-CSH-003-02]
    statement: >-
      The console handles a recognized search command only when search is permitted and otherwise
      leaves the event to the browser.
    kind: permission
    enforced_at:
      - console
    must_prove: true
    provenance: observed
    source: >-
      react-console:components/console/console-provider.tsx:ConsoleProvider;
      lib/quick-search/shortcut.ts:isQuickSearchShortcut
    origin: none
  - id: BR-CAP-PFM-CSH-003-02
    proved_by: [ATS-PFM-CSH-003-03, TST-PFM-CSH-025]
    statement: >-
      Quick Search does not recognize bare K, Shift+K, Alt+K or a different modified letter as its
      search chord.
    kind: validation
    enforced_at:
      - console
    must_prove: true
    provenance: test
    source: >-
      react-console:lib/quick-search/__tests__/shortcut.test.ts#leaves a bare K alone, so typing a
      name never opens a dialog
    origin: none
  - id: BR-CAP-PFM-CSH-003-03
    proved_by: [ATS-PFM-CSH-003-04]
    statement: >-
      An unmodified slash opens permitted Quick Search except when focus is in an input, textarea,
      select or editable element.
    kind: policy
    enforced_at:
      - console
    must_prove: true
    provenance: observed
    source: 'react-console:components/console/console-provider.tsx:ConsoleProvider'
    origin: none
  - id: BR-CAP-PFM-CSH-003-04
    proved_by: [ATS-PFM-CSH-003-05]
    statement: >-
      Command or Ctrl with comma navigates to Configuration’s first destination, while the same
      modifier with J toggles the assistant panel.
    kind: policy
    enforced_at:
      - console
    must_prove: false
    provenance: observed
    source: 'react-console:components/console/console-provider.tsx:ConsoleProvider'
    origin: none
  - id: BR-CAP-PFM-CSH-003-05
    proved_by: [ATS-PFM-CSH-002-06, TST-PFM-CSH-010]
    statement: Command or Ctrl with B toggles navigation between expanded and collapsed states.
    kind: policy
    enforced_at:
      - console
    must_prove: false
    provenance: test
    source: 'react-console:e2e/layout/page-layouts.spec.ts#the keyboard shortcut collapses it too'
    origin: none
    note: The linked finding records the evidence limitation or implementation gap.
  - id: BR-CAP-PFM-CSH-003-06
    proved_by: []
    statement: >-
      Quick Search labels its shortcut for Apple or other hardware, while Configuration’s menu label
      always uses the Command symbol.
    kind: policy
    enforced_at:
      - console
    must_prove: false
    provenance: observed
    source: >-
      react-console:lib/quick-search/shortcut.ts:quickSearchShortcutLabel;
      components/console/app-sidebar.tsx:AppSidebar
    origin: none
  - id: BR-CAP-PFM-CSH-003-07
    proved_by: [ATS-PFM-CSH-003-01, TST-PFM-CSH-025]
    statement: >-
      The search-command matcher accepts Command with K or Ctrl with K on any device, including
      uppercase K.
    kind: validation
    enforced_at:
      - console
    must_prove: true
    provenance: test
    source: >-
      react-console:lib/quick-search/__tests__/shortcut.test.ts#accepts Cmd+K and Ctrl+K, whatever
      the machine is; lib/quick-search/__tests__/shortcut.test.ts#accepts an upper-case K, which is
      what some layouts report
    origin: none
scenarios:
  - id: SC-CAP-PFM-CSH-003-01
    given: Search is not permitted for the current person.
    when: They press Ctrl+K.
    then: The frame leaves the chord unhandled and opens no search dialog.
    provenance: observed
    source: 'react-console:components/console/console-provider.tsx:ConsoleProvider'
  - id: SC-CAP-PFM-CSH-003-02
    given: Focus is in a contact-name input.
    when: The person enters a slash.
    then: The field receives the character without opening search.
    provenance: observed
    source: 'react-console:components/console/console-provider.tsx:isTypingTarget'
edge_cases: []
constraints: []
depends_on: []
related:
  - CAP-PFM-CSH-002
  - CAP-PFM-CSH-007
journeys: []
open_questions: []
evidence:
  - >-
    react-console at baf6dae: components/console/console-provider.tsx, components/ui/sidebar.tsx,
    lib/quick-search/shortcut.ts, lib/quick-search/__tests__/shortcut.test.ts, docs/quick-search.md
    (keyboard), e2e/layout/page-layouts.spec.ts.
controls: [TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-DAT-001, TC-DAT-003, TC-LOG-005, TC-PI-001, TC-PI-003, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-VEN-001, TC-VEN-002, TC-VEN-003]
exercised_by: [FAS-PFM-CSH-01-02, FAS-PFM-CSH-01-04]
suites: [TST-PFM-CSH-010, TST-PFM-CSH-025]
---
# Reach common actions with keyboard shortcuts

## Purpose

Frequent console actions have consistent keyboard entry points for staff.

## How It Works

A staff member invokes a common action from the keyboard. The frame handles search, Configuration and the assistant shortcuts. Navigation collapse has a separate handler supplied by the sidebar. Search authority determines whether the frame handles a search chord. Ordinary text entry keeps the slash when focus is in an editable control. The product should make the Configuration label as device-aware as the search label.

## Relationships

- Quick Search belongs to Queries; the shell provides its keyboard entry.
- Page layout responds when navigation is collapsed with a shortcut.
