From 5586249a4888142e4b7cb4be826378fd08054efa Mon Sep 17 00:00:00 2001 From: Mike Fiedler Date: Thu, 25 Jun 2026 11:54:01 -0400 Subject: [PATCH] feat: activate search input from keyboard Refs: #1802 Signed-off-by: Mike Fiedler --- gcp/website/frontend3/src/search.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gcp/website/frontend3/src/search.js b/gcp/website/frontend3/src/search.js index 55a38f0b9d2..4552fe57d5f 100644 --- a/gcp/website/frontend3/src/search.js +++ b/gcp/website/frontend3/src/search.js @@ -58,9 +58,27 @@ export class ExpandableSearch { handleDocumentKeydown(e) { if (e.key === 'Escape' && this.isSearchActive()) { this.closeSearch(); + return; + } + + // Press "/" to jump to the search box, unless already typing in a field. + if (e.key === '/' && !e.ctrlKey && !e.metaKey && !e.altKey && + !this.isTypingContext(e.target)) { + e.preventDefault(); + this.openSearch(); } } + isTypingContext(target) { + if (!target) return false; + if (target.isContentEditable) return true; + // Native form fields, and Material web text fields whose focus retargets to + // the custom element host (e.g. md-filled-text-field, md-textfield-with-*). + const tag = target.tagName ? target.tagName.toLowerCase() : ''; + return tag === 'input' || tag === 'textarea' || tag === 'select' || + tag.includes('textfield') || tag.includes('text-field'); + } + initializeSearch() { const searchContainer = document.querySelector('.search-container-nav'); if (!searchContainer) {