Skip to content

feat(core): keyboard navigation and focus shortcut for unified search#62157

Merged
pringelmann merged 2 commits into
masterfrom
feat/search-keyboard-nav
Jul 17, 2026
Merged

feat(core): keyboard navigation and focus shortcut for unified search#62157
pringelmann merged 2 commits into
masterfrom
feat/search-keyboard-nav

Conversation

@pringelmann

@pringelmann pringelmann commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the combobox keyboard model and a global focus shortcut to the new unified search.

Header input is a combobox: up/down arrows move a highlighted result via aria-activedescendant (focus stays in the input), Enter opens it, first result is auto-selected, and an aria-live region announces searching/result counts.

Also added global focus shortcut ⌘/Ctrl+K.

Before:

image

After:

image image

Not included

aria-selected and dropping the result tab-stops need a small @nextcloud/vue (NcListItem) change, tracked as a follow-up for this subtask.

Checklist

  • Code is properly formatted
  • Sign-off message is added to all commits
  • Tests (unit) are included
  • Screenshots before/after for front-end changes
  • Documentation has been updated or is not required
  • Backports requested where applicable
  • Labels added where applicable (enhancement, 3. to review, unified-search)
  • Milestone added for target branch/version

AI (if applicable)

  • The content of this PR was partly or fully generated using AI (mainly tests)

@pringelmann pringelmann self-assigned this Jul 15, 2026
@pringelmann pringelmann added accessibility feature: search team: IDP Code maintained by 🪪 IDP team labels Jul 15, 2026
@pringelmann pringelmann added this to the Nextcloud 35 milestone Jul 15, 2026
@pringelmann
pringelmann force-pushed the feat/search-keyboard-nav branch from 2c9d44c to a1ff563 Compare July 15, 2026 09:19
@pringelmann
pringelmann marked this pull request as ready for review July 15, 2026 10:10
@pringelmann
pringelmann requested a review from a team as a code owner July 15, 2026 10:10
@pringelmann
pringelmann requested review from nfebe, skjnldsv and sorbaugh and removed request for a team July 15, 2026 10:10
@pringelmann pringelmann added the 3. to review Waiting for reviews label Jul 15, 2026
@pringelmann
pringelmann requested review from kra-mo and susnux July 15, 2026 10:10
@pringelmann
pringelmann force-pushed the feat/search-keyboard-nav branch from a1ff563 to decf927 Compare July 15, 2026 10:28
@pringelmann pringelmann removed the 3. to review Waiting for reviews label Jul 15, 2026
@pringelmann
pringelmann marked this pull request as draft July 15, 2026 13:10
@pringelmann

pringelmann commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

Putting this back into draft mode. This approach is not working with orca. Will re-asses

Works in Orca, had to restart browser. Also tested NVDA on Windows.

@pringelmann
pringelmann force-pushed the feat/search-keyboard-nav branch 2 times, most recently from e20fdcc to bcc4dc0 Compare July 16, 2026 08:12
@pringelmann
pringelmann marked this pull request as ready for review July 16, 2026 08:12
@pringelmann pringelmann added the 3. to review Waiting for reviews label Jul 16, 2026
@pringelmann
pringelmann requested review from nfebe and susnux July 16, 2026 08:12
@pringelmann
pringelmann requested review from kra-mo and skjnldsv July 16, 2026 08:13
@pringelmann
pringelmann force-pushed the feat/search-keyboard-nav branch 4 times, most recently from 375aebd to fa8cf00 Compare July 17, 2026 07:42

@kra-mo kra-mo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested it out, really really nice :)

The UI for the selection highlight I'm guessing is out of scope for this, but will be changed, right?

(Switching apps like this is great!)

@pringelmann

Copy link
Copy Markdown
Contributor Author

I tested it out, really really nice :)

The UI for the selection highlight I'm guessing is out of scope for this, but will be changed, right?

(Switching apps like this is great!)

Yes, there is a separate sub-task for reworking the UI. This is mostly just for a11y

@pringelmann
pringelmann force-pushed the feat/search-keyboard-nav branch 2 times, most recently from 494075a to c3b24c4 Compare July 17, 2026 10:08
@pringelmann

Copy link
Copy Markdown
Contributor Author

/compile amend

@nextcloud-command
nextcloud-command force-pushed the feat/search-keyboard-nav branch from c3b24c4 to 64ef6f5 Compare July 17, 2026 10:36
Comment thread core/src/components/UnifiedSearch/UnifiedSearchInput.vue

@susnux susnux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good, could you add e2e tests (playwright) for this feature?

@pringelmann
pringelmann force-pushed the feat/search-keyboard-nav branch from 64ef6f5 to 5f5a62e Compare July 17, 2026 11:19
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
@pringelmann
pringelmann force-pushed the feat/search-keyboard-nav branch from 5f5a62e to 86537bf Compare July 17, 2026 11:26
@pringelmann

Copy link
Copy Markdown
Contributor Author

/compile amend

Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
@nextcloud-command
nextcloud-command force-pushed the feat/search-keyboard-nav branch from 1c433f8 to 55a94d3 Compare July 17, 2026 12:10
@pringelmann
pringelmann merged commit aae73b1 into master Jul 17, 2026
200 of 202 checks passed
@pringelmann
pringelmann deleted the feat/search-keyboard-nav branch July 17, 2026 13:58

@jancborchardt jancborchardt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool @pringelmann! :) Makes search a lot more reachable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review Waiting for reviews accessibility feature: search team: IDP Code maintained by 🪪 IDP team

Projects

Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

Keyboard navigation + Cmd/Ctrl+K

4 participants