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

如何禁用自定义Button普通态图片的VoiceOver读图片名?

解决方案

方法1:清空图片的无障碍标签

用UIImage(named:)创建普通态图片后,直接给图片设置空的accessibilityLabel,阻断VoiceOver读取图片文件名:

if let normalImage = UIImage(named: imageName1) {
    normalImage.accessibilityLabel = "" // 关键:清空图片默认的无障碍标签
    self.setImage(normalImage, for: .normal)
}
self.setImage(UIImage(named: imageName1), for: .selected)

方法2:自定义按钮的无障碍属性

直接给按钮设置自定义朗读文本,并管理选中状态的无障碍特性,让VoiceOver优先读取按钮的配置而非图片信息:

// 设置按钮的无障碍朗读文本
self.accessibilityLabel = "自定义按钮" // 替换为你需要的描述内容
// 设置按钮的基础无障碍特性
self.accessibilityTraits = .button

// 监听选中状态变化,同步更新无障碍特性
self.addTarget(self, action: #selector(updateAccessibilityTraits), for: .valueChanged)

@objc private func updateAccessibilityTraits() {
    if isSelected {
        accessibilityTraits.insert(.selected)
    } else {
        accessibilityTraits.remove(.selected)
    }
}

问题说明

出现这个问题的核心原因是:通过UIImage(named:)创建的图片,若未手动设置accessibilityLabel,系统会默认将图片文件名作为无障碍标签,VoiceOver读取按钮时会包含这部分内容。上述两种方法分别从图片本身和按钮整体的无障碍配置入手,都能解决该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:20:27