如何快速更改 VoiceOver 发音?

Lig*_*lGG 3 accessibility ios voiceover swift

我正在尝试实现我的 ios 项目的可访问性。

\n

有没有办法在打开画外音的情况下纠正某些特定单词的发音?例如,'speech'的正确发音是[spi\xcb\x90t\xca\x83],但我希望画外音将所有单词'speech'读得与'speak'相同[spi\xcb\x90k ] 在我的整个项目期间。

\n

我知道有一种方法可以设置任何我想要将发音更改为“说话”的 UIElement 的辅助功能标签。然而,有些元素是动态的。例如,我们从后端获取标签文本,但我们永远不知道标签文本何时会是“语音”。如果我从后端得到“语音”一词,我希望听到画外音将其读作“说话”。

\n

因此,我想更改画外音的设置。每次,如果单词是“语音”,画外音将读作“说话”。

\n

我可以做吗?

\n

Gra*_*hie 5

简短的回答。

是的,你可以这样做,但请不要这样做。

长答案

我可以做吗?

是的,当然可以。

只需从后端获取数据,并使用要替换的单词字典对字符串进行查找替换,查找您想要以不同方式表达的任何单词,然后将新版本的字符串添加为可访问性标签。

你应该这样做吗?

绝对不。

每当有人试图“修正”发音时,结果都会让事情变得更糟。

我什至不明白为什么您希望屏幕阅读器用户在其他人看到“语音”时听到“说话”,它没有意义,并且可能会破坏句子的含义:

“我参加了昨晚的演讲,内容非常丰富”。

将转变为:

“我参加了昨晚的演讲,内容非常丰富”

屏幕阅读器用户已经习惯了。

屏幕阅读器用户习惯于听到不同的说法(而且是错误的!),我的猜测是您使用屏幕阅读器的时间还不够长,无法习惯屏幕阅读器语音的特性。

实际上,您非但不会帮助屏幕阅读器用户,反而会让事情变得更糟。

我只重写过屏幕阅读器的默认行为两次,一次是当它是作为日期读取的版本号时,一次是当它是一个密码管理器时,它读回密码并尝试将内容读取为单词。

除了那些非常狭窄的例子之外,我还没有找到改变屏幕阅读器的原因。

盲文用户呢?

你可以改变一些事情,因为它们听起来不对。但盲文用户也使用屏幕阅读器,为他们更改内容可能会非常混乱(如上面的“语音”示例)。

最佳实践怎么样

“为辅助技术用户提供与非辅助技术用户尽可能相似的体验”。这是可访问性的首要指导原则,一旦你改变发音和单词,你就有可能改变句子的含义,从而提供不同的体验。

加起来

无论如何,这在不应该的情况下变成了咆哮(我很抱歉,我只是想弄清楚这一点,因为我经常回答类似的问题!),希望你明白了,别管它,提供相同的信息,我什至没有介绍不同的语音合成器、语言翻译以及使用“不自然”语言可能干扰的更多内容。