From 95aa3cd58995cda9633a264db047ecc1ea627a87 Mon Sep 17 00:00:00 2001 From: Murareelal Meghwal Date: Sun, 18 Oct 2026 10:24:22 +0530 Subject: [PATCH] fix(material/select): avoid intercepting keystrokes on inputs inside panel Prevent keyboard navigation and selection from intercepting typing, space, or cursor keys when interacting with an input or textarea inside the select panel. Fixes #18069 --- src/material/select/select.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/material/select/select.ts b/src/material/select/select.ts index 59415b689663..cdede2114943 100644 --- a/src/material/select/select.ts +++ b/src/material/select/select.ts @@ -934,6 +934,23 @@ export class MatSelect /** Handles keyboard events when the selected is open. */ private _handleOpenKeydown(event: KeyboardEvent): void { + const target = _getEventTarget(event); + const isInputTarget = + target && + (target.nodeName === 'INPUT' || + target.nodeName === 'TEXTAREA' || + target.getAttribute('contenteditable') === 'true'); + + // If typing inside an input/textarea element in the panel, avoid intercepting keystrokes. + if (isInputTarget) { + if (event.keyCode === ESCAPE && !hasModifierKey(event)) { + event.preventDefault(); + this.close(); + this.focus(); + } + return; + } + const manager = this._keyManager; const keyCode = event.keyCode; const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;