如何为Unity3d for iOS添加辅助功能

时间:2013-03-07 15:14:13

标签: ios unity3d accessibility unity3d-2dtools

有没有办法通过Unity3d与iOS的VoiceOver辅助功能本机支持进行通信?我们有一个需要访问的应用程序,我们不确定如何去做。

由于我们需要语言支持,因此无法创建我们自己的自定义VoiceOver,因此我们需要使用原生语言。我们的直觉告诉我们通过插件与iOS通信,但似乎iOS硬件无法捕获统一分接头,但它似乎也覆盖了我们的一些手势。

任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:1)

有一些注释here

  

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

here

  

UIAccessibilityContainer非正式协议为UIView子类提供了一种使所选组件可作为单独元素访问的方法。例如,视图可能包含图标或绘制文本,这些图标或绘制文本对最终用户显示并作为单独的项目运行。但由于这些组件未实现为UIView的实例,因此残障用户无法自动访问这些组件。因此,这样的容器视图应该实现UIAccessibilityContainer方法,以便为辅助应用程序(如VoiceOver)提供有关这些组件的可访问性信息。

我对Unity本身并不熟悉,但似乎有可能破解包含视图以支持辅助功能 - 您可以构建一组UIAccessibilityElemets代表屏幕上当前可见的项目。

答案 1 :(得分:0)

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

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

除此之外,我不确定如果不采取长距离行动,你可以做些什么。使用与VoiceOver类似的辅助功能创建自己的语言支持。

答案 2 :(得分:-1)

不幸的是,Unity和VoiceOver无法原生协同工作,因为Unity负责所有渲染 - 包括UI。这就是VoiceOver或任何其他屏幕阅读器无法访问UI并使其可访问的原因。 真的,你唯一的选择是,正如你已经提到的那样,在Unity内部实现相同的功能。 您可以自己实现,也可以使用为您执行此操作的插件。

有一个插件可用于重新创建Unity UI的屏幕阅读器功能。它的工作方式与VoiceOver和TalkBack类似,并使用原生VoiceOver语音进行文本到语音输出。 https://www.assetstore.unity3d.com/en/#!/content/87935

相关问题