【问题标题】:Disable image recognition for UIImageView on iOS 14 with VoiceOver使用 VoiceOver 在 iOS 14 上禁用 UIImageView 的图像识别
【发布时间】:2021-01-27 15:19:06
【问题描述】:

我有一个 UIImageView 作为视图的背景。用户交互被禁用。 isAccessibilityElement 设置为 NO。当应用在设备上运行时,通过使用调试视图层次结构来验证这一点。

然而,当我点击具有该背景的视图时,它会描述其上的所有控件,然后使用自动图像识别来描述图像。我在网上找到的所有内容都表明这是 iOS 14 的一项新功能并且非常棒,但没有说明如何关闭它。

我什至尝试设置我自己的描述字符串以至少尝试覆盖图像识别但无济于事。那么 - 有没有办法为特定的 UIImageView(甚至整个应用程序)关闭它,如果是这样,如何?

***更新****

所以我已经确认这是特定于 iOS 14 的。我在 viewDidLoad 中有以下代码:

    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blueSky.jpg"]];
    imageView.isAccessibilityElement = YES;
    imageView.accessibilityLabel = @"I am not a description";
    CGPoint origin = imageView.frame.origin;
    origin.y = 50;
    origin.x = 50;
    
    CGRect imageFrame = imageView.frame;
    imageFrame.origin = origin;
    imageView.frame = imageFrame;
    self.view.isAccessibilityElement = NO;
    
    [self.view addSubview:imageView];

blueSky 是蓝天的形象。它没有使用资产目录。当我点击在 iOS 13 中启用 VoiceOver 的图像时,它显示“我不是描述”。当我在 iOS 14.1 设备上点击它时,它会显示“我不是描述”,然后停顿半秒钟,说“图像”,然后继续描述它“蓝天,多云”。这是我终生无法弄清楚如何消除的最后一部分!

【问题讨论】:

  • 请问您在哪里找到的这是 iOS14 的新功能? ??????
  • 它在多个地方被提及,但这里有一个例子 - techcrunch.com/2020/12/03/…
  • 谢谢,我不知道这个新功能......我只知道这个用于照片⟹a11y-guidelines.orange.com/en/mobile/ios/wwdc/2017/215/…。但是,我试图重现您的情况,并且在禁用图像视图时我没有读出描述。您能否输出您的问题的 UI 屏幕截图,以便在空白项目中重现相同的问题?
  • 奇怪的是,我也无法在空白项目中重现它,所以这似乎是我正在从事的非常遗留的项目。我试图在图像视图上设置 accessibilityLabel 以至少覆盖它但它不会说出文字,而是会说出它认为图像中的内容。

标签: ios uiimageview voiceover


【解决方案1】:

于是我找到了答案:

imageView.accessibilityTraits = UIAccessibilityTraitNone;

这告诉系统不要将其视为图像,因此不会尝试识别它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多