微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ReactNative - 不为 Android 调用 onAccessibilityAction在 iOS 上运行良好

如何解决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 举报,一经查实,本站将立刻删除。