为什么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 (将#修改为@)