-
Améliorez l’accessibilité de votre app Mac pour tous
Découvrez comment intégrer des fonctionnalités d'accessibilité qui exploitent pleinement la puissance et la flexibilité de macOS. Approfondissez les notions de base pour découvrir comment prendre en charge VoiceOver et le contrôle vocal, améliorer la disposition de vos vues, explorer la façon dont les technologies d'assistance naviguent dans votre contenu, et bien plus encore.
Chapitres
- 0:00 - Bienvenue
- 0:44 - Disposition
- 7:48 - Navigation
- 9:52 - Interaction
Ressources
Vidéos connexes
WWDC24
WWDC21
-
Rechercher dans cette vidéo…
-
-
4:15 - Contain subviews within accessibility container
// Contain subviews within accessibility container import SwiftUI struct ContentView: View { var body: some View { VStack { FirstView() SecondView() } .accessibilityElement(children: .contain) } } -
4:23 - Combine subviews into one accessibility element
// Combine subviews into one accessibility element import SwiftUI struct ContentView: View { var body: some View { VStack { FirstView() SecondView() } .accessibilityElement(children: .combine) } } -
4:33 - Hide subviews from accessibility
// Hide subviews from accessibility import SwiftUI struct ContentView: View { var body: some View { VStack { FirstView() SecondView() } .accessibilityElement(children: .ignore) } } -
5:12 - Contain style presets in accessibility container
// Contain style presets in accessibility container import SwiftUI struct FormattingInspectorView: View { var body: some View { Form { VStack { StylePresetView(type: .title) StylePresetView(type: .heading) StylePresetView(type: .subHeading) StylePresetView(type: .body) } .accessibilityElement(children: .contain) .accessibilityLabel("Style Presets") } } } -
6:21 - Merge Title View and Button into one accessibility element
// Merge Title View and Button into one accessibility element import SwiftUI struct StylePresetView: View { let preset: StylePreset var body: some View { HStack { PresetTitleView(preset: preset) Button("Apply") { /* ... */ } } .accessibilityElement(children: .combine) } } -
7:01 - Set the order of accessibility elements
// Set the order of accessibility elements import SwiftUI struct BookDetailsView: View { let book: Book var body: some View { VStack { Text(book.author) Text(book.title) .accessibilitySortPriority(1) DescriptionView(book: book) } .accessibilityElement(children: .combine) } } -
8:43 - Add an accessibility rotor for bookmarked pages
// Add an accessibility rotor for bookmarked pages import SwiftUI struct PagesView: View { @Binding var pages: [Page] var body: some View { List(pages) { page in PageListItemView(page: page) } .accessibilityRotor("Bookmarks") { ForEach(pages) { page in if page.isBookmarked { AccessibilityRotorEntry(page.title, id: page.id) } } } } } -
9:33 - Set the default VoiceOver focus
// Set the default VoiceOver focus struct MyView: View { @AccessibilityFocusState(for: .voiceOver) var focusedForVoiceOver var body: some View { FirstView() SecondView() .accessibilityDefaultFocus($focusedForVoiceOver, true) ThirdView() } } -
10:28 - Add an accessibility action to bookmark the page
// Add an accessibility action to bookmark the page import SwiftUI struct PageListItemView: View { var page: Page var body: some View { VStack() { ThumbnailView(page: page) Text(page.title) } .onHover { /* ... */ } .accessibilityAction(named: page.isBookmarked ? "Remove Bookmark" : "Bookmark") { page.isBookmarked.toggle() } } }
-
-
- 0:00 - Bienvenue
Découvrez comment rendre les apps Mac plus accessibles. Découvrez les bonnes pratiques en matière de représentation de la mise en page, d’accélération de la navigation et d’accessibilité des interactions afin que tout le monde puisse profiter des apps Mac.
- 0:44 - Disposition
SwiftUI sur macOS permet de rendre vos apps accessibles à tous et à toutes, en particulier à celles et ceux qui utilisent VoiceOver. SwiftUI crée des éléments d’accessibilité à partir des vues, mais il est recommandé d’affiner cette structure pour garantir une navigation optimale. Les principaux aspects de l’accessibilité de macOS comprennent le regroupement d’éléments connexes dans des conteneurs afin de créer une structure arborescente qui accélère la navigation. Vous pouvez utiliser des modificateurs comme accessibilityElement(children:) pour spécifier comment les vues et leurs sous-vues sont représentées : en tant que conteneurs, éléments combinés ou ignorés. Par exemple, dans l’app d’édition de texte de Nicholas, des améliorations ont été apportées à l’inspecteur de mise en forme en regroupant les préréglages de style et en combinant les boutons de titre et d’app en un seul élément. Utilisez aussi le modificateur accessibilitySortPriority pour réorganiser les éléments, en veillant à ce que les informations les plus importantes soient lues en premier.
- 7:48 - Navigation
L’accessibilité de l’app de l’exemple est améliorée grâce aux rotors, une fonctionnalité VoiceOver qui permet de passer rapidement d’un contenu spécifique à un autre, tel que des pages mises en signet. Cela simplifie la navigation et la rend plus efficace pour les utilisateurs et utilisatrices de VoiceOver. Un nouveau modificateur dans SwiftUI peut suggérer des points de focalisation initiaux.
- 9:52 - Interaction
Dans les apps SwiftUI, assurez-vous que toutes les interactions sont accessibles, au-delà des méthodes basées sur des pointeurs. Utilisez les actions d’accessibilité et les raccourcis clavier pour les personnes utilisant VoiceOver, Contrôle de sélection et le contrôle vocal.