Otrzymuję ostrzeżenie „[Dostępność] Brak atrybutu contentDescription w obrazie” dla widoku obrazu. podczas korzystania z androida lint
Co to znaczy?
Otrzymuję ostrzeżenie „[Dostępność] Brak atrybutu contentDescription w obrazie” dla widoku obrazu. podczas korzystania z androida lint
Co to znaczy?
<string name="none"></string>
a następnie użyłemandroid:contentDescription="@string/none"
Odpowiedzi:
Rozwiązano to ostrzeżenie, ustawiając atrybut android:contentDescription
dla mojego ImageView
android:contentDescription="@string/desc"
Obsługa Android Lint w ADT 16 generuje to ostrzeżenie, aby upewnić się, że widżety obrazu dostarczają opis contentDescription.
Definiuje tekst, który krótko opisuje zawartość widoku. Ta właściwość jest używana głównie ze względu na dostępność. Ponieważ niektóre widoki nie mają reprezentacji tekstowej, ten atrybut może być użyty do jej dostarczenia.
Widżety nietekstowe, takie jak ImageViews i ImageButtons, powinny używać atrybutu contentDescription, aby określić tekstowy opis widgetu, tak aby czytniki ekranu i inne narzędzia ułatwień dostępu mogły odpowiednio opisywać interfejs użytkownika.
Wyłączenie ostrzeżeń o kłaczkach może później łatwo spowodować problemy. Lepiej jest po prostu określić contentDescription dla wszystkich swoich ImageViews. Jeśli nie potrzebujesz opisu, po prostu użyj:
android:contentDescription="@null"
Inną opcją jest indywidualne wyłączenie ostrzeżenia:
xmlns:tools="http://schemas.android.com/tools" (usually inserted automatically)
tools:ignore="contentDescription"
Przykład:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="contentDescription" >
<ImageView
android:layout_width="50dp"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:padding="5dp"
android:src="@drawable/icon" />
Polecam dodanie contentDescription.
android:contentDescription="@string/contentDescriptionXxxx"
ale bądźmy realistami. Większość ludzi nie uważa dostępności za dosłowne. Mimo to przy niewielkim wysiłku możesz wdrożyć coś, co pomoże osobom niepełnosprawnym.
<string name="contentDescriptionUseless">deco</string>
<string name="contentDescriptionAction">button de action</string>
<string name="contentDescriptionContent">image with data</string>
<string name="contentDescriptionUserContent">image from an other user</string>
.
Najważniejszą rzeczą, jaką powinien wiedzieć niewidomy użytkownik, jest „Gdzie jest przycisk, który muszę kliknąć, aby kontynuować”
Użyj contentDescriptionAction do wszystkiego, co można kliknąć.
użyj contentDescriptionContent dla obrazu z informacjami (graph, textAsImage, ...)
użyj contentDescriptionUserContent dla wszystkich treści dostarczonych przez użytkownika.
do pozostałej części użyj contentDescriptionUseless.
Ponieważ jest to tylko ostrzeżenie, możesz je stłumić. Przejdź do układu graficznego XML i wykonaj następujące czynności:
Kliknij czerwony przycisk w prawym górnym rogu
Wybierz „Wyłącz typ problemu” (na przykład)
Przejdź do Gradle
pliku (aplikacja modułu), dodaj poniższy blok kodu
android {
...
lintOptions {
disable 'ContentDescription'
}
...
}
Żadnego więcej ostrzeżenia! szczęśliwego kodowania
Jeśli chcesz ukryć to ostrzeżenie w elegancki sposób (ponieważ masz pewność, że dostępność nie jest potrzebna dla tego konkretnego ImageView), możesz użyć specjalnego atrybutu:
android:importantForAccessibility="no"
Widżety nietekstowe wymagają opisu zawartości w pewien sposób, aby opisać obraz w formie tekstowej, tak aby czytelnicy ekranów mogli opisać interfejs użytkownika. Możesz zignorować właściwość lub zdefiniować właściwośćxmlns:tools="http://schemas.android.com/tools"
tools:ignore="contentDescription"android:contentDescription="your description"
ContentDescription
potrzebne do ułatwień dostępu w systemie Android. Szczególnie w przypadku funkcji czytnika ekranu. Jeśli nie obsługujesz ułatwień dostępu na Androidzie, możesz to zignorować, korzystając z konfiguracji Lint .
Po prostu stwórz lint.xml
.
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="ContentDescription" severity="ignore" />
</lint>
I umieść go w app
folderze.
W przypadku elementów graficznych, które mają wyłącznie charakter dekoracyjny, ustaw ich odpowiednie atrybuty XML android: contentDescription na „@null”.
Jeśli Twoja aplikacja obsługuje tylko urządzenia z Androidem 4.1 (poziom interfejsu API 16) lub nowszym, możesz zamiast tego ustawić atrybuty android: importantForAccessibility XML dla tych elementów na „no”