强制画外音读取特定单词(同形异义词)

时间:2015-11-26 12:06:38

标签: ios voiceover uiaccessibility

我想在现在使用“live”(l-eye-v)这个词,而不是“生活”(l-i-v),就像“她会活着”一样。有没有办法强迫这个?

VoiceOver accessibility label for Touch ID的答案与这个问题非常相关,并表明答案是否定的,没有什么可以强迫它。这个问题标题更普遍适用和可搜索,所以我认为它是一个有用的补充,即使答案链接那里。链接问题的某些方面仅适用于特定情况。

如果你现在找到这个页面,还有VoiceOver pronunciation issue: "Live" "ADD"讨论“Live”的特定情况也值得一读。

2 个答案:

答案 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;
}