Skip to content

Commit d9c755d

Browse files
comp615necolas
authored andcommitted
[fix] Enter key handling for components explicitly given accessible prop
Close #1783
1 parent 63c3945 commit d9c755d

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

packages/react-native-web/src/modules/createDOMProps/__tests__/index-test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,18 @@ describe('modules/createDOMProps', () => {
232232
expect(respondsToEnter('div', 'bogus')).toBe(false);
233233
});
234234

235+
test('emulates "onClick" for "Enter" for items marked accessible', () => {
236+
const onClick = jest.fn();
237+
const event = { key: 'Enter', preventDefault: jest.fn() };
238+
const finalProps = createDOMProps('div', {
239+
accessible: true,
240+
accessibilityRole: 'article',
241+
onClick
242+
});
243+
finalProps.onKeyDown(event);
244+
expect(onClick).toHaveBeenCalled();
245+
});
246+
235247
test('emulates "onClick" for "Space" for certain roles', () => {
236248
expect(respondsToSpace('div', 'button')).toBe(true);
237249
expect(respondsToSpace('div', 'menuitem')).toBe(true);

packages/react-native-web/src/modules/createDOMProps/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,12 @@ const createDOMProps = (component, props) => {
225225
// Keyboard accessibility
226226
// Button-like roles should trigger 'onClick' if SPACE key is pressed.
227227
// Button-like roles should not trigger 'onClick' if they are disabled.
228-
if (isNativeInteractiveElement || role === 'button' || role === 'menuitem') {
228+
if (
229+
isNativeInteractiveElement ||
230+
role === 'button' ||
231+
role === 'menuitem' ||
232+
(accessible === true && focusable)
233+
) {
229234
const onClick = domProps.onClick;
230235
if (onClick != null) {
231236
if (disabled) {

0 commit comments

Comments
 (0)