@@ -54,8 +54,6 @@ import { Observable, isObservable, Subscription } from "rxjs";
5454 class="bx--list-box__menu bx--multi-select"
5555 [attr.aria-label]="ariaLabel">
5656 <li
57- #listItem
58- tabindex="-1"
5957 role="option"
6058 *ngFor="let item of displayItems; let i = index"
6159 (click)="doClick($event, item)"
@@ -67,7 +65,10 @@ import { Observable, isObservable, Subscription } from "rxjs";
6765 'bx--list-box__menu-item--active': item.selected,
6866 disabled: item.disabled
6967 }">
70- <div class="bx--list-box__menu-item__option">
68+ <div
69+ #listItem
70+ tabindex="-1"
71+ class="bx--list-box__menu-item__option">
7172 <div
7273 *ngIf="!listTpl && type === 'multi'"
7374 class="bx--form-item bx--checkbox-wrapper">
@@ -405,10 +406,12 @@ export class DropdownList implements AbstractDropdownView, AfterViewInit, OnDest
405406 doKeyDown ( event : KeyboardEvent , item : ListItem ) {
406407 // "Spacebar", "Down", and "Up" are IE specific values
407408 if ( event . key === "Enter" || event . key === " " || event . key === "Spacebar" ) {
408- event . preventDefault ( ) ;
409- if ( event . key === "Enter" ) {
410- this . doClick ( event , item ) ;
411- }
409+ if ( this . listElementList . some ( option => option . nativeElement === event . target ) ) {
410+ event . preventDefault ( ) ;
411+ }
412+ if ( event . key === "Enter" ) {
413+ this . doClick ( event , item ) ;
414+ }
412415 } else if ( event . key === "ArrowDown" || event . key === "ArrowUp" || event . key === "Down" || event . key === "Up" ) {
413416 event . preventDefault ( ) ;
414417 if ( event . key === "ArrowDown" || event . key === "Down" ) {
0 commit comments