VoiceOver发音问题:“直播”“添加”
我正在尝试实现iOS应用程序的可访问性,并且已经涉及到一些细微差别和怪癖。
例如:我的应用程序中有一个标签,上面写着:“这是一个直播活动。” 在这种情况下,生活的定义是“当前正在发生的事情”,并且在宣布它时应该与“五”押韵。
然而,画外音理解和读取“生活”这个词,如:“生活和让死”,并用“Give”错误地发音押韵。
同样,我遇到的另一个问题是在“添加选择”的上下文中使用“ADD”一词。 在其背景下该词的含义是“为篮子增加一些东西”,但被宣称为“ADD(注意缺陷障碍)”
在启用应用程序的可访问性时,是否有一种编程方式为文字提供上下文?
解决方案 – 至少对于iOS 9.1和更新版本 – 更改单词的大小写也会改变发音:
- 活韵五
- 活韵与给
我已经苦苦挣扎了一段时间,但我发现了一个简单的解决方案…如果你在“Live”字符串中添加另一个“L”字母,它将直播为5。
试试这个 – >“Llive”
它们是两种绕过屏幕阅读器中的错误的方法:
-
忽略它:它是屏幕阅读器中的一个错误,而不是代码中的错误
-
使用不同的句子。
例如,你可以说“这个事件是现场的”(如果它工作得更好,我怀疑),或“这个事件在播出”(当然,取决于上下文,但你可以做一个更好的选择)。
您可能会考虑使用aria-label
来提供音频替代方案,例如“这是活着的事件”(因为活着的韵律有五个)用于屏幕阅读器,但aria-label
也用于盲文显示,然后这将是一个非常糟糕的主意。
正如有人在上面的评论中所说,屏幕阅读器用户非常清楚他们的屏幕阅读器会如何严重地发音。
您可以将标签的accessibilityLabel
设置为以您希望的方式发出文本。
对于OPs示例:
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"
这也可以通过故事板/笔尖选择标签并查看“身份检查员”来完成
也许您可以在属性字符串中使用accessibilitySpeechIPANotation
键来定义相应的语音(从iOS11开始可用) ?