Os apps para Android são destinados a todos, inclusive pessoas com necessidades de acessibilidade.
Pessoas com problemas de visão, daltonismo, dificuldades auditivas, comprometimento da coordenação motora, deficiências cognitivas e muitas outras deficiências usam dispositivos Android para realizar tarefas no dia a dia. Ao desenvolver apps com a acessibilidade em mente, você melhora a experiência do usuário, especialmente para aqueles que têm essas e outras necessidades de acessibilidade.
Este documento traz orientações para a implementação dos principais elementos de acessibilidade, para que todos possam usar seu app de maneira mais fácil. Para orientações mais detalhadas sobre como tornar seu app mais acessível, visite a página Princípios para melhorar a acessibilidade do app.
Aumentar a visibilidade do texto
Para cada conjunto de texto no seu app, é recomendável que o contraste de cores (diferença no brilho perceptível entre a cor do texto e a cor do plano de fundo atrás do texto) seja superior a um limite específico. O limite exato depende do tamanho da fonte do texto e se o texto aparece em negrito:
- Se o texto for menor que 18 pt ou se estiver em negrito e for menor que 14 pt, a taxa de contraste de cores precisará ser de pelo menos 4,5:1.
- Para qualquer outro texto, a taxa de contraste de cores deve ser de pelo menos 3,0:1.
A imagem a seguir mostra dois exemplos de contraste de cores entre o texto e o plano de fundo:
Para verificar o contraste de cores entre o texto e o plano de fundo no seu app, use um verificador de contraste de cores on-line ou o app Scanner de acessibilidade.
Usar controles grandes e simples
A IU do seu app será mais eficiente se tiver controles mais fáceis de ver e tocar. Recomendamos que cada elemento de IU interativo tenha uma área focalizável, ou tamanho de área de toque, de pelo menos 48 dp ✕ 48 dp. Quanto maior, melhor.
Para que determinado elemento de IU tenha um tamanho de área de toque grande o suficiente, as duas condições a seguir precisam ser atendidas:
- A soma dos valores de
android:paddingLeft
,android:minWidth
eandroid:paddingRight
é maior ou igual a 48 dp. - A soma dos valores de
android:paddingTop
,android:minHeight
eandroid:paddingBottom
é maior ou igual a 48 dp.
Os valores de padding permitem que o tamanho visível de um objeto seja menor que 48 dp ✕ 48 dp e ainda tenha o tamanho recomendado para a área de toque.
O snippet de código a seguir mostra um elemento que tem o tamanho de área de toque recomendado:
<ImageButton ... android:paddingLeft="4dp" android:minWidth="40dp" android:paddingRight="4dp" android:paddingTop="8dp" android:minHeight="32dp" android:paddingBottom="8dp" />
Descrever cada elemento de IU
Recomendamos que cada elemento de IU no seu app inclua uma descrição da
finalidade do elemento. Na maioria dos casos, essa descrição é incluída no
atributo contentDescription
do elemento, como mostrado no snippet de
código a seguir:
<!-- Use string resources for easier localization. --> <!-- The en-US value for the following string is "Inspect". --> <ImageView ... android:contentDescription="@string/inspect" />
Ao adicionar descrições aos elementos de IU do seu app, lembre-se das seguintes práticas recomendadas:
Não inclua o tipo de elemento de IU na descrição do conteúdo. Os leitores de tela anunciam automaticamente a descrição e o tipo do elemento.
Por exemplo, se a seleção de um botão fizer com que uma ação "enviar" ocorra no seu app, a descrição do botão precisa ser
"Submit"
, não"Submit button"
.Cada descrição deve ser única. Dessa forma, quando o usuário do leitor de tela encontrar uma descrição de elemento repetida, ele reconhecerá corretamente que o foco agora está em um elemento que já esteve focalizado anteriormente.
Em particular, cada item em um grupo de visualizações, como
RecyclerView
, precisa ter uma descrição diferente. Cada descrição reflete o conteúdo exclusivo de determinado item, como o nome de uma cidade em uma lista de locais.Caso sua IU inclua elementos gráficos usados apenas para efeito decorativo, defina as descrições relacionadas como
"@null"
. Se aminSdkVersion
do app for16
ou mais recente, você poderá definir os atributosandroid:importantForAccessibility
desses elementos gráficos como"no"
.
Outros recursos
Para saber mais sobre como tornar seu app mais acessível, consulte estes recursos extras: