德语VoiceOver读取开头为Feedback的accessibilityLabel时莫名出现Komma的原因问询
德语VoiceOver读取"Feedback"开头的无障碍标签时莫名前置出现"Komma"的异常问题
异常现象
- 当视图的
accessibilityLabel字符串以"Feedback"作为开头时,德语环境下的VoiceOver会在读取实际标签内容前,无逻辑地额外读出德语单词"Komma",该内容和开发者配置的标签值无任何关联 - 该异常属于系统层逻辑偏差,从常规代码配置中找不到触发原因
触发边界
- 只要"Feedback"处于
accessibilityLabel字符串的最开头,后续拼接任意内容都会触发该异常;若"Feedback"不在字符串开头,VoiceOver读取完全正常 - 异常仅在无障碍语言设置为德语时触发,切换为英语等其他语言时,读取逻辑完全符合预期
典型场景对照
- 标签设置为
"Feedback bla bla bla"→ 实际读取结果为"Komma Feedback bla bla bla" - 标签设置为
"bla bla bla Feedback"→ 实际读取结果和设置文本完全一致,无额外插入内容 - 标签设置为
"Mein Feedback"→ 读取结果正常,无"Komma"前缀 - 标签设置为纯
"Feedback"、无障碍语言为德语时 → 实际读取为"Komma Feedback"
复现代码
将以下代码放入Xcode项目构建运行,开启德语VoiceOver即可复现问题:
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 可替换测试其他视图类型的无障碍表现 // let label = UIView() // let label = UIButton() // let label = UIControl() let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false // 非默认开启无障碍的视图类型可手动开启无障碍 // label.isAccessibilityElement = true // 德语VoiceOver下会读取为"Komma Feedback" label.accessibilityLabel = "Feedback" // 德语VoiceOver下会读取为"Komma Feedback Text" // label.accessibilityLabel = "Feedback Text" // 德语VoiceOver下可正常读取为"Mein Feedback" // label.accessibilityLabel = "Mein Feedback" // 此处设置为"de"对应德语环境,改为"en"时VoiceOver会正常读取"Feedback" label.accessibilityLanguage = "de" self.view.addSubview(label) NSLayoutConstraint.activate([ label.centerXAnchor.constraint(equalTo: self.view.centerXAnchor), label.centerYAnchor.constraint(equalTo: self.view.centerYAnchor), label.widthAnchor.constraint(equalToConstant: 10), label.heightAnchor.constraint(equalToConstant: 10) ]) } }
开发者已将该异常提交至苹果官方反馈助手,同步在公开雷达社区登记了问题详情。
内容的提问来源于stack exchange,提问作者Fab1n
相关产品推荐
相关产品推荐

