我希望可访问性的方式,首先父视图是通过语音阅读,然后子视图是单独阅读。尝试以下代码,但它并不像预期的那样工作。它只是单独读取子视图,而不是父视图。也尝试了.combine
,但它只是读取父视图。例如:
public var body: some View {
VStack {
Image("apple")
Text("Text 1")
.accessibilityLabel("Text 1")
Text("Text 2")
.accessibilityLabel("Text 2")
}
.accessibilityElement(children: .contain)
.accessibilityLabel("Container view")
}
字符串
1条答案
按热度按时间1wnzp6jl1#
.contain
的功能如下所述。(您可以执行“单击”并单击以查看Xcode中的说明。)因此,
.contain
将首先宣布Container view
的可访问性标签,并将宣布每次的子项。因此您将有这样的公告:Container View, Image
Container View, Text 1
Container View, Text 2
所以,为了实现你的意图,你可以先删除
.accessibilityElement(children: .contain)
,因为你不需要合并或添加一个共同的公告给孩子。您可以简单地将标签添加到第一个项目,如下所示。
字符串
此外,更好的做法可能是使用
Group{ }
容器来定义可访问性声明。