You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无障碍属性最佳实践:使用role还是accessibilityRole?

在React Native中为非语义化组件选择无障碍角色属性的最佳实践

在无需覆盖角色、且没法用语义化元素的简单场景下,优先用accessibilityRole,理由很直接:

  • 跨平台适配更省心:accessibilityRole是React Native专为跨平台无障碍设计的属性,会自动适配iOS和Android的原生无障碍规则,不管是VoiceOver还是TalkBack,都能准确识别组件的用途。而role是Web标准属性,React Native支持它主要是为了兼容Web场景(比如React Native Web),纯原生App里用accessibilityRole更贴合框架的设计逻辑。
  • 意图更清晰:光看名字就知道,accessibilityRole就是专门管无障碍的,团队里的人一看就懂这是为辅助技术做的设置,不会和Web端的role搞混。

拿你给的TouchableOpacity例子来说,正确的写法应该是:

<TouchableOpacity
  accessible={true}
  accessibilityRole="button"
  onPress={...}
>
...
</TouchableOpacity>

额外提一句:如果你的项目要同时支持React Native Web,那可以补充加个role属性,但纯原生移动App的简单场景下,accessibilityRole就是最优选择。

内容的提问来源于stack exchange,提问作者Etai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:32:35