我正在尝试使用RN中的辅助功能,并且有几个问题。如何在不禁用“话语提示”的情况下摆脱UI中的绿色框。第二个是-如何强制屏幕阅读器读取由多个组件组成的视图元素的顺序?目前,我根据某些参数操纵状态并将其传递给属性:accessibilityLabel,accessibilityHint,重要的ForAccessibility以完成此操作。有更好的方法吗? 这是一个示例:
this.setState(function(){
if(<some condition>){
return{
accessibilityLabel: "press right to move to other item",
importantForAccessibility: "yes"
}
}else{
return {
accessibilityLabel: "something else",
importantForAccessibility: "no-hide-descendants"
}
}
)}
然后
render(){
return(
<View
accessibilityLabel=
{this.state.accessibilityLabel}
importantForAccessibility=
{this.state.importantForAccessibility}
/>
)
}
答案 0 :(得分:0)
如何在不禁用“话语提示”的情况下摆脱UI中的绿色框。
绿色框是“对讲”的一部分。这是一项重要功能,可以清楚地显示屏幕阅读器的光标在哪里;对于部分视力障碍,阅读障碍,记忆力减退和注意力障碍等多种残疾有用。
作为用户,据我所知无法将其关闭。 (我在Android 8.0上安装了Android Accessibility Suite版本7.2)。不过,其他平台上的某些屏幕阅读器会提供用户首选项以自定义外观。
作为开发人员,您也不能将其关闭-它是Talkback的一部分,而不是应用程序。这是一件好事。它是用户的辅助技术,而不是开发人员的技术。即使开发人员可以关闭屏幕阅读器的可视光标,也不应这样做。 (这就像用* { cursor: none !important; }
设置网页样式-鼠标用户不会为此感到感谢!)
如何强制屏幕阅读器读取由多个组件组成的视图元素的顺序?
使用网络浏览器时,屏幕阅读器会以DOM顺序读取网页,因此适用于网页的一般原理是使视觉顺序与DOM顺序匹配。 (此外:这对于有视力的键盘用户也很重要,因为与视觉顺序不同的制表顺序可能会非常混乱。)
我对React-native应用程序不太熟悉,但是我可以想象有类似的事情适用。您应该以有意义的顺序来组织应用程序的内容和控件。如果应用程序具有多个区域,请以允许用户跳至特定区域(带有标题,ARIA地标角色或可能的其他分组容器)的方式标记这些区域。请注意,屏幕阅读器用户不一定是盲人,因此关于视觉顺序和DOM顺序的观点很重要。
值得澄清的是,您是否要强制执行整个应用程序的“阅读顺序”(例如,当用户浏览应用程序UI只是为了查看其中的内容时);而不是响应特定小部件(例如日期选择器)中的特定用户操作来管理焦点。由于React-native使用JS,我建议阅读ARIA - Managing Focus来看看这是否适用于您的情况。