@samitouri / QOS-React-2 / commits / 34aaec6f90

[react-events] Ensure screen reader virtual clicks support preventDefault (#16600)

Dominic Gannaway committed Aug 28, 2019 at 17:39 UTC 34aaec6f908e85d56cbc510677bc1c85d87aa57b
2 files changed +8 -1
packages/react-events/src/dom/Press.js
+5
@@ -635,6 +635,11 @@ const pressResponderImpl = {
635 if (isFunction(onPress) && isScreenReaderVirtualClick(nativeEvent)) {
636 state.pointerType = 'keyboard';
637 state.pressTarget = event.responderTarget;
638 + const preventDefault = props.preventDefault;
639 +
640 + if (preventDefault !== false) {
641 + nativeEvent.preventDefault();
642 + }
643 dispatchEvent(event, onPress, context, state, 'press', DiscreteEvent);
644 }
645 break;
packages/react-events/src/dom/__tests__/Press-test.internal.js
+3 -1
@@ -423,7 +423,9 @@ describe.each(environmentTable)('Press responder', hasPointerEvents => {
423
424 it('is called once after virtual screen reader "click" event', () => {
425 const target = createEventTarget(ref.current);
426 - target.virtualclick();
426 + const preventDefault = jest.fn();
427 + target.virtualclick({preventDefault});
428 + expect(preventDefault).toBeCalled();
429 expect(onPress).toHaveBeenCalledTimes(1);
430 expect(onPress).toHaveBeenCalledWith(
431 expect.objectContaining({