Testar a acessibilidade do seu app

O teste de acessibilidade permite que você experimente seu app da perspectiva dos usuários e encontre problemas de usabilidade que, de outra forma, não verificaria. Os testes de acessibilidade podem mostrar oportunidades para tornar seu app mais poderoso e versátil para todos os usuários, incluindo os portadores de deficiências.

Para ter os melhores resultados, use todas as abordagens descritas neste documento:

  • Teste manual: interaja com seu app usando os serviços de acessibilidade do Android.
  • Testes com ferramentas de análise: use ferramentas para descobrir oportunidades de melhorar a acessibilidade do app.
  • Testes automatizados: ative os testes de acessibilidade no Espresso.
  • Testes de usuários: receba feedback de pessoas reais que interagem com seu app.

Teste manual

O teste manual coloca você no lugar do usuário. Os objetos AccessibilityService do Android mudam a maneira como o conteúdo do seu app é apresentado ao usuário e como o usuário interage com o conteúdo. Ao interagir com seu app usando os serviços de acessibilidade, é possível ter a experiência que o usuário teria com o app.

TalkBack

O TalkBack é o leitor de tela integrado do Android. Quando o TalkBack estiver ativado, os usuários poderão interagir com os dispositivos Android deles sem ver a tela. Os usuários com deficiência visual poderão contar com o TalkBack para usar seu app.

Ativar o TalkBack

  1. Abra o app Config. do dispositivo.
  2. Navegue até Acessibilidade e selecione TalkBack.
  3. Na parte superior da tela do TalkBack, pressione Ativar/Desativar para ativar o TalkBack.
  4. Na caixa de diálogo de confirmação, selecione OK para confirmar as permissões.

Navegar pelo seu app com o TalkBack

Depois que o TalkBack estiver ativado, há duas maneiras comuns de navegar:

  • Navegação linear: deslize para a direita ou para a esquerda rapidamente para navegar pelos elementos da tela em sequência. Toque duas vezes em qualquer lugar para selecionar.
  • Reconhecer por toque: arraste o dedo sobre a tela para ouvir o que está sob seu dedo. Toque duas vezes em qualquer lugar para selecionar.

Para navegar pelo seu app com o TalkBack, siga as seguintes etapas:

  1. Abra seu app.
  2. Deslize por todos os elementos em sequência.
  3. Ao navegar, procure pelos seguintes problemas:

    • O feedback falado de cada elemento transmite o conteúdo ou propósito adequadamente? Saiba como escrever etiquetas significativas (link em inglês).
    • As descrições faladas são sucintas ou desnecessariamente detalhadas?
    • Você consegue concluir os principais fluxos de trabalho com facilidade?
    • Você consegue acessar todos os elementos deslizando?
    • Se alertas ou outras mensagens temporárias forem exibidos, eles serão lidos em voz alta?

Para mais informações e dicas, consulte Conhecer todas as configurações do "TalkBack".

Opcional: configurações do desenvolvedor do TalkBack

As configurações do desenvolvedor do TalkBack facilitam os testes do app com o recurso.

Para ver ou mudar as configurações do desenvolvedor, siga as seguintes etapas:

  1. Abra o app Config. do dispositivo.
  2. Navegue até Acessibilidade e selecione TalkBack.
  3. Selecione Configurações > Configurações do desenvolvedor:

    1. Nível de saída do registro: selecione DETALHADO.
    2. Exibir saída de fala: ative essa configuração para ver a saída de fala do TalkBack na tela.

Acesso com interruptor

O "Acesso com interruptor" permite que os usuários interajam com dispositivos Android usando um interruptor em vez da tela touchscreen. Há vários tipos de interruptores: dispositivos de tecnologia adaptativa, como os vendidos pela AbleNet, Enabling Devices, RJ Cooper ou Tecla*; teclas do teclado externo ou botões. Esse serviço pode ser útil para usuários com deficiências motoras.

