diff --git a/packages/components/app-switcher/app-switcher-dropdown-app.scss b/packages/components/app-switcher/app-switcher-dropdown-app.scss index 65d113fda..ac7c13126 100644 --- a/packages/components/app-switcher/app-switcher-dropdown-app.scss +++ b/packages/components/app-switcher/app-switcher-dropdown-app.scss @@ -9,7 +9,7 @@ min-height: 50px; border-radius: var(--kbq-size-xs); - // base transparent border so the .cdk-keyboard-focused border-color renders a focus ring (matches list-item-base) + // transparent border to keep the box model aligned with the other list rows (matches kbq-list-item-base) border: var(--kbq-size-3xs) solid transparent; @include common.user-select(none); @@ -59,12 +59,9 @@ color: var(--kbq-list-default-text-color); &.kbq-dropdown-item_highlighted, - &:hover { - background: var(--kbq-states-background-transparent-active); - } - + &:hover, &.cdk-keyboard-focused { - border-color: var(--kbq-list-states-focused-focus-outline-color); + background: var(--kbq-states-background-transparent-active); } .kbq-app-switcher-dropdown-app__caption { diff --git a/packages/components/app-switcher/app-switcher-dropdown-app.ts b/packages/components/app-switcher/app-switcher-dropdown-app.ts index 764be0aa9..4165c5502 100644 --- a/packages/components/app-switcher/app-switcher-dropdown-app.ts +++ b/packages/components/app-switcher/app-switcher-dropdown-app.ts @@ -46,7 +46,10 @@ import { KbqAppSwitcherApp } from './app-switcher'; encapsulation: ViewEncapsulation.None, host: { class: 'kbq-app-switcher-dropdown-app', - '[class.kbq-dropdown-item]': 'false' + role: 'menuitem', + '[class.kbq-dropdown-item]': 'false', + '[attr.tabindex]': 'getTabIndex()', + '[attr.aria-haspopup]': "isNested ? 'menu' : null" }, exportAs: 'kbqAppSwitcherDropdownApp' }) diff --git a/packages/components/app-switcher/app-switcher-dropdown-site.scss b/packages/components/app-switcher/app-switcher-dropdown-site.scss index fa4b5a1f7..0d760f194 100644 --- a/packages/components/app-switcher/app-switcher-dropdown-site.scss +++ b/packages/components/app-switcher/app-switcher-dropdown-site.scss @@ -33,12 +33,9 @@ color: var(--kbq-list-default-text-color); &.kbq-dropdown-item_highlighted, - &:hover { - background: var(--kbq-states-background-transparent-active); - } - + &:hover, &.cdk-keyboard-focused { - border-color: var(--kbq-list-states-focused-focus-outline-color); + background: var(--kbq-states-background-transparent-active); } } } diff --git a/packages/components/app-switcher/app-switcher-dropdown-site.ts b/packages/components/app-switcher/app-switcher-dropdown-site.ts index 9decb5757..4cedcbc4e 100644 --- a/packages/components/app-switcher/app-switcher-dropdown-site.ts +++ b/packages/components/app-switcher/app-switcher-dropdown-site.ts @@ -36,7 +36,10 @@ import { KbqAppSwitcherSite } from './app-switcher'; encapsulation: ViewEncapsulation.None, host: { class: 'kbq-app-switcher-dropdown-site', - '[class.kbq-dropdown-item]': 'false' + role: 'menuitem', + '[class.kbq-dropdown-item]': 'false', + '[attr.tabindex]': 'getTabIndex()', + '[attr.aria-haspopup]': "isNested ? 'menu' : null" }, exportAs: 'kbqAppSwitcherDropdownSite' }) diff --git a/packages/components/app-switcher/app-switcher.en.md b/packages/components/app-switcher/app-switcher.en.md index 70741e644..1bbb0cbd8 100644 --- a/packages/components/app-switcher/app-switcher.en.md +++ b/packages/components/app-switcher/app-switcher.en.md @@ -22,3 +22,18 @@ When the system has multiple platforms, the applications of the selected platfor Search appears when more than 7 applications are available. Results are displayed as a flat list. + +### Keyboard navigation + +The list of applications can be operated entirely from the keyboard. + +|