SwiftUI 按钮操作的辅助功能文本

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

我有一个用例,我想在单击 SwiftUI 按钮后为 VoiceOver 提供不同的文本。

初始值不同,可以使用 accessibilityLabelaccessibilityValue 设置,例如“点击此处增加计数”

Button {
  // button action
} label: { 
  Text("Increment") 
} 
.accessibilityValue("Tap here to increment the count") 

但是我如何通过按钮操作设置新值,画外音应该是呼叫计数,例如“数到10”

有人可以建议我应该在这里使用哪个属性吗

注意* 单击按钮后,我只需要操作文本语音输出,并且应该没有初始文本

ios swiftui accessibility voiceover
1个回答
0
投票

要在单击

VoiceOver
按钮后更改
SwiftUI
文本,您可以使用状态变量来动态更新按钮的
accessibilityLabel

点击按钮时,您可以更新此状态变量,这反过来又会更新

VoiceOver
读取的辅助功能文本。

这是一个演示这一点的基本示例:

import SwiftUI

struct ContentView: View {
    @State private var count = 0
    @State private var voiceOverText = "Tap here to increment the count"

    var body: some View {
        Button(action: {
            count += 1
            voiceOverText = "Count is \(count)"
        }) {
            Text("Increment")
        }
        .accessibilityLabel(Text(voiceOverText))
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.