* O Google não endossa essas empresas nem os produtos delas.

Ativar o "Acesso com interruptor"

Uma maneira simples de configurar o "Acesso com interruptor" é com dois interruptores. Um interruptor é designado como o interruptor "Próxima" e move o foco pela tela, e um segundo interruptor, "Selecionar", seleciona o elemento em foco. É possível usar qualquer par de chaves de hardware para usar esse método de dois interruptores.

Observação: sua experiência com o "Acesso com interruptor" pode variar dependendo das ferramentas e do software que você está usando:

  • Se você usa um interruptor externo, como um teclado, há outras etapas de configuração. Por exemplo, é necessário reativar o teclado virtual. Para mais informações, consulte a Alterar configurações de acesso com interruptor.
  • Se você está usando o TalkBack 5.1 ou versão posterior, um assistente de configuração está disponível para configurar o "Acesso com interruptor". Para usar esse assistente em vez das etapas abaixo, acesse Config. > Acessibilidade > Acesso com interruptor > Configurações > Abrir o guia de configuração.

Para configurar o "Acesso com interruptor" usando a tecla de diminuir volume como interruptor “Próxima” e a tecla de aumentar volume como interruptor “Selecionar”, siga estas etapas:

  1. Verifique se o TalkBack está desativado.
  2. Abra o app Config. do dispositivo.
  3. Navegue até Acessibilidade e selecione Acesso com interruptor. Em seguida, selecione Configurações.
  4. Na tela “Preferências de acesso com interruptor”, verifique se a Leitura automática está desativada.
  5. Use a tecla de diminuir volume como interruptor "Próxima":

    1. Toque em Atribuir teclas para verificação > Próxima.
    2. Quando a caixa de diálogo aparecer, pressione a tecla de diminuir volume. A caixa de diálogo mostrará KEYCODE_VOLUME_DOWN.
    3. Toque em OK para confirmar e sair da caixa de diálogo.
  6. Use a tecla de aumentar volume como o interruptor "Selecionar":

    1. Toque em "Selecionar".
    2. Quando a caixa de diálogo aparecer, pressione a tecla de aumentar volume. A caixa de diálogo mostrará KEYCODE_VOLUME_UP.
    3. Toque em OK para confirmar e sair da caixa de diálogo.
  7. Para retornar às preferências do "Acesso com interruptor", pressione o botão "Voltar".

  8. Opcional: se você estiver usando o TalkBack 5.1 ou uma versão posterior, selecione Feedback falado para ativar esse recurso.

  9. Para retornar à tela principal do "Acesso com interruptor", pressione o botão "Voltar".

  10. Na parte superior da tela do recurso, pressione Ativar/Desativar para ativar o "Acesso com interruptor".

  11. Na caixa de diálogo de confirmação, selecione OK para confirmar as permissões.

Navegar pelo seu app usando o "Acesso com interruptor"

Para navegar pelo seu app usando o "Acesso com interruptor", siga estas etapas:

  1. Abra seu app.
  2. Para iniciar a leitura, pressione o interruptor "Próxima" (diminuir volume).
  3. Continue pressionando "Próxima" até chegar ao item que você pretende selecionar.
  4. Para selecionar o item destacado, pressione o interruptor "Selecionar" (aumentar volume).
  5. Ao navegar, procure pelos seguintes problemas:

    • Você consegue concluir os principais fluxos de trabalho com facilidade?
    • Se você tem entrada de texto ou de outro tipo, é possível adicionar e editar o conteúdo com facilidade?
    • Os itens são destacados somente se você pode realizar uma ação com eles?
    • Cada item é destacado apenas uma vez?
    • Todas as funcionalidades disponíveis por meio de gestos da tela touchscreen também estão disponíveis como controles selecionáveis ou ações personalizadas no "Acesso com interruptor"?
    • Se você estiver usando o TalkBack 5.1 ou uma versão posterior e tiver ativado o feedback falado, essa descrição de cada elemento transmite o conteúdo ou propósito adequadamente? Saiba como escrever etiquetas significativas (link em inglês).

