辅助功能:适用于iPhone / iOS的辅助应用程序

时间:2011-12-04 17:02:34

标签: iphone ios ipad accessibility assistive-technology

是否可以为iPhone构建辅助应用程序,其工作方式与VoiceOver相同? (使用UIAccessibility API) - 为了澄清,我们希望以与VoiceOver相同的方式构建一个屏幕阅读器。或者,VoiceOver是唯一可以在iOS设备上运行的辅助技术吗?

3 个答案:

答案 0 :(得分:1)

是的,您可以在自己的应用中构建自己的屏幕阅读器技术 您可以包含自己的语音合成库,例如CMU FLite,它可能听起来不如VoiceOver,并且可以为您希望支持私人辅助行为的所有应用程序UI和文本对象创建子类或添加类别。

iOS App Store中有少量会话应用程序在某些应用程序视图中执行一些有限的自定义语音帮助,而无需启用VoiceOver。 (广告:我的会说话的调谐器就是一个例子。)

您的辅助技术只能在您自己的应用程序中运行,并且无法与Siri和VoiceOver等物理按钮或任何其他应用程序进行交互。

答案 1 :(得分:1)

VoiceOver目前是iOS上唯一的辅助技术应用程序,我怀疑Apple会保持这种状态。将屏幕阅读器作为整个软件包的一部分而不是允许第三方应用程序有很多好处,包括:

  • 根据定义,屏幕阅读器需要能够访问其他应用的UI和内容。这里有一大堆安全和隐私问题。虽然有一些方法可以缓解这种情况 - 例如。 Android要求辅助技术在控制面板中获得特别授权 - 如果不需要,为什么还要去那里?

  • VoiceOver所做的一些事情 - 比如拦截触摸 - 可能需要特殊的系统支持;再一次,这不是你通常想让任何应用程序做的事情。有一种感觉,屏幕阅读器是应用程序的一个特例,并且管理这些情况要容易得多,如果屏幕阅读器需要来自操作系统的特殊支持,如果它在内部,而不是通过某些支持需要扩展到第三方API,以及API需要以某种方式防止滥用(参见上文),并且必须在未来的OS版本中记录和支持API。

  • 拥有一个屏幕阅读器意味着只有一个应用程序可供测试以获取辅助功能。这个非常简化了开发人员的生活。在iOS上,使用VoiceOver进行测试,您就完成了。相比之下,在Windows上,你必须测试JAWS,NVDA和WindowsEyes。其中一些应用程序执行的操作与其他应用程序无关,因此您的应用程序可能需要解决其中一个问题。

  • 让屏幕阅读器成为软件包的一部分也意味着它可以直接从OS版本开始使用新功能。 Apple可以保证从第1天开始可以访问新的iOS功能。要使用第三方辅助功能软件,他们必须让第三方使用新的操作系统功能,这对于像苹果这样秘密的公司来说是不太可能的。

答案 2 :(得分:0)

不幸的是,VoiceOver是目前唯一允许的辅助技术。如果您需要使用VoiceOver,这很容易;您所要做的就是为希望用户识别的每个项目添加以下代码行:

[myView setIsAccessibilityElement:YES];
[myView setAccessibilityTraits:UIAccessibilityTraitImage];
[myView setAccessibilityLabel:NSLocalizedString(@"Image of dog", nil)];