【问题标题】:VoiceOver : is 'accessibilityActivationPoint' really useful?VoiceOver:'accessibilityActivationPoint' 真的有用吗?
【发布时间】:2018-10-16 04:47:06
【问题描述】:

我尝试并理解accessibilityActivationPoint 的目的可能是什么,但徒劳无功。 当一个有焦点的可访问元素被激活时,该属性应该指示 VoiceOver 当用户双击该元素时它将激活的特定区域 (Apple reference):对我来说,它始终是选定元素本身。

我知道所选元素被 VoiceOver 视为一个块,无论里面的其他元素是什么。一旦双击激活此块,VoiceOver 就会调用 accessibilityActivate 以了解要执行的操作 (Apple reference)。

1/.我通过创建包含开关控件的自定义视图编写了许多测试。无论accessibilityActivationPoint 内部(或另一个开关控件的外部)的值是多少,开关控件的值都不会改变。这是一个正确的用例还是我完全错了?

2/.当我们在一个可访问元素中收集许多元素时,VoiceOver 如何能够激活其中一个,而根据定义它们是不可访问的?感谢accessibilityActivationPoint 指向其中一个应该可以吗?

就我个人而言,我无法让它发挥作用,并认为我真的很混淆 accessibilityActivationPointaccessibilityActivate

任何帮助将不胜感激,在此先感谢。

【问题讨论】:

    标签: ios accessibility voiceover


    【解决方案1】:

    是的,accessibilityActivateaccessibilityActivationPoint 的想法是正确的。请注意,为了使其正常工作,accessibilityActivationPoint 必须是控件中您尝试在屏幕上 坐标中激活的一个点(使用convert 函数!)。

    我认为回答您的第二个问题的简短答案是“是”,但是,为了消除无障碍激活点何时有用的困惑,我将详细介绍它。

    默认情况下(又名AcessibilityActivate() 的默认行为),当 VoiceOver 激活任何视图时,VoiceOver 将向视图中心发送一个“点击手势”。可以通过更新视图上的accessibilityActivationPoint 属性来更改此“点击手势”的位置。下面,我有一个如何使用这个属性的例子。

    假设您在一些文本旁边有一个空白按钮(在下图中,该按钮是灰色框):

    出于辅助功能的目的,您可能希望将包含按钮和文本的整个视图设为辅助功能元素(以便 VoiceOver 用户可以轻松理解该按钮与文本“Worldspace Attest”相关联)。在下图中,我使用 Accessibility Inspector 来显示包含这两个元素的视图是一个 Accessibility Element。

    请注意,在这些图像中,按钮不在视图的中心,而是在右侧。当您使用 VoiceOver 激活此视图时,该视图不会选择按钮;相反,它会向视图中心发送一个“点击”(这与点击文本相同,但不会执行任何操作)。为了选择按钮,您必须将视图的accessibilityActivationPoint 设置为按钮的屏幕坐标:

    view.accessibilityActivationPoint = self.convert(button.center, to: UIApplication.shared.windows.first)

    这应该使 VoiceOver 用户可以使用此按钮。

    我希望此信息能消除有关辅助功能激活点属性的任何困惑。我上面使用的示例可以在“Active Control Name”演示中的this repository 中找到。

    【讨论】:

    • @jdailey :假设我没有更改默认值,并且我将标签和按钮重新组合在一个可访问的元素中。如果激活点可以触发它指向的每个元素,那么当动态类型可以重新排列内部所有聚集元素的位置时,应该注意它的位置,不是吗?
    • @XLE_22 :我想确保我理解你的问题——在你的场景中,按钮位于组的中间。那么,当字体大小发生变化时,按钮是从分组的中心被按下的吗?如果是这样,那么是的,在使用动态类型时应该注意激活点位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 2013-05-18
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    相关资源
    最近更新 更多