React Native:iOS 中的accessibilityLiveRegion 等效项

Ton*_*att 12 accessibility reactjs react-native

我正在开发一个反应本机应用程序,我使用一些内联错误消息来归档 TextInput。如果验证失败,我将显示带有错误消息的文本组件。它工作正常。但我在 iOS 上遇到 VoiceOver 问题。错误消息是动态的,焦点不会切换到错误消息。在android中,我添加了accessibilityLiveRegion="assertive"将焦点切换回错误文本然后阅读的功能。下面是代码。

<Text style={ messageCellStyle } accessibilityLiveRegion="assertive">
            { StringUtils.process(message, props) }
 </Text>
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助使其在 iOS VoiceOver 中运行吗?我想在用户界面中显示错误消息时阅读它。

小智 1

我发现自己今天正在为道具寻找相同的“替代品”,accessibilityLiveRegion但没有运气。我最终做的是删除 prop,而是使用 来监听状态变化useEffect。一旦状态发生变化,我就会宣布元素内部的文本Text。这对我来说在 Android 和 iOS 上都很有效。下面的代码示例

useEffect(() => {
  AccessibilityInfo.announceForAccessibility(
    textStringBasedOnState(someState)
  )
}, [someState])
Run Code Online (Sandbox Code Playgroud)