微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么VoiceOver无法大声朗读SwiftUI DatePicker可访问性提示?

如何解决为什么VoiceOver无法大声朗读SwiftUI DatePicker可访问性提示?

我无法成功让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会大声读取附近元素(例如TextTextFieldToggleButton的辅助功能提示。但是,VoiceOver不会大声朗读附加到同一视图内DatePicker实例的辅助功能提示

为什么VoiceOver会大声读取某些元素(例如TextTextFieldButton的可访问性提示,而不大声朗读DatePicker的那些提示

更新 我尝试使用以下修改,但是VoiceOver继续无视辅助功能提示

DatePicker(
    selection: $viewmodel.eventDate,displayedComponents: [.date],label: {
        Text(viewmodel.eventDatePickerLabelText)
            .accessibilityHint("This does not work either.")
    }
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。