diff --git a/packages/react-interactions/events/src/dom/PressLegacy.js b/packages/react-interactions/events/src/dom/PressLegacy.js index 0b3756cb48fb..15616d097973 100644 --- a/packages/react-interactions/events/src/dom/PressLegacy.js +++ b/packages/react-interactions/events/src/dom/PressLegacy.js @@ -586,7 +586,11 @@ const pressResponderImpl = { !ctrlKey && !altKey ) { - nativeEvent.preventDefault(); + // Prevent spacebar press from scrolling the window + const key = nativeEvent.key; + if (key === ' ' || key === 'Spacebar') { + nativeEvent.preventDefault(); + } state.shouldPreventClick = true; } } else { @@ -637,7 +641,11 @@ const pressResponderImpl = { addRootEventTypes(context, state); } else { // Prevent spacebar press from scrolling the window - if (isValidKeyboardEvent(nativeEvent) && nativeEvent.key === ' ') { + const key = nativeEvent.key; + if ( + isValidKeyboardEvent(nativeEvent) && + (key === ' ' || key === 'Spacebar') + ) { nativeEvent.preventDefault(); } } diff --git a/packages/react-interactions/events/src/dom/__tests__/PressLegacy-test.internal.js b/packages/react-interactions/events/src/dom/__tests__/PressLegacy-test.internal.js index abb951889022..3e37a028db50 100644 --- a/packages/react-interactions/events/src/dom/__tests__/PressLegacy-test.internal.js +++ b/packages/react-interactions/events/src/dom/__tests__/PressLegacy-test.internal.js @@ -1054,8 +1054,9 @@ describe.each(environmentTable)('Press responder', hasPointerEvents => { ReactDOM.render(, container); const target = createEventTarget(ref.current); - target.keydown({key: 'Enter', preventDefault}); + target.keydown({key: 'Enter'}); target.keyup({key: 'Enter'}); + target.click({preventDefault}); expect(preventDefault).toBeCalled(); expect(onPress).toHaveBeenCalledWith( expect.objectContaining({defaultPrevented: true}),