通过UI元素以编程方式调用iOS无障碍语音

问题描述 投票:1回答:3

[当我的用户按下带有无效文本的按钮时,我会显示一个UILabel(以前是隐藏的),其中包含文本”输入的无效值”。

我希望旁白能自动读出出现的标签。我该怎么做?

ios xcode voiceover
3个回答
9
投票

如果要向旁白展示一些重要信息,则应发布“可访问性声明”:

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, // announce
                                @"My important information");  // actual text

0
投票

您想做这样的事情:

    AVSpeechSynthesizer* speechSynth;
    AVSpeechUtterance *utterance;

    speechSynth = [[AVSpeechSynthesizer alloc] init];
    speechSynth.delegate = self;

    utterance = [AVSpeechUtterance speechUtteranceWithString:@"Hello, world!"];
    [speechSynth speakUtterance:utterance];

注意:仅限于iOS7


0
投票

Swift 5

UIAccessibility.post(notification: .announcement, argument: "your text")

似乎没有队列(在iOS 13上仍然如此)。如果在用户操作(例如单击按钮)后立即发布公告,则该按钮可能会被按钮的自动旁白公告所吞没。在这种情况下,您应该在适当的延迟后发布公告(如here所述)。如果延迟时间太短,则您的公告可能会切入按钮的公告。

[AVSpeechUtterance将对所有用户说文本,UIAccessibility.post仅对在可访问性设置f.i中选择了旁白的用户讲文本。因为他们有视觉障碍。

© www.soinside.com 2019 - 2024. All rights reserved.