设置按钮的 UIAccessibilityTrait 是否会从它的 accessibilityLabel 中删除单词 "button"?

Does setting a button's UIAccessibilityTrait remove the word "button" from it's accessibilityLabel?

我运行刚才遇到了一个奇怪的情况。我在我们的应用程序中有一个容器视图,它需要在点击时读出所有视图,但应该只能单独访问一个视图。因为一些视图是具有自己的子视图的复杂视图,所以我设置我的 ADA 逻辑以读取视图的 accessibilityLabel(如果有的话),如果没有,则从子视图构建一个。

好吧,今天我们不得不在阅读帮助按钮时将单词 "button" 添加到帮助按钮中,因为点击了容器视图。所以我只是将 "button" 这个词添加到标签的 accessibilityLabel 中,一切正常。然后我意识到,这可能会在单独点击时将其更改为 "more information button button",因为我已将按钮的 accessibilityTraits 属性 设置为 UIAccessibilityTraitButton

然而,令我惊讶的是,它正确地读取了它 "more information button."Apple 是否在 accessibilityLabel 中检测到 ext运行eous "button's" 并在特征设置为 a 时删除它们按钮?当按钮的特征设置为标签时,他们还会从按钮中删除 ext运行eous "label's" 吗?如果这是它的工作方式,我发现 Apple 工程师部件的这种非常酷和令人难以置信的远见。

编辑:如果这是完成的方式,有人可以指出我在哪里记录了吗?我找不到它,尽管我目前仍在进行此修复,所以我没有进行我本可以进行的最深入的搜索。

我现在有时间做一些适当的测试。如果您正确设置了特征,VoiceOver 将删除多余的标签。这允许您在容器视图中读取类型,并且仍然设置 accessibilityTraits.

因此,例如,如果您将 accessibilityTraits 设置为 UIAccessibilityTraitButton 并且 accessibilityLabel 中的最后一个词是按钮,它将删除最后一个词并且只读取按钮一次.但是,如果您将 accessibilityTraits 设置为“UIAccessibilityTraitImage”,它不会删除该按钮,并且会以 "button image" 结束读取。然而,将最后一个字更改为 "image",它只读取图像一次。

Apple 在该实施方面的预见性非常好。