uttrflow / uttrflow/uttrflow-swift
There is no ⌘F: the page search field in the main window can't be reached by shortcut
- Dominant language
- Swift
- Stars
- 4
- Forks
- 17
- Avg merge
- 3h 32m
- Merged PRs (30d)
- 277
Description
## What happens
Five pages of the main window have a search field in the page header (History, Dictation, Dictionary, Snippets and Corrections: `MainSearchField` in `Sources/UttrflowUX/HistoryPresentation.swift:134` used from `MainWindowView.swift:81-85`, `MainDictationPresentation.swift:188`, `DictionaryPresentation.swift:206`, `SnippetsPresentation.swift:205`, `CorrectionsPresentation.swift:176`). There is no ⌘F to get to it:
- The app's menu bar (`Sources/Uttrflow/MainMenu.swift`) has no Find item. Its Edit menu stops at Select All (lines 47-59).
- `MainSearchControl` (`Sources/Uttrflow/Main/MainWindowView.swift:220-240`) has no `@FocusState`, and nothing in the window can move focus to it. A grep for `FocusState` and `.focused` across `Sources/Uttrflow` (outside the panel) returns nothing.
The only ways into the field are clicking it, or tabbing through the sidebar's page buttons and the header first with Full Keyboard Access on.
## Why it matters
⌘F is the standard way into search in every Mac app, and people reach for it without looking. Keyboard-only and VoiceOver users otherwise have to walk through the whole sidebar to reach the field.
## How to reproduce
Open the main window, go to History, and press ⌘F. Nothing happens, and focus doesn't move.
## Acceptance criteria
- Edit, Find (⌘F) is in the menu bar. It's enabled when the current page has a search field and disabled otherwise.
- Choosing it focuses and selects the current page's search field.
- Escape in a focused, non-empty search field clears it.
- `Tests/UttrflowTests/MainMenuTests.swift` covers the new item and its key equivalent.
Contributor guide
Research direction
Start with Sources/Uttrflow/MainMenu.swift and MainWindowView.swift, including MainSearchControl and the five page presentations named in the issue. Read Tests/UttrflowTests/MainMenuTests.swift and reproduce ⌘F on the History page. Done means Edit > Find is conditionally enabled, focuses and selects the page search field, Escape clears non-empty input, and the menu test covers the key equivalent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, swift
- Domain
- accessibility, desktop-dev
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100