Otrzymuję ostrzeżenie o [Accessibility] Missing contentDescription atrybut na obrazie w zaćmieniu. To ostrzeżenie jest wyświetlane w wierszu 5 (deklaracja ImageView
) w kodzie XML poniżej.
Nie powoduje to błędu podczas kompilacji i uruchamiania mojej aplikacji. Ale naprawdę chcę wiedzieć, dlaczego otrzymuję to ostrzeżenie.
To jest mój plik 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>
Proszę o pomoc w tej sprawie i dziękuję za przeczytanie.
android:contentDescription
ten atrybutimageview
, tylko sugestia, myślę, że możesz to zignorować, to nie powoduje błędu kompilacji, możesz też sprawdzićhttp://developer.android.com/reference/android/view/View.html#attr_android:contentDescription
Odpowiedzi:
Kliknij ten link, aby uzyskać rozwiązanie: Android Lint contentOpis Ostrzeżenie
Link do wyjaśnienia: Dostępność, wpływ i zasoby programistyczne
Ten przewodnik służy do udostępniania aplikacji: Zwiększanie dostępności aplikacji
źródło
Dodaj
android:contentDescription="@string/description"
(statyczny lub dynamiczny) do ImageView. Nie ignoruj ani nie filtruj wiadomości, ponieważ jest to pomocne dla osób używających alternatywnych metod wprowadzania danych z powodu ich niepełnosprawności (takich jak TalkBack, Tecla Access Shield itp.).źródło
Zaktualizowano:
Jak wskazano w komentarzach, ustawienie opisu na null wskazuje, że obraz ma charakter wyłącznie dekoracyjny i jest rozumiany przez czytniki ekranu takie jak TalkBack.
Stara odpowiedź, nie popieram już tej odpowiedzi:
Dla wszystkich osób, które szukają sposobu uniknięcia ostrzeżenia:
Nie wydaje mi się, żeby
android:contentDescription="@null"
to było najlepsze rozwiązanie.Używam tego
tools:ignore="ContentDescription"
, co ma być.Pamiętaj, aby uwzględnić
xmlns:tools="http://schemas.android.com/tools"
w swoim układzie głównym.źródło
@null
jako zawartości Opis jest sposobem jednoznacznego stwierdzenia, że ten obraz ma charakter wyłącznie dekoracyjny. Zwykłe zignorowanie ostrzeżenia nie jest właściwym rozwiązaniem.@null
informuje TalkBack, że obraz jest dekoracyjny. Nie należy ignorować ostrzeżenia, ponieważ umieszczanie@null
informuje TalkBack, zamiast myśleć, że brakuje go i powinno tam być.Dodaj
do twojego wizerunku. Upewnij się, że masz
xmlns:tools="http://schemas.android.com/tools" .
układ główny.źródło
Ostrzeżenie jest rzeczywiście denerwujące iw wielu (większości!) Przypadkach nie jest wymagana żadna treść Opis różnych dekoracyjnych widoków obrazu. Najbardziej radykalnym sposobem rozwiązania problemu jest po prostu powiadomienie Linta, aby zignorował tę kontrolę. W Eclipse przejdź do „Sprawdzanie błędów Androida / Lint” w Preferencjach, znajdź „contentDescription” (jest w grupie „Dostępność”) i zmień „Istotność:” na Ignoruj.
źródło
contentDescription
grą, która wymaga wzroku, aby móc grać?Jeśli w ogóle cię to nie obchodzi, zrób to:
Chociaż radziłbym przyjętym rozwiązaniom, jest to hack: D
źródło
W przyszłości, w przypadku elementów graficznych o charakterze wyłącznie dekoracyjnym , najlepszym rozwiązaniem jest użycie:
Ma to sens, jeśli minimalna wersja zestawu SDK to co najmniej 16, ponieważ urządzenia z niższymi wersjami zignorują ten atrybut.
Jeśli utknąłeś przy obsłudze starszych wersji, powinieneś użyć (jak inni już zauważyli):
Źródło: https://developer.android.com/guide/topics/ui/accessibility/apps#label-elements
źródło
To ostrzeżenie próbuje poprawić dostępność Twojej aplikacji.
Aby wyłączyć ostrzeżenie o brakującej treści w całym projekcie, możesz dodać to do build.gradle modułu aplikacji
źródło
Daje ostrzeżenie, ponieważ opis obrazu nie jest zdefiniowany.
Możemy rozwiązać to ostrzeżenie, dodając poniższy kod w Strings.xml i activity_main.xml
Dodaj tę linię poniżej w Strings.xml
Dodaj również ten wiersz w Activity_main.xml
Strings.xml
źródło