You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI按钮点击后如何设置不同的VoiceOver无障碍文本?

SwiftUI按钮点击后自定义VoiceOver播报文本

场景1:仅点击时播报新内容(后续聚焦仍保留初始文本)

直接在按钮的点击动作中调用系统无障碍播报方法,点击后VoiceOver会单独播报指定内容,不会包含按钮的初始无障碍标签。

代码示例:

@State private var count = 0

Button {
    count += 1
    // 点击后触发自定义播报
    UIAccessibility.post(notification: .announcement, argument: "Count is \(count)")
} label: { 
    Text("Increment") 
} 
.accessibilityLabel("点击此处增加计数")

场景2:点击后永久修改按钮的VoiceOver播报文本(后续聚焦也显示新内容)

通过状态变量动态绑定accessibilityLabel,点击按钮时更新状态值,按钮的无障碍标签会同步切换,后续聚焦或点击时都会播报新内容,不会包含初始文本。

代码示例:

@State private var count = 0
@State private var accessibilityText = "点击此处增加计数"

Button {
    count += 1
    accessibilityText = "Count is \(count)"
} label: { 
    Text("Increment") 
} 
.accessibilityLabel(accessibilityText)

说明:

  • 场景1适合仅需要在点击瞬间反馈操作结果,按钮本身的功能描述仍保留初始文本的场景。
  • 场景2适合按钮关联的状态发生变化,需要后续聚焦时也展示当前状态的场景。

内容的提问来源于stack exchange,提问作者RJ168

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 22:12:02