Opcional: usar a seleção de grupo para ver todos os itens verificáveis

A seleção de grupo é um método de navegação do "Acesso com interruptor" que permite ver todos os itens verificáveis de uma só vez. Essa opção permite que você execute uma verificação rápida para ver se os elementos corretos estão destacados na tela.

Para ativar a seleção de grupo, siga as seguintes etapas:

  1. Abra o app Config. do dispositivo.
  2. Navegue até Acessibilidade e selecione Acesso com interruptor. Em seguida, selecione Configurações.
  3. Na tela “Preferências de acesso com interruptor”, verifique se a Leitura automática está desativada.
  4. Selecione Método de leitura > Seleção de grupo.
  5. Toque em Atribuir interruptores para a leitura.
  6. Verifique se o texto em Interruptor de seleção de grupo 1 e Interruptor de seleção de grupo 2 mostra que um interruptor foi atribuído a cada um deles. Se você já seguiu as etapas para ativar o "Acesso com interruptor", os botões de volume já estarão atribuídos.

Para navegar pelo seu app com o "Acesso com interruptor" usando a seleção de grupo, siga estas etapas:

  1. Pressione a tecla "Selecionar" (aumentar volume) para destacar todos os itens acionáveis na tela atual. Procure pelos seguintes problemas:

    • Somente itens acionáveis são destacados?
    • Todos os itens acionáveis estão destacados?
    • A densidade dos itens destacados faz sentido?
  2. Navegue para uma tela diferente para limpar o destaque.

Para saber mais sobre como os usuários podem navegar com a seleção de grupo, consulte Dicas para usar o acesso com interruptor.

Outros serviços

O Android oferece várias outras ferramentas para testar a acessibilidade do seu app.

BrailleBack

O Google BrailleBack é um aplicativo que permite que os usuários conectem uma linha braille atualizável a um dispositivo Android usando o Bluetooth. O BrailleBack funciona com o TalkBack para proporcionar uma experiência combinada de fala e braille.

Para testar seu app com uma linha braille, saiba como instalar e ativar o BrailleBack.

Para ver o braille (e a tradução ASCII) que o BrailleBack renderiza, sem conectar uma linha braille, use a opção de sobreposição nas configurações do BrailleBack:

  1. Abra o app Config. do dispositivo.
  2. Navegue até Acessibilidade e selecione BrailleBack.
  3. Selecione Configurações > Opções do desenvolvedor > Exibir a saída braille na tela.

Acesso por voz

O Acesso por voz permite que os usuários controlem um dispositivo Android com comandos falados. O Acesso por voz está disponível em dispositivos com o Android 5.0 (API de nível 21) e versões posteriores. Para testar seu app com ele, saiba como começar a usar o Acesso por voz.

Ferramentas de análise

Os testes com ferramentas de análise podem revelar oportunidades de melhoria da acessibilidade que você perderia com o teste manual.

Scanner de acessibilidade

O aplicativo Scanner de acessibilidade analisa sua tela e fornece sugestões para melhorar a acessibilidade do seu app. O Scanner de acessibilidade usa o Framework de teste de acessibilidade (link em inglês) e oferece sugestões específicas depois de analisar classificações de conteúdo, itens clicáveis, contraste e muito mais.

Saiba mais:

Relatório de pré-lançamento no Google Play

Se você distribuir seu app no Google Play, terá acesso a um relatório de pré-lançamento para ele. O Google Play gera esse relatório logo depois que você faz upload de um app para um canal de lançamento usando o Google Play Console. O relatório de pré-lançamento, que também está disponível no Google Play Console, exibe os resultados dos testes que o Google Play realiza no seu app.

