我有一个包含两个子视图、一个按钮和一个图像的视图,我打开辅助功能并在子视图上设置标签,我可以通过调用来查看层次结构
UIATarget.localTarget().frontMostApp().mainWindow().logElementTree();
例如,我得到以下内容:
1 Window
2 我的看法
3 我的按钮
3 我的形象
如果我随后打开辅助功能并为父视图设置标签,我将无法再在层次结构中的任何位置看到我的按钮和图像。
我刚刚得到:
1 Window
2 我的看法
为什么我的观点消失了?
直接来自 iOS 文档无障碍指南 http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html#//apple_ref/doc/uid/TP40008785-CH102-SW10
使自定义容器视图的内容可访问
如果您的应用程序显示的自定义视图包含与用户交互的其他元素,则需要使所包含的元素单独可访问。同时,您需要确保容器视图本身不可访问。原因是用户与容器的内容交互,而不是与容器本身交互。
为了实现这一点,您的自定义容器视图应该实现 UIAccessibilityContainer 协议。该协议定义了使数组中包含的元素可用的方法。
以下代码片段显示了自定义容器视图的部分实现。请注意,仅当调用 UIAccessibilityContainer 协议的方法时,此容器视图才会创建可访问元素的数组。因此,如果 iPhone 辅助功能当前未处于活动状态,则不会创建该数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)