VoiceOver页面公告不正确

时间:2019-06-14 04:55:06

标签: ios swift accessibility voiceover

在启用VoiceOver的情况下,当用户用三根手指滑动时滚动显示当前页面,例如:“第1页,共3页”。但是,这些声明并不总是正确的。

以下代码创建一个滚动视图,并在其中填充三个标签(使用不同的背景色来区分它们):

let scrollView = UIScrollView()
scrollView.frame = view.bounds
view.addSubview(scrollView)

let colours: [UIColor] = [.red, .blue, .green]
var lastView: UIView?

for colour in colours {
    let label = UILabel()
    label.frame.size = scrollView.frame.size
    label.backgroundColor = colour
    label.textColor = .white
    label.text = "\(colours.firstIndex(of: colour)!)"
    label.textAlignment = .center

    scrollView.addSubview(label)

    label.frame.origin.y = lastView?.frame.maxY ?? 0

    lastView = label
}

scrollView.contentSize.height = lastView!.frame.maxY        

当我滚动时(如上所述),将发布以下公告:

  • 第1页,共4页
  • 第2页,共4页
  • 第4页,共4页
  • 第4页,共4页

我在做错什么吗,或者这是iOS中的错误?如果是后者,我可以采取任何解决方法来确保宣布正确的页码吗?

1 个答案:

答案 0 :(得分:-1)

正如您在评论中提到的,我误解了您的问题。

  

我在做错什么吗,或者这是iOS中的错误?

您没有做错任何事:系统通过三指垂直滑动来计算滚动内容所需的页面总数,而不必与标签的号码相匹配。< / p>

在下面查看您的代码提供的显示的彩色标签: enter image description here 每次滑动都不会在其整个高度和宽度上显示标签,这就是为什么页面多于标签数量的原因:这绝对不是错误,这是它的工作方式

  

...有什么我可以应用的解决方法,以确保宣布正确的页码?

但是,如果您愿意这样做,我建议您看一下可能对有帮助的custom scrolling(我从没使用过,但这是我对您的唯一询问目标)

因此,不幸的是,没有解决方法,因为您提到的问题,即使对于本机iOS应用程序也经常发生。

查看带有小部件的iPhone上最右侧的页面,并聆听所宣布的页码:第一个公告对我来说总是错误的(5页,只有3页)

第一次播报/阅读有时是错误的,但是在经过三指垂直滑动后,系统会纠正我的初始错误,如我在插图中指出的那样。

对于用户而言,这不是一个理想的情况,但是,到目前为止,您无法做得更好,除非为解决此问题很快点燃蜡烛。