VoiceOver 发音问题:"Live" "ADD"

VoiceOver pronunciation issue: "Live" "ADD"

我正在尝试为 iOS 应用程序实现辅助功能,但遇到了一些细微差别和问题。

例如: 我的应用程序中有一个标签,上面写着:"This is a live event." 在这种情况下,live 的定义是 "something that is currently happening",发音时应押韵 "Five"。

但是,画外音理解和读出 "live" 中的单词 "live and let die",并且在与 "Give" 押韵时读错了。

同样,我遇到的另一个问题是 "ADD A SELECTION" 上下文中的单词 "ADD"。该词在其上下文中的意思是 "to add something to a basket",但发音为 "A.D.D. (Attention deficit disorder)"

在为您的应用启用无障碍功能时,是否有编程方式为单词提供上下文?

它们是绕过屏幕阅读器错误的两种方法:

  • 忽略它:这是屏幕阅读器中的错误,而不是您的代码中的错误

  • 使用不同的句子。

例如,您可以说 "this event is live"(如果效果更好,我对此表示怀疑)或 "this event is on the air"(当然取决于上下文,但您可以找到更好的替代方案)。

您可能会考虑使用 aria-label(对于 Web 应用程序,或在本机应用程序中等效的 accessibilityLabel)来提供音频替代方案,例如 "this is alive event"(因为 alive 与五押韵)对于屏幕阅读器,但 aria-label 也用于盲文显示,并且 那么这将是一个非常糟糕的主意。

正如有人在上面的评论中所说,屏幕阅读器用户非常清楚他们的屏幕阅读器会如何糟糕地发音。

编辑:请参阅 了解原生 iOS 应用程序的解决方案 (>=iOS11)

您可以为标签设置 accessibilityLabel 以按照您想要的方式发音文本。

对于 OP 示例:

label1.accessibilityLabel = @"This is a liv event." //notice live is spelled liv so it is pronounced for the correct context
label2.accessibilityLabel = @"add a selection"

这也可以通过 storyboard/nib 完成,方法是选择标签并查看 "identity inspector"

解决方案 - 至少对于 iOS 9.1 和更新版本 - 改变单词的大写也会改变发音:

  • 现场押韵五
  • live rhymes with give

我已经为此苦苦挣扎了一段时间,但我找到了一个简单的解决方案... 如果您在 "Live" 字符串中添加另一个 "L" 字母,它将发音为五。

试试这个 --> "Llive"

不要使用目前有效但可能已过时的大写或双字母提示和技巧,在 iOS 的未来版本中或不方便对于盲文 ,我建议 在属性字符串中使用 accessibilitySpeechIPANotation 以定义适当的语音 (自 iOS11): 这个方法已经被证明,并且会持续下去。

Phonemes can be generated感谢您的移动设备设置:

  • iOS 13 +...: Accessibility - VoiceOver - Speech - Pronunciations.
  • iOS 12: General - Accessibility - Speech - Pronunciations.