Em especial, o Google Play executa testes de acessibilidade usando o Framework de acessibilidade de testes (link em inglês). Os resultados desses testes aparecem em uma tabela na guia Acessibilidade do relatório de pré-lançamento do seu aplicativo.

A tabela organiza as oportunidades de melhoria nas seguintes categorias:

Tamanho da área de toque
Elementos interativos no seu app que têm uma área focalizável ou um tamanho da área de toque menor que o recomendado.
Baixo contraste
Instâncias em que o par de cores usado para um elemento de texto e o plano de fundo atrás desse elemento têm uma proporção de contraste de cor menor que o recomendado.
Classificação de conteúdo
Elementos da IU que não têm um rótulo que descreva a finalidade de um determinado elemento.
Implementação
Atributos atribuídos a elementos de IU que dificultam a interpretação correta dos serviços de acessibilidade pelo sistema. Entre os exemplos estão a definição de uma descrição para um rótulo View editável e o uso de uma ordem de apresentação de um elemento que não corresponda à disposição lógica dos elementos.

Após a tabela, o relatório de pré-lançamento mostra snapshots do seu aplicativo. Esses snapshots representam as principais oportunidades para melhorar a acessibilidade do seu app em cada categoria. Ao selecionar uma captura de tela, você poderá ver mais detalhes, incluindo uma sugestão de melhoria e uma lista mais completa de lugares no seu app em que você pode aplicar essa melhoria.

A Figura 1 mostra um exemplo da tabela que aparece na guia Acessibilidade de um relatório de pré-lançamento no Google Play. Ela também inclui um dos snapshots do app, mostrando que o botão Próxima tem um tamanho de área de toque menor que o recomendado.

Captura de tela das seções do relatório de pré-lançamento
Figura 1. Exemplo de tabela de resumo (à esquerda) e captura de tela (à direita) da guia Acessibilidade de um relatório de pré-lançamento.

Visualizador do UI Automator

A ferramenta uiautomatorviewer oferece uma GUI conveniente para verificar e analisar os componentes de IU exibidos no momento em um dispositivo Android. Você pode usar o UI Automator para inspecionar a hierarquia de layouts e ver as propriedades de componentes de IU visíveis no primeiro plano do dispositivo. Essas informações permitem criar testes mais refinados, por exemplo, um seletor de IU que corresponda a uma propriedade visível específica. A ferramenta está localizada no diretório tools do SDK do Android.

Nos testes de acessibilidade, essa ferramenta é útil para depurar problemas encontrados usando outros métodos de teste. Por exemplo, se o teste manual resultar em uma visualização que não tenha texto que possa ser falado ou uma visualização que recebe foco indesejadamente, você poderá usar a ferramenta para localizar a origem do bug.

Para saber mais sobre o visualizador do IU Automator, consulte Como testar a IU para vários apps.

Lint

O Android Studio mostra avisos de lint para vários problemas de acessibilidade e fornece links para os locais no código-fonte que contêm esses problemas. No exemplo a seguir, falta um atributo contentDescription na imagem. A descrição do conteúdo ausente resulta na seguinte mensagem:

    [Accessibility] Missing 'contentDescription' attribute on image
    

A Figura 2 mostra um exemplo de como essa mensagem aparece no Android Studio:

Captura de tela da mensagem
Figura 2. Mensagem no Android Studio mostrando o atributo contentDescription ausente.

Se os usuários de serviços de acessibilidade, como leitores de tela, encontrarem essa imagem no aplicativo, eles não conseguirão entender o significado da dela.

Testes automatizados

A plataforma Android é compatível com vários frameworks de teste, incluindo o Espresso e o Robolectric, que permitem criar e executar testes automatizados que avaliam a acessibilidade do seu aplicativo.

Para ter uma visão geral em vídeo dos testes de acessibilidade com o Espresso e o Robolectric, assista ao vídeo a seguir a partir do minuto 31:54 até o 34:19: Testes e design inclusivos: como tornar seu app mais acessível - Google I/O 2016 (em inglês).

