Acessibilidade em aplicativos iOS
Acessibilidade é um tema muito importante para a sociedade atual, porém muitas vezes é deixado de lado devido a quantidade de demandas vs a quantidade de trabalho. Tornar um aplicativo acessível significa não só permitir que mais pessoas conheçam o app, mas também proporcionar igualdade para cerca de 235 milhões de pessoas (18,8% das pessoas com algum tipo de deficiência), de acordo com o IBGE — 2010.
VoiceOver
Em aplicações iOS existe o recurso do VoiceOver, que é um leitor de telas baseado em gestos, no qual permite que os usuários ouçam o conteúdo que está presente na tela.
Uso do VoiceOver
- Um toque: descreve o item selecionado;
- Dois toques: clica no item selecionado;
- Deslizar 3 dedos na tela: navegação entre páginas e listas (scroll) ou fechar app;
- Deslizar o dedo para direita ou esquerda: navega entre os elementos da tela (conforme hierarquia);
- Deslizar o dedo para cima e para baixo: navega entre itens de seleção.
Desenvolvimento
Durante o desenvolvimento, existem alguns atributos de acessibilidade que podem ser utilizados:
isAccessibilityElement: Bool
é um elemento da view que pode ser atribuido o valor de true ou false, diz se o elemento deve ou não ser lido pelo VoiceOver;accessibilityLabel: String?
é um elemento da view que pode receber um texto, é nome do elemento, recomendado ser sucinto, na maioria dos casos já vem setado com o valor do conteúdo do elemento;accessibilityTraits: UIAccessibilityTrait
é um elemento da view que pode-se atribuir os valores: .none, .button, .link, .header, .searchField, .image, .selected, .playsSound, .keyboardKey, .staticText, .summaryElement, .notEnabled, .updatesFrequently, .startsMediaSession, .adjustable, .allowsDirectInteraction, .causesPageTurn, .tabBar. Esse atributo é o comportamento do elemento, a forma de interação com o mesmo. Exemplo: em umUIButton
, seuaccessibilityTraits
vai ser.button
e um toque duplo sobre o elemento irá “clicar” nele;accessibilityValue: String?
é um elemento da view que recebe um texto, é valor do elemento. O que estiver escrito em umUITextField
, por exemplo;accessibilityHint: String?
é um elemento da view que recebe um texto, são os detalhes da interação com o elemento. Exemplo: “Toca a música”;accessibilityFrame: CGRect
é um elemento da view que recebe um frame, é local onde o elemento está na tela, por padrão, o frame do elemento é o mesmo da view pai do elemento.
Boas Práticas
Algumas dicas na implementação:
- Setar apenas quando necessário os atributos
accessibilityLabel
,accessibilityHint
eaccessibilityTrait
nosUIKit Controls
; - Quando houver ordem na leitura da tela, pode-se setar o atributo
view.accessibilityElements
com a ordem a ser lida pelo leitor de tela; - Não modificar o que está na tela através da acessibilidade (adicionar ou remover informações que são visíveis para os demais usuários);
- Quando houver alertas e modais, pode-se utilizar o recurso
accessibilityViewIsModal = true
.
Considerações
Apesar deste artigo ser focado no VoiceOver, ele não é a única ferramenta de acessibilidade. Ainda existem questões como fontes dinâmicas, cores/contraste etc. E vale ressaltar que o alinhamento entre desenvolvedores e UX designers precisa estar em dia para oferecer uma experiência mais completa para todos usuários.
Petlove&Co
Quer ajudar a criar produtos de qualidade e com o olhar de acessibilidade com a gente? Veja a página de carreiras da Matilha!