File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed
packages/react-native-web/src/modules/createDOMProps Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -232,6 +232,18 @@ describe('modules/createDOMProps', () => {
232
232
expect ( respondsToEnter ( 'div' , 'bogus' ) ) . toBe ( false ) ;
233
233
} ) ;
234
234
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
+
235
247
test ( 'emulates "onClick" for "Space" for certain roles' , ( ) => {
236
248
expect ( respondsToSpace ( 'div' , 'button' ) ) . toBe ( true ) ;
237
249
expect ( respondsToSpace ( 'div' , 'menuitem' ) ) . toBe ( true ) ;
Original file line number Diff line number Diff line change @@ -225,7 +225,12 @@ const createDOMProps = (component, props) => {
225
225
// Keyboard accessibility
226
226
// Button-like roles should trigger 'onClick' if SPACE key is pressed.
227
227
// 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
+ ) {
229
234
const onClick = domProps . onClick ;
230
235
if ( onClick != null ) {
231
236
if ( disabled ) {
You can’t perform that action at this time.
0 commit comments