我正在编写一个针对盲童的反应原生游戏应用程序,以帮助他们掌握数学知识。有一个游戏,他们必须计算屏幕中有多少动物;当动物被按下时,它会发出声音。
在本地反应中有onPress
<TouchableWithouFeedback />
属性允许我播放声音,但当涉及视障用户时,我必须宣布有动物而不仅仅是玩声音。
如何知道屏幕阅读器是否关注某个View
并调用函数来执行此操作?
答案 0 :(得分:0)
对于专注于特定对象的屏幕阅读器,似乎没有任何反应方式。相反,您需要在每个动物对象上使用accessibilityLabel
属性。
<TouchableOpacity accessible={true} accessibilityLabel="This is a tiger">
...
</TouchableOpacity>
当用户选择此对象时,只需轻轻一按,他们就会听到&#34;这是一只老虎。&#34;然后,在双击屏幕后,他们应该听到所有其他用户通常会听到的相关声音。
我不认为使用给定的API,你可以做的比这更多。不确定限制是在OS SDK还是React Native级别。
查看Accessibility上的React Native文档以获取更多详细信息。
答案 1 :(得分:0)
当前无法检测元素是否具有VoiceOver或TalkBack焦点。 (我既未实施UIAccessibilityFocus也未实施TYPE_VIEW_ACCESSIBILITY_FOCUSED
for Android
答案 2 :(得分:0)
解决此问题的唯一方法是开发用于图像的本机模块,为可访问性事件添加本机侦听器。例如,这意味着在Android中:
public List<Repositories> GetRepositoryTree()
{
List<Repositories> data = new List<Repositories>();
try
{
data = dbContext.Repositories.Include(x => x.RepositoryObjectChildren).Where(x => x.ParentId == null).ToList();
}
catch (Exception e)
{
logger.LogError(e, LoggingGlobals.NotFound);
data = null;
}
return data;
}
我的小组开发了一个ios / android组件,该组件公开了当前通过npm发布的图像的事件:https://www.npmjs.com/package/react-native-accessible-image