如何在SwiftUI的Button标签中设置唯一的accessibilityIdentifier
SwiftUI的Button默认会把整个label内容合并成单个可访问元素,导致内部子元素的accessibilityIdentifier被隐藏,所以你之前的设置在Button里失效了。要实现需求,只需要给Button本身添加.accessibilityElement(children: .contain),让它保留子元素的可访问性属性即可。
调整后的代码示例:
Button { // Button implementation } label: { ZStack { HStack { Text("Text") .accessibilityIdentifier("Textbox") Image(.rightArrow) .accessibilityIdentifier("RightArrow") // 给图片添加唯一标识 } .accessibilityIdentifier("Container") } } .accessibilityElement(children: .contain) // 可选:给Button本身也设置标识,如果需要的话 // .accessibilityIdentifier("MainActionButton")
这样设置后,Maestro就能识别到Container、Textbox、RightArrow这些独立的标识了。原理是.accessibilityElement(children: .contain)告诉系统不要合并Button的子元素可访问性信息,让每个子元素的标识都能被外部工具检测到。
内容的提问来源于stack exchange,提问作者Mak
相关产品推荐
相关产品推荐

