react-native - 我们什么时候应该在 React Native 中使用 `accessibilityRole`?

标签 react-native accessibility voiceover talkback

这样对吗?恐怕它会给用户读两次“切换”这个词。

<Switch
      accessible={true}
      accessibilityLabel="Switch button"
      accessibilityHint="Double tap to toggle setting"
      accessibilityRole="switch"   
/>

提前谢谢了。

最佳答案

关于可访问性的几点说明:

  • 从 0.60 开始,默认情况下可以访问所有交互式 React Native 组件。 ( accessible=true )
  • 使用 accessible 时要小心范围。它将任何子元素捆绑到一个可访问的组件中,并且屏幕阅读器将不允许用户在 true 时选择单个组件。 (因此,您可能需要覆盖默认行为。)
  • 特别是对于标签,请记住使用完整的标点符号,否则您可能会创建意想不到的和压倒性的连续句子。
  • 对于用户体验,您的标签应该以简洁的方式阅读切换的目的。在没有上下文的情况下阅读它,我不知道这个切换实际上会做什么。

  • 回答你的问题:
    您是正确的,此设置会读出“开关按钮”两次,然后是提示。
    我测试了 <Switch>刚刚在 iPad 上使用 VoiceOver 的组件。默认情况下,它是可访问的,并以“按钮”的角色读取。给它一个参数 accessibilityRole='switch'读取“切换按钮”的角色,并自动包含“双击以切换设置”。暗示。
    以下组件将向用户显示“飞行模式。切换按钮......双击以切换设置”。
    <Switch
          accessibilityLabel="Airplane mode."
          accessibilityRole="switch"   
    />
    

    关于react-native - 我们什么时候应该在 React Native 中使用 `accessibilityRole`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61914642/

    相关文章:

    windows - 如何使用 VirtualBox 和 Ubuntu 作为开发环境以及 Windows 10 和 Android Studio 作为 Android 模拟器在 React Native 中进行开发

    react-native - 当某个 Action 发生时如何关闭 eventChannel

    javascript - 如何使用 React Native 创建模态窗口?

    HTML 可访问表格 - 必须是一行中的第一列吗?

    javascript - 有没有办法做一个可访问的模式?

    ios - react-native - Pod 安装停留在克隆规范 repo

    web - 如果元素从网页上消失,焦点应该放在什么地方

    ios - 对于 iOS、Safari、VoiceOver,如何让 VoiceOver 阅读文本内容以外的内容?

    javascript - iOS Safari VoiceOver - 如何阅读动态内容?

    ios - VoiceOver 滑动时如何水平滚动 UIStackView?