如何解决ReactNative - 不为 Android 调用 onAccessibilityAction在 iOS 上运行良好
我在具有辅助功能支持的 RadioGroup 中使用 TouchableOpacity。选择任何单选按钮时,我正在使用OnCaccessibleDible回调来读出所选的单选按钮。
但是 onAccessibilityAction 回调不适用于 Android。它只是有时阅读。在 iOS 上完美运行。
为了临时修复,我在 onPress 时添加了无障碍语音代码。但有时会读取两次。
这是我的代码:
{
radioProps.map(({ text,value,selected,disabled }) => (
<TouchableOpacity
style={{ ...Styles.radioContainer,opacity: disabled ? 0.4 : 1 }}
key={value}
accessible={true}
accessibilityLabel={`${getAccessibleLabel(selected,value)} ${text}`}
accessibilityRole={'radio'}
accessibilityActions={[{ name: 'selected',label: 'selected' }]}
onAccessibilityAction={(event): void => {
if (event.nativeEvent.actionName === 'selected') {
onRadioBtnPress(value);
}
}}
disabled={disabled}
onPress={(): void => {
onRadioBtnPress(value);
if (isAndroid()) {
AccessibilityInfo.announceForAccessibility(`${getLabel('selected')} ${text}`);
}
}}
activeOpacity={1}
>
<Radio selected={selected || (!!selectedValue && selectedValue === value)} />
<BodyTextLargeRegular
style={Styles.textStyle}
accessible={false}
>
{text}
</BodyTextLargeRegular>
</TouchableOpacity>
))}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。