9

有什么方法可以通过 Unity3d 与 iOS 的 VoiceOver 可访问性原生支持进行通信?我们有一个需要可访问的应用程序,但我们不知道如何去做。

创建我们自己的自定义 VoiceOver 是不可能的,因为我们需要语言支持,所以我们需要本地化。我们的直觉告诉我们通过插件与 iOS 通信,但似乎 iOS 硬件无法捕获统一点击,而且它似乎覆盖了我们的一些手势。

任何建议将不胜感激。

4

3 回答 3

1

这里有一些注释

通常,您不会为应用程序中的项目创建可访问性元素,因为默认情况下可以访问标准 UIKit 控件和视图。但是,如果您的视图包含非视图项,例如图标或文本图像,需要残障用户访问,您可以创建可访问性元素来表示它们。在这种情况下,包含视图应实现 UIAccessibilityContainer 非正式协议,并使用此方法创建一个可访问性元素来表示应向辅助应用程序公开的每个项目。

这里

UIAccessibilityContainer 非正式协议为 UIView 子类提供了一种方法,可以将选定的组件作为单独的元素进行访问。例如,一个视图可能包含图标或绘制的文本,对于最终用户来说,它们作为单独的项目出现和发挥作用。但是因为这些组件不是作为 UIView 的实例来实现的,所以残障用户不能自动访问它们。因此,这样的容器视图应该实现 UIAccessibilityContainer 方法,以向辅助应用程序(例如 VoiceOver)提供有关这些组件的可访问性信息。

我不熟悉 Unity 本身,但这似乎可以破解包含视图以支持可访问性 - 您可以构建一组UIAccessibilityElemets表示当前在屏幕上可见的项目。

于 2015-03-13T21:46:09.250 回答
1

不幸的是,Unity 和 VoiceOver 本身不能一起工作,因为 Unity 负责所有渲染 - 包括 UI。这就是 VoiceOver 或任何其他屏幕阅读器无法访问 UI 并使其可访问的原因。正如您已经提到的,您真正唯一的选择是在 Unity 中实现相同的功能。您可以自己实现它,也可以使用为您完成它的插件。

有一个可用的插件可以为 Unity UI 重新创建屏幕阅读器功能。它的工作方式类似于 VoiceOver 和 TalkBack,并使用本机 VoiceOver 语音进行文本到语音输出。 https://assetstore.unity.com/packages/tools/gui/ui-accessibility-plugin-uap-87935

于 2017-05-03T19:54:27.500 回答
0

Unity3d 不支持 VoiceOver 使用的 .ipa 文件来提供允许该功能运行的挂钩。因此,该功能不能直接用于使应用程序更易于访问。

因此,必须使用在 Unity 中开发基于 VoiceOver 的系统的方法,该方法可以利用当前的一些 VoiceOver 约定 - 即重新创建 VoiceOver 在 Unity 中处理页面和应用程序的方法。

除此之外,我不确定如果不采取“漫长的道路”来创建自己的语言支持,并使用与 VoiceOver 类似的辅助功能,你能做什么。

于 2015-03-12T10:45:46.747 回答