问题描述
我无法成功让VoiceOver朗读SwiftUI DatePicker
实例的可访问性提示。我希望VoiceOver在启用辅助功能提示时会大声朗读辅助功能提示。
预期的辅助功能提示的本地化版本存储在Localizable.strings
文件中:
/*
Localizable.strings
*/
"accessibility-hint" = "the date of the event";
可访问性提示的本地化版本用于视图模型:
/*
viewmodel.swift
*/
let eventDatePickerAccessibilityHint = NSLocalizedString("accessibility-hint",comment: "").localizedCapitalized
视图模型的属性用于附加到View
的SwiftUI DatePicker
中:
/*
View.swift
*/
Form {
// Accessibility hint is read aloud for following Toggle
Toggle(
isOn: $viewmodel.eventIsAllDay.animation(),label: {
Text(viewmodel.isAllDayLabelText)
}
)
.accessibilityHint(viewmodel.isAllDayToggleAccessibilityHint)
// Accessibility hint is not read aloud for following DatePicker
DatePicker(
viewmodel.eventDatePickerLabelText,selection: $viewmodel.eventDate,in: viewmodel.Now...,displayedComponents: [.date]
)
.accessibilityHint(viewmodel.eventDatePickerAccessibilityHint)
// Accessibility hint is read aloud for following Button
Button {
viewmodel.save()
} label: {
Text(viewmodel.saveButtonTitle)
}
.disabled(viewmodel.disableSaveButton())
.accessibilityHint(viewmodel.saveButtonAccessibilityHint)
}
在启用VoiceOver的情况下浏览视图时,VoiceOver会大声读取附近元素(例如Text
,TextField
,Toggle
和Button
的辅助功能提示。但是,VoiceOver不会大声朗读附加到同一视图内DatePicker
实例的辅助功能提示。
为什么VoiceOver会大声读取某些元素(例如Text
,TextField
和Button
的可访问性提示,而不大声朗读DatePicker
的那些提示?
更新 我尝试使用以下修改,但是VoiceOver继续无视辅助功能提示:
DatePicker(
selection: $viewmodel.eventDate,displayedComponents: [.date],label: {
Text(viewmodel.eventDatePickerLabelText)
.accessibilityHint("This does not work either.")
}
)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)