SwiftUI:如何阻止VoiceOver读出隐藏的NavigationLink为按钮
你遇到的问题是:即使使用EmptyView()作为NavigationLink的标签,它依然会被VoiceOver识别为可交互按钮。要解决这个问题,只需给该NavigationLink添加accessibilityHidden(true)修饰符,让辅助技术直接忽略它即可。
修改后的代码如下:
struct ContentView: View { @State private var isShowingDetailView = false var body: some View { NavigationView { VStack { NavigationLink(destination: Text("Second View"), isActive: $isShowingDetailView) { EmptyView() } .accessibilityHidden(true) Button("Tap to show detail") { isShowingDetailView = true } } .navigationTitle("Navigation") } } }
accessibilityHidden(true)的作用是明确告诉VoiceOver等辅助技术跳过该元素,既不会影响程序化导航的逻辑,也不会让VoiceOver读出这个不可见的按钮。
内容的提问来源于stack exchange,提问作者L N
相关产品推荐
相关产品推荐

