无障碍属性最佳实践:使用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
相关产品推荐
相关产品推荐

