在打开 VoiceOver 的情况下从 NavigationLink 中删除按钮读数

问题描述 投票:0回答:1

我按照此指南在 SwiftUI 中以编程方式创建导航。

现在的问题是,当 VoiceOver 打开时,VoiceOver 会将

NavigationLink
读出为
button
,尽管用户在视觉上完全看不到它。

我们如何阻止 VoiceOver 读出此内容

NavigationLink

struct ContentView: View {
    @State private var isShowingDetailView = false

    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(destination: Text("Second View"), isActive: $isShowingDetailView) { EmptyView() }

                Button("Tap to show detail") {
                    isShowingDetailView = true
                }
            }
            .navigationTitle("Navigation")
        }
    }
}
ios swift swiftui accessibility swiftui-navigationlink
1个回答
0
投票

我假设您的目标是 iOS 15 或更低版本,因为在 iOS 16 中,您应该使用

navigationDestination(isPresented:destination:)
,这不会出现此问题。即使您的目标是 iOS 15,我仍然建议您使用
@available
检查 iOS 16。

您可以使用

accessibilityHidden
从辅助功能系统中完全隐藏元素。

NavigationLink(
    destination: Text("Second View"), 
    isActive: $isShowingDetailView
) { EmptyView() }
    .accessibilityHidden(true)
© www.soinside.com 2019 - 2024. All rights reserved.