Tyl*_*aff 44 ios ios-ui-automation uiaccessibility
我一直在浏览我们的代码库并在所有按钮和文本字段上设置accessibilityIdentifier属性,以便我可以使用UIAutomation访问它们.在这样做时,我遇到了一些已经存在的代码.
[_goodButton setAccessibilityLabel:@"off"];
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于这两种方法之间差异的文档.看起来他们做同样的事情.有人知道吗?我觉得这个标签也被设置为"关闭".
Mar*_*eIV 66
这两个属性肯定存在一些混淆.我自己陷入了同样的陷阱,但是对VoiceOver和UI自动化测试的研究和实验表明存在明显的差异.
accessibilityLabel
这是VoiceOver读取给最终用户的值,或通过其他辅助功能工具公开的值.因此,这应该是一个本地化的字符串.如果可能的话,最好将它保持为一个单词,描述它是什么(即"帮助","播放","新笔记"等).它也应该大写,但不能在一段时间内结束.这有助于VoiceOver的发音.
因为这是面向最终用户的,所以作为用户测试的一部分,开发人员可以根据需要更改这一点.例如,它可能会从"播放"更改为"阅读评论".因此,您不希望这与自动化测试相关联,因为这样的更改会破坏任何涉及现在不存在的"Play"标签的测试.那是accessibilityIdentifier进来的地方.
accessibilityIdentifier
虽然accessibilityLabel面向最终用户,但accessibilityIdentifier仅面向开发人员,主要用于标识UI自动化和测试工具的可访问元素.因此,它不应该是本地化的.
开发人员应该使用仅在UI测试环境中有意义的值,而不是最终用户.例如,显示帮助主题的按钮可以具有标识符"HelpButton",因为它清楚地标识了它,但不是最终用户需要暴露的内容.
养成使用这个价值的习惯!这样做可确保您的UI自动化测试永远不会因本地化或更改而中断
accessibilityLabel.
accessibilityHint(包括完整性)
accessibilityHint适用于accessibilityLabel可能不够清晰的情况.因为accessibilityLabel如果可能的话,应该保留一个单词,accessibilityHint可以提供额外的上下文.但是,如果accessibilityLabel它本身足够表达,你应该accessibilityHint留空.
如果确定accessibilityHint需要,则将其保留为简单的短句片段,大写并以句点结束.它应该描述它的作用,而不是告诉你该怎么做(即'播放当前曲目'而不是'播放当前曲目'.因为后者听起来像是对你的指示,而不是它的作用.)
希望有所帮助!
Jos*_*hua 33
accessibilityLabel你应该使用而不是使用(见下文)accessibilityIdentifier.
这个github问题解释了差异:
鉴于accessibilityLabel是一个面向外部的字符串,实际上由辅助功能屏幕阅读器使用(并且应该本地化为设备用户的语言),Apple现在提供了一个专门用于UI自动化目的的备用属性(iOS 5+)
小智 5
你检查这个
可访问性标签和标识符属性 标签属性和标识符属性在脚本访问 UI 元素的能力中占有突出地位。了解它们的使用方式很重要。
为 label 属性设置有意义的值是可选的,但建议使用。您可以在界面生成器中身份检查器的辅助功能部分的标签文本字段中设置和查看标签字符串。这个标签应该是描述性的,但很简短,部分原因是像 Apple 的 VoiceOver 这样的辅助技术使用它作为相关 UI 元素的名称。在 UI 自动化中,此标签由 label 方法返回。如果没有设置标识符属性,它也会由 name 方法作为默认值返回。有关详细信息,请参阅 UIAccessibilityElement 类参考。
identifier 属性允许您为元素使用更具描述性的名称。它是可选的,但必须为脚本设置它以执行以下两个操作之一:
按名称访问容器视图,同时还可以访问其子视图。按名称访问 UILabel 视图以获取其显示的文本(通过其 value 属性)。在 UI 自动化中,name 方法返回此标识符属性的值(如果已设置)。如果未设置,则 name 方法返回 label 属性的值。
目前,您只能通过 accessibilityIdentifier 属性以编程方式为标识符属性设置值。有关详细信息,请参阅 UIAccessibilityIdentification 协议参考。
| 归档时间: |
|
| 查看次数: |
17290 次 |
| 最近记录: |