Reactjs 在抽屉/模式打开时更改react本机应用程序中的可访问性焦点
我正在尝试改进react原生应用程序的可访问性,并且面临以下问题:当用户打开菜单抽屉时,焦点不会更改为模式抽屉内容。相反,左右滑动会聚焦背景中的内容 我曾尝试在抽屉和主要内容区域设置动态辅助功能道具:Reactjs 在抽屉/模式打开时更改react本机应用程序中的可访问性焦点,reactjs,react-native,accessibility,react-native-android,react-native-ios,Reactjs,React Native,Accessibility,React Native Android,React Native Ios,我正在尝试改进react原生应用程序的可访问性,并且面临以下问题:当用户打开菜单抽屉时,焦点不会更改为模式抽屉内容。相反,左右滑动会聚焦背景中的内容 我曾尝试在抽屉和主要内容区域设置动态辅助功能道具: <NavigationMenu importantForAccessibility={isNavigationVisible ? 'yes' : 'no-hide-descendants'} /> <DashboardContent importantForAcc
<NavigationMenu
importantForAccessibility={isNavigationVisible ? 'yes' : 'no-hide-descendants'}
/>
<DashboardContent
importantForAccessibility={isNavigationVisible ? 'no-hide-descendants' : 'yes'}
/>
其中,isNavigationVisible
是抽屉打开时更新的道具,但没有效果
有没有办法在抽屉打开时强制将焦点更改为抽屉?这就是我最后使用的:
const setFocus = ({ current: ref }) => {
const FOCUS_ON_VIEW = 8;
const reactTag = findNodeHandle(ref);
Platform.OS === 'android'
? UIManager.sendAccessibilityEvent(reactTag, FOCUS_ON_VIEW)
: AccessibilityInfo.setAccessibilityFocus(reactTag);
}
目前,React Native没有提供一种方法,即开箱即用,遍历视图树并获取第一个可聚焦元素来为其设置焦点
因此,您需要使用
AccessibilityInfo.setAccessibilityFocus
逐个传递reactTag
。看起来AccessibilityInfo.setAccessibilityFocus(reactTag)
上有一个bug,它无法持续工作,多次调用它会增加成功的机会
有关如何两次调用以执行“聚焦视图”启动的信息,请参见此
有关更多详细信息,请参阅github上的“打开”部分。您能否简要说明如何在组件中使用它。。