En
Accessible iOS design: how Forza Football included blind users se explica cómo modificar el orden de tabulación (deslizamiento,
swipe) en iOS.
El mecanismo es similar al empleado en HTML, pero en vez de usar el atributo tabindex, se emplea la propiedad
accessibilitySortPriority. En el artículo se incluyen algunos vídeos de demostración y también algunos fragmentos de código:
// Setting the reversed priorities
func playersByPosition() -> [[PlayerPrioritized]] {
var players = awayLineup.reversed() // from forward to goalkeeper
var sectors = [[PlayerPrioritized]]()
var priority = viewSortingPriority
for (i, sector) in formation.reversed().enumerated() {
// creating inner array per formation sector
sectors.append([PlayerPrioritized]())
for _ in 0..<sector {
// get and remove first player from list for next iteration
let player = players.removeFirst()
sectors[i].append(PlayerPrioritized(player: player, priority: priority))
priority += 0.08 // increase priority to next player
}
}
return sectors
}
// AwayTeamView
var body: some View {
VStack {
Text(away.lineUpHeading)
...
// will be higher than first player
.accessibilitySortPriority(viewSortingPriority + 0.95)
ForEach(playersByPosition(), id: \.self) { sector in
HStack {
ForEach(sector, id: \.self) { player in
PlayerView(model: player)
.accessibilitySortPriority(player.priority)
}
}
}
}
}
Y también:
// LineUps View
var body: some View {
ScrollView {
HomeTeamView(home: homeTeam)
.accessibilitySortPriority(3)
AwayTeamView(away: awayTeam,
sortingPriority: 2)
Text("Substitutes")
.accessibilitySortPriority(1)
HStack {
BenchView(team: homeTeam)
.accessibilitySortPriority(0.9)
BenchView(team: awayTeam)
.accessibilitySortPriority(0.8)
}
}
}