我想在现在使用“live”(l-eye-v)这个词,而不是“生活”(l-i-v),就像“她会活着”一样。有没有办法强迫这个?
VoiceOver accessibility label for Touch ID的答案与这个问题非常相关,并表明答案是否定的,没有什么可以强迫它。这个问题标题更普遍适用和可搜索,所以我认为它是一个有用的补充,即使答案链接那里。链接问题的某些方面仅适用于特定情况。
如果你现在找到这个页面,还有VoiceOver pronunciation issue: "Live" "ADD"讨论“Live”的特定情况也值得一读。
答案 0 :(得分:1)
在这些情况下,我通常只是添加一个单独的辅助功能字符串(而不是使用显示给用户的文本),其中包含单词发音。所以试试像lyve / lieve这样的东西。文本到语音是一个复杂的过程,需要大量的AI才能与同音异义词一起使用。
答案 1 :(得分:1)
实现此目的的一个好方法是覆盖accessibilityLabel getter属性。这样您就不必单独跟踪两个字符串,只需要一个需要拼音替换的单词字典。例如,如果您的对象是UILabel,您可以执行以下操作:
-(NSString*)accessibilityLabel {
NSMutableString* mutableResult = [NSMutableString new];
for (NSString* word in [self.text componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" \t\n"]]) {
if ([word isInDictionary]) {
[mutableResult appendFormat:@" %@", [word phoneticReplacement]];
} else {
[mutableResult appendFormat:@" %@", word];
}
}
return mutableResult;
}