繁体   English   中英

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

[英]Call iOS accessibility voice over programmatically on a UI element

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

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

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

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

您想做这样的事情:

    AVSpeechSynthesizer* speechSynth;
    AVSpeechUtterance *utterance;

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

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

注意 :这仅适用于iOS7

迅捷5

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

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

AVSpeechUtterance只会向所有用户UIAccessibility.post讲文本,仅向那些由于视觉障碍而在其辅助功能设置中选择“旁白”的用户讲。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM