gpt4 book ai didi

ios - ios中的setAccessibilityLabel和accessibilityIdentifier有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 07:38:56 26 4
gpt4 key购买 nike

我一直在研究我们的代码库,并在我们所有的按钮和文本字段上设置 accessibilityIdentifier 属性,以便我可以使用 UIAutomation 访问它们。在执行此操作时,我发现了一些已经存在的代码。

[_goodButton setAccessibilityLabel:@"off"];

我找不到关于这两种方法之间差异的任何文档。看起来他们做同样的事情。有人知道吗?我发现这个标签也设置为“关闭”很奇怪。

最佳答案

这两个属性肯定有些混淆。我自己也落入了同样的陷阱,但对 VoiceOver 和 UI 自动化测试的研究和实验表明存在明显差异。

accessibilityLabel
这是由 VoiceOver 读取给最终用户的值,或通过其他辅助工具公开的值。因此,这应该是一个本地化的字符串。如果可能的话,最好将其保持为一个单词,描述它是什么(即“帮助”、“播放”、“新笔记”等)。它也应该大写,但不要以句号结尾。这有助于 VoiceOver 的发音。

因为这是面向最终用户的,作为用户测试的一部分,开发人员可以根据需要将其更改为更清晰。例如,它可能会从“播放”变为“阅读评论”。因此,您不希望它与自动化测试相关联,因为这样的更改会破坏任何涉及现在不存在的“播放”标签的测试。这就是 accessibilityIdentifier 的用武之地。

accessibilityIdentifier
accessibilityLabel 面向最终用户,而 accessibilityIdentifier 则只面向开发人员,主要用于识别 UI 自动化和测试工具的可访问元素。因此,不应对其进行本地化。

开发人员应该使用仅对 UI 测试上下文有意义的值,而不是对最终用户有意义的值。例如,显示帮助主题的按钮可以有标识符“HelpButton”,因为它的标识很清楚,但最终用户不需要接触到它。

Make it a habit to use this value! Doing so ensures your UI automation tests will never break due to localization or from changes to accessibilityLabel.

accessibilityHint(包括完整性)
accessibilityHint 适用于 accessibilityLabel 本身可能不够清晰的情况。由于 accessibilityLabel 应尽可能保持为单个单词,因此 accessibilityHint 可以提供额外的上下文。但是,如果 accessibilityLabel 本身具有足够的表现力,您应该将 accessibilityHint 留空。

如果确定需要 accessibilityHint,请将其保留为一个简单的短句片段,大写并以句号结尾。它应该描述它做了什么,而不是告诉你该做什么(即“播放当前轨道”而不是“播放当前轨道”,因为后者听起来像是一个指令,告诉你该做什么,而不是让你知道什么会发生。)

这是如何使用的,VoiceOver 将首先读取标签,短暂暂停,然后读取提示(例如“播放...播放当前轨道”。如果用户禁用提示,它当然只会说“播放” ')

希望对您有所帮助!

关于ios - ios中的setAccessibilityLabel和accessibilityIdentifier有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21152716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com