Espresso

O Espresso é uma biblioteca de testes do Android criada para fazer testes de IU de forma rápida e fácil. Ele permite que você interaja com componentes de IU em teste no seu app e declare que certos comportamentos ocorrem ou que condições específicas são atendidas.

Ativar verificações

Você pode ativar e configurar o teste de acessibilidade por meio das verificações AccessibilityChecks:

Kotlin

    AccessibilityChecks.enable()
    

Java

    AccessibilityChecks.enable();
    

Por padrão, as verificações são executadas quando você realiza qualquer ação de visualização definida em ViewActions. A verificação inclui a visualização na qual a ação é realizada, bem como todas as visualizações descendentes. Verifique toda a hierarquia de uma tela usando o seguinte código:

Kotlin

    AccessibilityChecks.enable().setRunChecksFromRootView(true)
    

Java

    AccessibilityChecks.enable().setRunChecksFromRootView(true);
    

Para ver mais amostras de código, veja estes testes demonstrativos (link em inglês).

Suprimir problemas conhecidos

Ao ativar as verificações pela primeira vez, você pode encontrar vários problemas que talvez não possam ser solucionados imediatamente. Para suprimir falhas de teste resultantes desses problemas, defina um matcher para os resultados que você quer suprimir. Para fazer isso, receba um objeto AccessibilityValidator chamando o método enable() da classe AccessibilityChecks e use o método setSuppressingResultMatcher() do objeto AccessibilityValidator retornado para configurar um matcher de supressão.

No exemplo a seguir, todos os problemas relacionados ao tamanho da área de toque em objetos View com um ID de recurso de "overflow" são suprimidos:

Kotlin

    val validator: AccessibilityValidator = AccessibilityChecks.enable().apply {
        setSuppressingResultMatcher(
                allOf(
                        matchesCheckNames(`is`("TouchTargetSizeViewCheck")),
                        matchesViews(withId(R.id.my_overflow))
                )
        )
    }
    

Java

    AccessibilityValidator validator = AccessibilityChecks.enable();
    Matcher<AccessibilityViewCheckResult> myMatcher =
            allOf(
                    matchesCheckNames(is("TouchTargetSizeViewCheck")),
                    matchesViews(withId(R.id.my_overflow)));
    validator.setSuppressingResultMatcher(myMatcher);
    

Robolectric

O Robolectric é uma biblioteca de testes de código aberto do Android que permite testar o código real do Android em uma JVM sem precisar iniciar um emulador. Saiba como começar a usar o Robolectric.

Suprimir problemas conhecidos

Ao ativar as verificações do Robolectric pela primeira vez, você pode encontrar vários problemas que talvez não possam ser solucionados imediatamente. É possível suprimir esses erros definindo um matcher para os resultados que você quer suprimir. Para mais informações, consulte a documentação do método setSuppressingResultMatcher() da classe AccessibilityUtil (links em inglês) que está disponível no Robolectric.

Testes de usuários

Junto aos outros métodos de teste neste guia, os testes de usuários podem fornecer insights específicos e valiosos sobre a usabilidade do seu app.

Para encontrar usuários que possam testar seu app, use métodos como os seguintes:

  1. Entre em contato com organizações, faculdades ou universidades locais que oferecem treinamento para pessoas com deficiência.
  2. Pergunte ao seu círculo social. Pode haver pessoas com deficiência que estejam dispostas a ajudar.
  3. Pergunte a um serviço de testes de usuário (como usertesting.com, em inglês) se eles podem testar seu app e incluir usuários com deficiência.
  4. Participe de um fórum de acessibilidade, como Accessibility ou Eyes-free, (em inglês) e solicite voluntários para testar seu aplicativo.

Para ver mais dicas, assista a seção de teste de usuários deste vídeo, do minuto 31:10 ao 44:51: Bastidores: novidades de acessibilidade do Android - Google I/O 2016 (em inglês).