AccessibilityIdentifier 同时用于一组文本,并为每个文本提供标识符

AccessibilityIdentifier for group of Texts at the same time with identifiers to each of Text

提问人:Konstantin.Efimenko 提问时间:11/7/2023 最后编辑:Konstantin.Efimenko 更新时间:11/7/2023 访问量:33

问:

示例代码:

HStack {
    Text("Hello")
        .accessibilityIdentifier("first_word")
    Text(" ")
    Text("World!")
        .accessibilityIdentifier("second_word")
}
// Place, where I want to put "phrase_identifier",
// but it will override "first_word" and "second_word" identifiers

是否可以创建“phrase_identifier”,返回我“Hello World!”,同时可以通过“first_word”=“Hello”,“second_word”=“World!”来获取文本寻址?

更新: 下面提出了下一个解决方案,但结果它创建了一组标识符,我无法通过“phrase_identifier”获取值或用户输入标签或标签

enter image description here

下一篇: 显示元素的内容enter image description here

Swift SwiftUI 功能 UI辅助功能

评论


答:

1赞 Sweeper 11/7/2023 #1

如果我理解正确,您应该在辅助功能标识符之前添加。.accessibilityElement(children: .contain)

HStack {
    Text("Hello")
        .accessibilityIdentifier("first_word")
    Text(" ")
    Text("World!")
        .accessibilityIdentifier("second_word")
}
.accessibilityElement(children: .contain)
.accessibilityIdentifier("phrase")

另请参阅 .contain 文档中的代码示例,这与你所拥有的情况类似。

您还可以使用以下行为:.combine

.accessibilityElement(children: .combine)

这以某种系统定义的方式组合了子项的可访问性属性。

评论

0赞 Konstantin.Efimenko 11/7/2023
恐怕这不是我想要的:你在屏幕截图上看到(我将添加到原始帖子中)accessibilityIdentifier“phrase”的值为空,因为“phrase”是一个组,而不是元素。
0赞 Sweeper 11/7/2023
@Konstantin.Efimenko 不知道你的意思,即使在看到屏幕截图之后。您希望辅助功能检查器显示什么?
0赞 Konstantin.Efimenko 11/7/2023
我期望标签字段“Hello World!” 的值
0赞 Sweeper 11/7/2023
@Konstantin.Efimenko 然后。没有魔法。.accessibilityLabel("Hello World")
0赞 Sweeper 11/7/2023
@Konstantin.Efimenko 或者你可以使用行为 - 这给了你.你想要那个吗?.combineHello, , World!