Reactjs 在抽屉/模式打开时更改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

我正在尝试改进react原生应用程序的可访问性,并且面临以下问题:当用户打开菜单抽屉时,焦点不会更改为模式抽屉内容。相反,左右滑动会聚焦背景中的内容

我曾尝试在抽屉和主要内容区域设置动态辅助功能道具:

<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上的“打开”部分。

您能否简要说明如何在组件中使用它。。