Enquadramento
Uma pessoa que utilize o leitor de ecrã TalkBack pode navegar numa aplicação de duas maneiras:
- Explorar por toque: arrastar um único dedo pelo ecrã para explorar a organização física dos elementos.
- Navegação linear: deslizar para a direita e para a esquerda para avançar e retroceder um item de cada vez.
As aplicações Android devem suportar a exploração por toque e a navegação linear. Geralmente, a ordem de transposição durante a navegação linear deve corresponder à ordem visual, ou a ordem de transposição deve ser otimizada de outra forma para manter a ordenação lógica para os utilizadores de leitores de ecrã.
Por predefinição, o TalkBack utiliza a hierarquia de visualização da aplicação para determinar a ordem de transposição dos itens durante a navegação linear.
Implementação
Nos casos em que a hierarquia de visualização de uma aplicação não reflete a estrutura lógica da mesma, os programadores podem influenciar a transposição de acessibilidade ao definirem android:accessibilityTraversalBefore
ou android:accessibilityTraversalAfter
. Essas propriedades indicam que um leitor de ecrã deve aceder ao conteúdo de uma visualização antes (ou depois) do conteúdo de outra. As visualizações sem relações antes/depois são percorridas com uma ordem determinada pelo leitor de ecrã.
A ordem de transposição de acessibilidade é distinta da ordem de "foco de entrada" utilizada para a navegação de teclado. A ordem de navegação de teclado é especificada por android:nextFocusDown
, android:nextFocusLeft
, android:nextFocusRight,
e android:nextFocusUp
.
Ao utilizar accessibilityTraversalBefore
e accessibilityTraversalAfter
, considere as seguintes sugestões para evitar a restrição excessiva da ordem de transposição:
- Apenas utilize os atributos em questão em locais onde a ordenação lógica difere da ordenação hierárquica de visualização.
- Cada elemento que um utilizador pode focar com a exploração tátil também deve ser focalizável durante a navegação linear.
- A ordem de transposição deve ser consistente com a navegação linear, independentemente da direção. Por exemplo, um gesto para mover o foco para o "seguinte" elemento imediatamente seguido de um gesto para mover o foco para o elemento "anterior" deve resultar sempre no regresso do foco ao elemento original.
- Os ciclos não devem ser introduzidos ao definir
accessibilityTraversalBefore
eaccessibilityTraversalAfter
, ou os utilizadores podem encontrar situações em que determinados elementos não são acessíveis ao utilizar a navegação linear.
Design
Ao criar uma aplicação, considere como pretende que uma pessoa que utiliza um leitor de ecrã percorra de forma linear as informações apresentadas na interface. Idealmente, a ordem de transposição corresponde à da apresentação visual das informações. No entanto, quando essa correspondência não é possível, pode especificar uma ordem de transposição que transmita a estrutura lógica ou a intenção da interface.
Saiba mais sobre a criação de navegação fácil de seguir.
Testes
Para avaliar manualmente a ordem de transposição de acessibilidade de uma aplicação:
- Ative o TalkBack.
- Abra a aplicação.
- Utilize gestos de navegação lineares para mover o foco de acessibilidade para cada elemento no ecrã.
- Verifique se o TalkBack move o foco pelos elementos no ecrã com uma ordem lógica e fornece uma representação relevante de cada elemento a que acede.
- Verifique se o TalkBack move o foco para trás e para a frente pelos elementos no ecrã de forma consistente, independentemente da direção da navegação.
As ferramentas de teste automáticas do Android podem detetar alguns problemas de ordem de transposição. Considere a utilização do Teste de acessibilidade para Android para testar manualmente a sua aplicação no dispositivo. Para testes automáticos, ative a verificação de acessibilidade no Espresso e no Robolectric.