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

This commit is contained in:
Dominic Gannaway
2019-08-28 17:39:07 +01:00
committed by GitHub
parent 01fb68b9bf
commit 34aaec6f90
2 changed files with 8 additions and 1 deletions
+5
View File
@@ -635,6 +635,11 @@ const pressResponderImpl = {
if (isFunction(onPress) && isScreenReaderVirtualClick(nativeEvent)) {
state.pointerType = 'keyboard';
state.pressTarget = event.responderTarget;
const preventDefault = props.preventDefault;
if (preventDefault !== false) {
nativeEvent.preventDefault();
}
dispatchEvent(event, onPress, context, state, 'press', DiscreteEvent);
}
break;
@@ -423,7 +423,9 @@ describe.each(environmentTable)('Press responder', hasPointerEvents => {
it('is called once after virtual screen reader "click" event', () => {
const target = createEventTarget(ref.current);
target.virtualclick();
const preventDefault = jest.fn();
target.virtualclick({preventDefault});
expect(preventDefault).toBeCalled();
expect(onPress).toHaveBeenCalledTimes(1);
expect(onPress).toHaveBeenCalledWith(
expect.objectContaining({