-
Torne seu app para Mac mais acessível para todos
Saiba como integrar recursos de acessibilidade que aproveitam ao máximo a potência e a flexibilidade do macOS. Vá além do básico para saber como incluir a compatibilidade com o VoiceOver e o Controle por Voz, melhorar o layout de suas visualizações, explorar como as tecnologias assistivas navegam em seu conteúdo e muito mais.
Capítulos
- 0:00 - Introdução
- 0:44 - Layout
- 7:48 - Navegação
- 9:52 - Interatividade
Recursos
Vídeos relacionados
WWDC24
WWDC21
-
Buscar neste vídeo...
-
-
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 - Introdução
Saiba como aprimorar a acessibilidade em apps para Mac. Conheça as melhores práticas para representação de layout, navegação rápida e acessibilidade de interação, para todas as pessoas usarem apps para Mac.
- 0:44 - Layout
O SwiftUI no macOS permite tornar seus apps acessíveis, especialmente para quem depende do VoiceOver. O SwiftUI cria elementos de acessibilidade das visualizações, mas você deve aprimorá-los para uma navegação ideal. Os aspectos da acessibilidade no macOS incluem agrupar elementos em contêineres para criar uma estrutura em árvore, acelerando a navegação. Use modificadores como 'accessibilityElement(children:)' para especificar como as visualizações e subvisualizações são representadas: como contêineres, elementos combinados ou ignorados. No app de editor de texto de Nicholas, as melhorias no inspetor de formatação foram feitas agrupando os estilos predefinidos e combinando os botões de título e de aplicar em elementos únicos. Use a 'accessibilitySortPriority' para reordenar os elementos, garantindo que as informações mais importantes sejam lidas primeiro.
- 7:48 - Navegação
A acessibilidade do app de exemplo é aprimorada com rotores, um recurso do VoiceOver que permite navegar entre conteúdos específicos, como páginas marcadas com favoritos. Isso agiliza a navegação, tornando-a mais eficiente para quem usa o VoiceOver. Um novo modificador no SwiftUI pode sugerir pontos de foco iniciais.
- 9:52 - Interatividade
Em apps em SwiftUI, todas as interações devem ser acessíveis além dos métodos baseados em cursor. Use ações de acessibilidade e atalhos de teclado para quem utiliza o VoiceOver, Controle Assistivo e Controle por Voz.