Первый голос специальных возможностей для даты в строке - PullRequest
0 голосов
/ 13 июля 2020

У меня есть код ниже.

let text = "as of 07/29/2020"
textLabel.text = text

Voice Over прочтите его - "по состоянию на 07 sla sh 29 sla sh 2 Thousand 20"

Как я могу это сделать произносить как «по состоянию на 29 июля 2 тысяча 20»

1 Ответ

0 голосов
/ 13 июля 2020

Ответ Не уверен, что именно вы пытаетесь решить. Но, надеюсь, это поможет.

Шаг 1: Вам необходимо использовать свойство метки доступности label.accessibilityLabel = "some string"

Шаг 2: Преобразуйте дату в более удобную строку для озвучивания. Это можно сделать, используя объект Date() и отформатировав его по-разному для метки и метки закадрового текста. Вот ссылка для быстрого создания дат.

Ниже находится ссылка на документацию и раздел, в котором упоминаются метки доступности.

Пример игровой площадки: ваш код будет выглядит примерно так.

import UIKit
import PlaygroundSupport

let label = UILabel()

let dateForLabel = formatDate(date: Date(), style: .short)
let dateStringForLabel = "as of \(dateForLabel)"
label.text = dateStringForLabel

let dateForVoiceOverLabel = formatDate(date: Date(), style: .long)
let dateStringForVoiceOver = "as of \(dateForVoiceOverLabel)"
label.accessibilityLabel = dateStringForVoiceOver

func formatDate(date: Date, style: DateFormatter.Style) -> String {

let dateFormatter = DateFormatter()
dateFormatter.dateStyle = style
dateFormatter.timeStyle = .none

let date = date

// US English Locale (en_US)
dateFormatter.locale = Locale(identifier: "en_US")
return  dateFormatter.string(from: date) // Jan 2, 2001
}

Ссылка для создания объекта Date () Как создать объект Swift Date?

Ссылка на документацию Apple на ярлыках специальных возможностей https://developer.apple.com/documentation/uikit/accessibility_for_ios_and_tvos/supporting_voiceover_in_your_app

«Обновите специальные возможности вашего приложения. Для элементов, которые были недоступны для VoiceOver, начните с улучшения их метки доступности и подсказки:

Свойство accessibilityLabel предоставляет описательный текст, который VoiceOver читает, когда пользователь выбирает элемент.

Свойство accessibilityHint предоставляет дополнительный контекст (или действия) для выбранного элемента.

Ярлыки специальных возможностей очень важны, поскольку они содержат текст, который читает VoiceOver. Хорошая метка специальных возможностей должна быть короткой и формирующий. Важно отметить, что UILabel и accessibilityLabel - это разные вещи. По умолчанию VoiceOver читает текст, связанный со стандартными элементами управления UIKit, такими как UILabel и UIButton. Однако эти элементы управления также могут иметь соответствующие свойства accessibilityLabel для добавления дополнительных сведений о метке или кнопке.

В зависимости от контекста подсказки не всегда необходимы. В некоторых случаях метка обеспечивает достаточный контекст. Если вы чувствуете, что слишком много говорите в метке доступности, подумайте о том, чтобы переместить этот текст в подсказку.

Чтобы пользователи понимали назначение вашего интерфейса, вам может потребоваться установить некоторые метки доступности вручную. Метки доступности и подсказки могут быть установлены в Xcode Identity Inspector или программно. "

...