@@ -465,6 +465,22 @@ describe('MenuTrigger', () => {
465465 expect ( secondEvent . defaultPrevented ) . toBe ( false ) ;
466466 } ) ;
467467
468+ it ( 'should prevent the default action on enter presses on non-button/non-link triggers' , ( ) => {
469+ fixture . componentInstance . useButtonTrigger = false ;
470+ fixture . changeDetectorRef . markForCheck ( ) ;
471+ detectChanges ( ) ;
472+
473+ const firstEvent = dispatchKeyboardEvent ( nativeTrigger , 'keydown' , ENTER ) ;
474+ detectChanges ( ) ;
475+ expect ( firstEvent . defaultPrevented ) . toBe ( true ) ;
476+ expect ( nativeMenus . length ) . toBe ( 2 ) ;
477+
478+ const secondEvent = dispatchKeyboardEvent ( nativeTrigger , 'keydown' , ENTER ) ;
479+ detectChanges ( ) ;
480+ expect ( nativeMenus . length ) . toBe ( 1 ) ;
481+ expect ( secondEvent . defaultPrevented ) . toBe ( true ) ;
482+ } ) ;
483+
468484 it ( 'should close the open menu on background click' , ( ) => {
469485 nativeTrigger . click ( ) ;
470486 detectChanges ( ) ;
@@ -674,7 +690,11 @@ class TriggerOpensItsMenu {
674690
675691@Component ( {
676692 template : `
677- <button cdkMenuItem [cdkMenuTriggerFor]="sub1">First</button>
693+ @if (useButtonTrigger) {
694+ <button cdkMenuItem [cdkMenuTriggerFor]="sub1">First</button>
695+ } @else {
696+ <div cdkMenuItem [cdkMenuTriggerFor]="sub1">First</div>
697+ }
678698
679699 <ng-template #sub1>
680700 <div cdkMenu>
@@ -693,6 +713,7 @@ class StandaloneTriggerWithInlineMenu {
693713 @ViewChild ( 'submenu_item' , { read : ElementRef } ) submenuItem ?: ElementRef < HTMLElement > ;
694714 @ViewChild ( 'inline_item' , { read : ElementRef } ) nativeInlineItem : ElementRef < HTMLElement > ;
695715 @ViewChildren ( CdkMenu , { read : ElementRef } ) nativeMenus : QueryList < ElementRef > ;
716+ useButtonTrigger = true ;
696717}
697718
698719@Component ( {
0 commit comments