2

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

4

3 回答 3

1

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

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

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

于 2011-12-05T06:35:15.900 回答
1

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

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

  • VoiceOver 所做的一些事情——比如截取触摸——可能需要特殊的系统支持;同样,这不是您通常希望允许任何应用程序执行的操作。从某种意义上说,屏幕阅读器是应用程序的一种特殊情况,如果屏幕阅读器需要操作系统的特殊支持,如果它全部是内部的,那么管理这些情况要容易得多,如果这种支持需要通过一些扩展至第三方API,并且该 API 需要以某种方式防止滥用(见上文),并且该 API 必须在未来的操作系统版本中记录和支持。

  • 拥有一个屏幕阅读器意味着只有一个应用程序可以测试可访问性。这极大地简化了开发人员的生活。在 iOS 上,使用 VoiceOver 进行测试,您就完成了。相比之下,在 Windows 上,您可能还必须针对 JAWS、NVDA 和 WindowsEyes 进行测试。其中一些应用程序做了其他应用程序不做的事情,因此您的应用程序可能需要解决其中一个或另一个。

  • 将屏幕阅读器作为软件包的一部分还意味着它可以与操作系统发布后的新功能一起使用。Apple 可以保证从第一天起就可以访问新的 iOS 功能。要使用第 3 方辅助软件来做到这一点,他们必须让第 3 方参与新的 OS 功能,这对于像 Apple 这样保密的公司来说不太可能。

于 2011-12-07T20:05:39.930 回答
0

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

[myView setIsAccessibilityElement:YES];
[myView setAccessibilityTraits:UIAccessibilityTraitImage];
[myView setAccessibilityLabel:NSLocalizedString(@"Image of dog", nil)];
于 2011-12-04T17:26:59.453 回答