UIAutomation 嵌套辅助功能元素从层次结构中消失

发布于 2024-11-13 02:12:06 字数 426 浏览 5 评论 0原文

我有一个包含两个子视图、一个按钮和一个图像的视图,我打开辅助功能并在子视图上设置标签,我可以通过调用查看层次结构

UIATarget.localTarget().frontMostApp().mainWindow().logElementTree();

,例如:

1 个窗口

2 我的看法

3 我的按钮

3 我的图片

如果我随后打开辅助功能并为我的父视图设置标签,我将无法再在层次结构中的任何位置看到我的按钮和图像。

我刚刚得到:

1 个窗口

2我的看法

为什么我的视图消失了?

I have a view with two subviews a button and an Image, I turn on accessibility and set the label on the subviews and I can see the hierarchy by calling

UIATarget.localTarget().frontMostApp().mainWindow().logElementTree();

I get the following for example:

1 Window

2 My View

3 My Button

3 My Image

If I then turn on accessibility and set the label for my parent view I can no longer see my button and image anywhere in the hierarchy.

I just get:

1 Window

2 My View

Why have my views disappeared?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

玩世 2024-11-20 02:12:06

直接来自iOS文档辅助功能指南

使自定义容器视图的内容可访问
如果您的应用程序显示的自定义视图包含与用户交互的其他元素,则需要使所包含的元素单独可访问。同时,您需要确保容器视图本身不可访问。原因是用户与容器的内容交互,而不是与容器本身交互。

要实现此目的,您的自定义容器视图应实现 UIAccessibilityContainer 协议。该协议定义了使所包含的元素在数组中可用的方法。

以下代码片段显示了自定义容器视图的部分实现。请注意,仅当调用 UIAccessibilityContainer 协议的方法时,此容器视图才会创建可访问元素的数组。因此,如果 iPhone 辅助功能当前未处于活动状态,则不会创建该数组。

Straight from the iOS docs Accessibility Guide

Make the Contents of Custom Container Views Accessible
If your application displays a custom view that contains other elements with which users interact, you need to make the contained elements separately accessible. At the same time, you need to make sure that the container view itself is not accessible. The reason is that users interact with the contents of the container, not with the container itself.

To accomplish this, your custom container view should implement the UIAccessibilityContainer protocol. This protocol defines methods that make the contained elements available in an array.

The following code snippet shows the partial implementation of a custom container view. Note that this container view creates the array of accessible elements only when methods of the UIAccessibilityContainer protocol are called. As a result, if iPhone accessibility is not currently active, the array is not created.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文