Recebo um aviso sobre o atributo [Accessibility] ausente contentDescription na imagem no eclipse. Este aviso é exibido na linha 5 (declarar ImageView
) no código XML abaixo.
Isso não comete nenhum erro ao criar e executar meu aplicativo. Mas eu realmente quero saber por que recebo esse aviso.
Este é o meu arquivo XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/contact_entry_image"
android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/contact_entry_text"
android:text=""
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
/>
</LinearLayout>
Por favor, ajude-me sobre isso e obrigado pela sua leitura.
android:contentDescription
esse atributo emimageview
, apenas uma sugestão, eu acho que você pode ignorar isso, ele não fazer o erro de compilação, você também pode conferirhttp://developer.android.com/reference/android/view/View.html#attr_android:contentDescription
Respostas:
Siga este link para obter a solução: Conteúdo do Android Lint
Este link para explicação: Acessibilidade, seu impacto e recursos de desenvolvimento
Este guia é para tornar seu aplicativo acessível: Como tornar os aplicativos mais acessíveis
fonte
Adicione
android:contentDescription="@string/description"
(estático ou dinâmico) ao seu ImageView. Por favor, não ignore nem filtre a mensagem, pois é útil para pessoas que usam métodos de entrada alternativos devido à sua deficiência (como o TalkBack, o Tecla Access Shield, etc.).fonte
Atualizada:
Conforme indicado nos comentários, definir a descrição como nulo indica que a imagem é puramente decorativa e é entendida como a de leitores de tela como o TalkBack.
Resposta antiga, não apóio mais esta resposta:
Para todas as pessoas que procuram como evitar o aviso:
Eu não acho que
android:contentDescription="@null"
é a melhor solução.Estou usando
tools:ignore="ContentDescription"
isso é o que deveria ser.Certifique-se de incluir
xmlns:tools="http://schemas.android.com/tools"
no seu layout raiz.fonte
@null
como contentDescription é uma maneira de dizer explicitamente que esta imagem é puramente decorativa. Simplesmente ignorar o aviso não é a solução correta.@null
informa ao TalkBack que a imagem é decorativa. Você não deve ignorar o aviso, pois@null
informa o TalkBack em vez de fazê-lo pensar que está faltando e deve estar lá.Adicionar
à sua imagem. Verifique se você possui
xmlns:tools="http://schemas.android.com/tools" .
seu layout raiz.fonte
O aviso é realmente irritante e, em muitos (na maioria dos casos), nenhum contentDescription é necessário para vários ImageViews decorativos. A maneira mais radical de resolver o problema é dizer ao Lint para ignorar essa verificação. No Eclipse, acesse "Android / Lint Error Checking" em Preferences, localize "contentDescription" (está no grupo "Accessibility") e altere "Severity:" para Ignore.
fonte
contentDescription
em um jogo que requer visão para poder jogar?Se você não se importa, faça o seguinte:
Embora eu aconselhe as soluções aceitas, este é um truque: D
fonte
No futuro, para elementos gráficos puramente decorativos , a melhor solução é usar:
Isso faz sentido se sua versão mínima do SDK for pelo menos 16, pois os dispositivos que executam versões inferiores ignorarão esse atributo.
Se você não consegue suportar versões mais antigas, deve usar (como outros já apontaram):
Fonte: https://developer.android.com/guide/topics/ui/accessibility/apps#label-elements
fonte
Este aviso tenta melhorar a acessibilidade do seu aplicativo.
Para desativar o aviso de descrição de conteúdo ausente em todo o projeto, você pode adicioná-lo ao seu módulo de aplicativo build.gradle
fonte
Ele está dando o aviso porque a descrição da imagem não está definida.
Podemos resolver esse aviso adicionando este código abaixo em Strings.xml e activity_main.xml
Adicione esta linha abaixo em Strings.xml
Adicione também esta linha em activity_main.xml
Strings.xml
fonte