Skip to content

feat(app-switcher): add keyboard navigation (#DS-4246)#1770

Merged
lskramarov merged 4 commits into
mainfrom
feat/DS-4246
Jul 24, 2026
Merged

feat(app-switcher): add keyboard navigation (#DS-4246)#1770
lskramarov merged 4 commits into
mainfrom
feat/DS-4246

Conversation

@lskramarov

Copy link
Copy Markdown
Contributor

No description provided.

@lskramarov lskramarov self-assigned this Jul 22, 2026
@lskramarov lskramarov added the enhancement New feature or request label Jul 22, 2026
@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit ede7118):

https://koobiq-next--prs-1770-1yix5kei.web.app

(expires Sun, 26 Jul 2026 12:07:43 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: c9e37e518febda70d0317d07e8ceb35ac43c534c

@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@github-actions

Copy link
Copy Markdown

🚨 E2E tests failed

Review the report for details.


💡 Comment /approve-snapshots to approve snapshot changes.

@lskramarov

Copy link
Copy Markdown
Contributor Author

/approve-snapshots

@github-actions

Copy link
Copy Markdown

🔄 Updating snapshots.

@github-actions

Copy link
Copy Markdown

🚨 Failed to update snapshots.

Copilot AI 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.

Pull request overview

This PR adds comprehensive keyboard navigation and ARIA semantics to the KbqAppSwitcherComponent, making the switcher usable as a roving-focus menu (including grouped apps and platform flyouts) with both unit and Playwright coverage.

Changes:

  • Introduced a FocusKeyManager-based navigation model with Home/End, typeahead, group expand/collapse, and input-to-list focus handoff.
  • Added ARIA roles/attributes (role="menu", role="menuitem", aria-expanded, aria-haspopup) and updated focus-ring rendering for keyboard focus.
  • Added Jest and Playwright tests covering keyboard navigation, focus behavior, and ARIA exposure; updated docs (EN/RU) accordingly.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tools/public_api_guard/components/app-switcher.api.md Public API snapshot updated for new lifecycle + key manager members.
tools/cspell-locales/ru.json Adds RU dictionary entry used by new docs/text.
packages/components/app-switcher/app-switcher.ts Implements roving-focus keyboard navigation, focus tracking, RTL handling, and cleanup.
packages/components/app-switcher/app-switcher.html Adds role="menu" container, nested-alias class binding, and flyout ARIA/focus syncing.
packages/components/app-switcher/kbq-app-switcher-list-item.ts Marks list rows as menuitem, adds tabindex and group aria-expanded.
packages/components/app-switcher/kbq-app-switcher-list-item.scss Ensures a visible keyboard focus ring via inset box-shadow.
packages/components/app-switcher/app-switcher-dropdown-site.ts Marks site rows as menuitem, adds tabindex and aria-haspopup when nested.
packages/components/app-switcher/app-switcher-dropdown-app.ts Marks flyout app rows as menuitem, adds tabindex and aria-haspopup when nested.
packages/components/app-switcher/app-switcher.spec.ts Adds unit tests for keyboard navigation, grouping, RTL inversion, and ARIA roles.
packages/components/app-switcher/e2e.playwright-spec.ts Adds Playwright keyboard navigation coverage and focus ring assertion.
packages/components/app-switcher/app-switcher.en.md Documents keyboard navigation behavior in English.
packages/components/app-switcher/app-switcher.ru.md Documents keyboard navigation behavior in Russian.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/components/app-switcher/app-switcher.ts
Comment thread packages/components/app-switcher/app-switcher.ts
Comment thread packages/components/app-switcher/app-switcher.ts
@lskramarov
lskramarov merged commit ee7cd9f into main Jul 24, 2026
9 checks passed
@lskramarov
lskramarov deleted the feat/DS-4246 branch July 24, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants