代码之家  ›  专栏  ›  技术社区  ›  XLE_22

画外音:“accessibilityActivationPoint”真的有用吗?

  •  0
  • XLE_22  · 技术社区  · 7 年前

    我试着去理解这个计划的目的 accessibilityActivationPoint 但这是徒劳的。 Apple reference

    我知道所选的元素被认为是一个块的画外音,无论其他元素在里面。一旦双击激活此块,VoiceOver呼叫 accessibilityActivate 知道要表演什么( Apple reference ).

    1/. 我通过创建一个自定义视图(包括一个开关控件)编写了许多测试。不管它值多少钱 在内部(或在另一个开关控件的外部),开关控件的值永远不会更改。这是一个合适的用例还是我完全错了?

    就我个人而言,我做不到,觉得我真的很困惑

    1 回复  |  直到 7 年前
        1
  •  3
  •   jldailey    7 年前

    是的,你的想法是对的 accessibilityActivate accessibilityActivationPoint . 请注意,为了让它工作 访问激活点 必须是您试图在其中激活的控件中的一个点 屏幕上 convert 功能!)。

    我认为简短的回答是“是”来回答你的第二个问题,但是,为了澄清关于无障碍激活点何时有用的困惑,我将更详细地介绍它。

    AcessibilityActivate() ),当VoiceOver激活任何视图时,VoiceOver将向视图中心发送一个“点击手势”。这个“轻敲手势”的位置可以通过更新 访问激活点 视图上的属性。下面,我有一个如何使用这个属性的例子。

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

    Screenshot of text next to a button without text on it.

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

    Image showing that the view holding the text and button is VoiceOver focusable.

    访问激活点 作为按钮的屏幕坐标:

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

    我希望此信息能消除关于可访问性激活点属性的任何混淆。我上面使用的例子可以在 this repository