diff --git a/cypress/integration/search/actions.spec.ts b/cypress/integration/search/actions.spec.ts index 162e490d1..d8c109ef6 100644 --- a/cypress/integration/search/actions.spec.ts +++ b/cypress/integration/search/actions.spec.ts @@ -15,11 +15,21 @@ describe('Start', () => { cy.modalIsVisibleAndFocused(); }); + it('Open modal with key shortcut on Windows/Linux when caps lock is on', () => { + cy.get('body').type('{ctrl}K'); + cy.modalIsVisibleAndFocused(); + }); + it('Open modal with key shortcut on macOS', () => { cy.get('body').type('{meta}k'); cy.modalIsVisibleAndFocused(); }); + it('Open modal with key shortcut on macOS when caps lock is on', () => { + cy.get('body').type('{meta}K'); + cy.modalIsVisibleAndFocused(); + }); + it('Open modal with forward slash key shortcut', () => { cy.get('body').type('/'); cy.modalIsVisibleAndFocused(); diff --git a/packages/docsearch-react/src/useDocSearchKeyboardEvents.ts b/packages/docsearch-react/src/useDocSearchKeyboardEvents.ts index 8a9919456..0e660eb99 100644 --- a/packages/docsearch-react/src/useDocSearchKeyboardEvents.ts +++ b/packages/docsearch-react/src/useDocSearchKeyboardEvents.ts @@ -39,7 +39,7 @@ export function useDocSearchKeyboardEvents({ if ( (event.keyCode === 27 && isOpen) || // The `Cmd+K` shortcut both opens and closes the modal. - (event.key === 'k' && (event.metaKey || event.ctrlKey)) || + (event.key.toLowerCase() === 'k' && (event.metaKey || event.ctrlKey)) || // The `/` shortcut opens but doesn't close the modal because it's // a character. (!isEditingContent(event) && event.key === '/' && !isOpen)