Extend AccessibilityInfo.sendAccessibilityEvent to support 'click' event for Android

Summary:
This diff extends AccessibilityInfo.sendAccessibilityEvent to support 'click' event on RN Android

changelog: [internal] internal

Reviewed By: kacieb

Differential Revision: D27060395

fbshipit-source-id: 5bf7479d72efb66c3a388fc3ea11990e285ca054
This commit is contained in:
David Vacca 2021-03-20 02:58:27 -07:00 коммит произвёл Facebook GitHub Bot
Родитель 3f571203ae
Коммит eacc94005b
3 изменённых файлов: 15 добавлений и 3 удалений

Просмотреть файл

@ -26,7 +26,7 @@ type AccessibilityEventDefinitions = {
change: [boolean],
};
type AccessibilityEventTypes = 'focus';
type AccessibilityEventTypes = 'focus' | 'click';
const _subscriptions = new Map();
@ -162,7 +162,12 @@ const AccessibilityInfo = {
eventType: AccessibilityEventTypes,
) {
// route through React renderer to distinguish between Fabric and non-Fabric handles
sendAccessibilityEvent(handle, eventType);
// iOS only supports 'focus' event types
if (eventType === 'focus') {
sendAccessibilityEvent(handle, eventType);
} else if (eventType === 'click') {
// Do nothing!
}
},
/**

Просмотреть файл

@ -43,7 +43,8 @@ type AccessibilityEventDefinitions = {
],
};
type AccessibilityEventTypes = 'focus';
// 'click' event type is not implemented in iOS. It's declared here to avoid flow type errors
type AccessibilityEventTypes = 'focus' | 'click';
const _subscriptions = new Map();

Просмотреть файл

@ -24,6 +24,12 @@ function legacySendAccessibilityEvent(
UIManager.getConstants().AccessibilityEventTypes.typeViewFocused,
);
}
if (eventType === 'click') {
UIManager.sendAccessibilityEvent(
reactTag,
UIManager.getConstants().AccessibilityEventTypes.typeViewClicked,
);
}
}
module.exports = legacySendAccessibilityEvent;