Classificações de conteúdo

Os usuários dos serviços de acessibilidade, como leitores de tela, precisam de marcadores de conteúdo para entender o significado dos elementos de uma interface.

Em alguns casos, como quando as informações são transmitidas graficamente em um elemento, os marcadores de conteúdo podem fornecer um texto descritivo com o significado ou ação associados ao elemento.

Se os elementos em uma interface não têm marcadores de conteúdo, alguns usuários poderão ter dificuldade para entender as informações apresentadas a eles ou realizar ações na interface.

Implementação

View

Quando certos tipos de Views são usados em uma interface, eles precisam ter marcadores de conteúdo que descrevam a finalidade ou ação associada a essa View.

Como fornecer marcadores de conteúdo

android:contentDescription

Ao usar ImageView, ImageButton, CheckBox ou outra View que transmita informações graficamente, adicione um atributo android:contentDescription para fornecer um marcador de conteúdo para essa View.

Em alguns casos, um marcador de conteúdo depende das informações disponíveis apenas no tempo de execução, ou o significado de uma View pode mudar com o tempo. Por exemplo, um botão "Reproduzir" pode mudar para um botão "Pausar" durante a reprodução de músicas. Nesses casos, use View#setContentDescription(CharSequence contentDescription) para atualizar o marcador de conteúdo no momento apropriado.

Normalmente, quando um serviço de acessibilidade descreve um ViewGroup, ele combina marcadores de conteúdo das Views filhas. Para modificar esse comportamento e indicar que você quer fornecer sua própria descrição para esse item e para as Views filhas não focalizáveis, defina contentDescription em ViewGroup. Talvez seja necessário incluir marcadores de conteúdo de Views filhas em uma contentDescription definida em um ViewGroup.

android:hint

No caso de EditTexts ou TextViews editáveis, use um atributo android:hint para indicar a finalidade do campo de texto. Uma android:contentDescription não precisa ser usada como um marcador de conteúdo para Views editáveis.

android:labelFor

Use um atributo android:labelFor para indicar que uma View deve atuar como marcador de conteúdo de outra View.

Quando os marcadores de conteúdo não são necessários

Em certos casos, marcadores de conteúdo não precisam ser especificamente fornecidos:

  • O texto renderizado em TextView (ou subclasses) é automaticamente fornecido para serviços de acessibilidade. Geralmente, marcadores de conteúdo extras são desnecessários.
  • Imagens decorativas ou que não transmitem informações graficamente significativas não precisam de marcadores de conteúdo. Nesses casos, defina um atributo android:contentDescription de "@null" ou um atributo android:importantForAccessibility de "no".

Saiba mais sobre a implementação de marcadores de conteúdo no Treinamento para desenvolvedor Android e nos Guias de API.

Compose

Quando certos tipos de combináveis são usados em uma interface, eles precisam ter marcadores de conteúdo que descrevam a finalidade ou ação associada.

Como fornecer marcadores de conteúdo

Descrições de conteúdo

Se você quiser fornecer um marcador de conteúdo para Image, Icon ou outro combinável de nível inferior que transmita informações gráficas, defina a descrição do conteúdo.

  • Um marcador de conteúdo pode depender das informações do tempo de execução, e o significado do combinável pode mudar. Por exemplo, um botão "Reproduzir" pode mudar para "Pausar" durante a reprodução de músicas.
  • Em alguns casos, você pode mesclar os elementos em um único focalizável que combine os marcadores de conteúdo dos descendentes. Saiba como mesclar elementos.

Parâmetro "label"

Alguns combináveis, como TextField, aceitam um parâmetro label opcional. Quando o marcador é definido, o elemento exibe o combinável transmitido para label. Os serviços de acessibilidade podem ser usados para descrever o combinável.

Quando os marcadores de conteúdo não são necessários

Em certos casos, marcadores de conteúdo não precisam ser adicionados.

  • O texto renderizado em Text ou em outros combináveis que contenham Text é fornecido automaticamente aos serviços de acessibilidade.
  • Imagens decorativas ou que não transmitem informações graficamente significativas.
    • Nesses casos, defina o parâmetro contentDescription ou a propriedade Modifier.semantics#contentDescription como null ou chame Modifier#clearAndSetSemantics.

Design

Ao projetar uma interface do usuário, pense cuidadosamente como o conteúdo representado graficamente precisa ser marcado para os usuários de serviços de acessibilidade. Os marcadores de conteúdo precisam seguir estes princípios:

  • Ser conciso e descrever com clareza a ação ou o significado associado a um elemento.
  • Não incluir o tipo ou estado de um elemento no marcador de conteúdo dele.
  • Se o elemento for associado a uma ação, descrever a ação, e não a representação gráfica.
  • Não instruir o usuário sobre como interagir especificamente com o elemento.

Saiba mais nas Diretrizes de escrita de acessibilidade do Material Design.

Testes

Para verificar manualmente se a interface do usuário de um app não está sem os marcadores de conteúdo necessários, siga estas etapas

  1. Ative o TalkBack.
  2. Abra o app.
  3. Use gestos de navegação linear para mover o foco da acessibilidade para cada elemento na tela.
  4. Quando o TalkBack move o foco para algum elemento, mas não apresenta uma representação significativa dele nem uma mensagem "não marcada", é porque esse elemento pode estar sem um marcador de conteúdo.

As ferramentas de teste automatizadas do Android podem detectar a falta de marcadores de conteúdo. Recomendamos que você use o Scanner de acessibilidade para Android se quiser fazer o teste manual do seu app no dispositivo. No caso de testes automatizados, ative a verificação de acessibilidade no Espresso e no Robolectric.

Pesquisa
Limpar pesquisa
Fechar pesquisa
Menu principal
11937618998976368340
true
Pesquisar na Central de Ajuda
true
true
true
true
true
717068
false
false