Я работаю над приложением с множественным выбором в SwiftUI. Я пишу это приложение для пользователей VoiceOver. Мое приложение выводит вопрос на экран с некоторыми вариантами выбора, а затем кнопкой следующего вопроса. После того, как пользователь активирует кнопку «Следующий вопрос», следующий вопрос и варианты отображаются на экране. Я пытаюсь, чтобы VoiceOver сфокусировался на тексте для следующего вопроса с помощью специальных возможностей (sortPriority: модификатор. Поскольку этот текст является единственным доступным (у меня есть sortPriority: модификатор, я установил его на 1. При публикации первого вопроса)VoiceOver считывает текст первого вопроса. Всякий раз, когда пользователь VoiceOver активирует кнопку следующего вопроса, фокус на VoiceOver остается на этой кнопке. Ниже приведен фрагмент кода.
var body: some View {
VStack {
VStack {
Text(questionText).accessibility(sortPriority: 1)
}
ForEach(choices, id: \.self) { choice in
Button(action: {
self.answer = choice
}) {
Text(choice)
}
}
if self.answer != "" && self.answer != self.correctAnswer {
Text("Nope, try again.")
} else if self.answer == self.correctAnswer {
Text("That was the correct answer.")
}
if self.questionNumber < self.questions.questions.count-1 {
Button(action: {
self.questionNumber += 1
if self.theQuestion.count < 6 {
self.questionNumber += 1
}
self.answer = ""
}) {
Text("Next Question")
}
}
}.accessibilityElement(children: .contain)
/*out of VStack
*/
}
}