Android Lint contentDeskripsi peringatan

130

Saya mendapat peringatan sebagai "[Aksesibilitas] Atribut contentDescription yang hilang pada gambar" untuk imageview. saat menggunakan serat android

Apa artinya?

Santhosh Shettigar
sumber
5
ini adalah peringatan yang menjengkelkan - terutama untuk gambar yang hanya untuk bakat
Seseorang Di suatu tempat
6
Saya mendefinisikan ini di strings.xml: <string name="none"></string> dan kemudian saya menggunakanandroid:contentDescription="@string/none"
Seseorang Di suatu tempat

Jawaban:

170

Atasi peringatan ini dengan mengatur atribut android:contentDescriptionuntuk ImageView saya

android:contentDescription="@string/desc"

Dukungan Android Lint di ADT 16 melempar peringatan ini untuk memastikan bahwa widget gambar menyediakan deskripsi konten.

Ini mendefinisikan teks yang menjelaskan secara singkat konten tampilan. Properti ini digunakan terutama untuk aksesibilitas. Karena beberapa tampilan tidak memiliki representasi tekstual, atribut ini dapat digunakan untuk menyediakannya.

Widget non-tekstual seperti ImageViews dan ImageButtons harus menggunakan atribut contentDescription untuk menentukan deskripsi tekstual dari widget sehingga pembaca layar dan alat aksesibilitas lainnya dapat menggambarkan antarmuka pengguna secara memadai.

Santhosh Shettigar
sumber
4
Anda dapat membaca lebih lanjut tentang hal ini dan mengujinya sendiri dengan mengunjungi: android-developers.blogspot.com/2012/04/… dan developer.android.com/guide/topics/ui/accessibility/…
pengembang android
49

Menonaktifkan peringatan Lint akan membuat Anda kesulitan nantinya. Anda lebih baik hanya menentukan contentDescription untuk semua ImageViews Anda. Jika Anda tidak memerlukan deskripsi, gunakan saja:

android:contentDescription="@null"
Dane White
sumber
38

Pilihan lain adalah untuk menekan peringatan secara individual:

xmlns:tools="http://schemas.android.com/tools"  (usually inserted automatically)
tools:ignore="contentDescription"

Contoh:

<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" />
Gunnar Bernstein
sumber
Menambahkan alat yang salah: abaikan = "contentDescription" ke dalam RelativeLayout menyebabkan kompilasi kesalahan "Atribut hilang dengan awalan namespace Android"
G. Kh.
3
Ini adalah masalah gerhana. Bersihkan proyek Anda. Dan pastikan: xmlns: tools = " schemas.android.com/tools " juga disertakan!
Gunnar Bernstein
24

Saya sarankan Anda untuk menambahkan contentDescription.

android:contentDescription="@string/contentDescriptionXxxx"

tapi, mari kita bersikap realistis. Kebanyakan orang tidak mempertahankan literal untuk aksesibilitas. Namun, dengan sedikit usaha, Anda dapat mengimplementasikan sesuatu untuk membantu orang-orang cacat.

<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>

.

Hal terpenting yang perlu diketahui pengguna buta adalah "Di mana tombol yang harus saya klik untuk melanjutkan"

Gunakan contentDescriptionAction untuk apa pun yang dapat diklik.

gunakan contentDescriptionContent untuk gambar dengan informasi (grafik, textAsImage, ...)

gunakan contentDescriptionUserContent untuk semua konten yang disediakan pengguna.

gunakan contentDescriptionUseless untuk sisanya.

Kristus
sumber
1
Terima kasih! Selalu merupakan pilihan terbaik untuk memberikan deskripsi ini daripada menekan peringatan.
Vinicius Paldês
12

Karena ini hanya peringatan, Anda dapat menekannya. Buka Layout Grafis XML Anda dan lakukan ini:

  1. Klik pada tombol merah sudut kanan atas

    masukkan deskripsi gambar di sini

  2. Pilih "Nonaktifkan Jenis Masalah" (misalnya)

    masukkan deskripsi gambar di sini

Sergio Carneiro
sumber
4
Benar, Anda dapat menekannya, tetapi Anda mungkin harus mengikuti saran dari jawaban yang dipilih, demi pengguna yang bergantung pada alat aksesibilitas yang disediakan Android.
Kyle Falconer
Ini dia !!! Itulah yang saya cari. Jawaban ini dan @Gunnar Bernstein menjawab saya.
IronBlossom
3

Jika Anda ingin menekan peringatan ini dengan cara yang elegan (karena Anda yakin aksesibilitas tidak diperlukan untuk ImageView khusus ini), Anda dapat menggunakan atribut khusus:

android:importantForAccessibility="no"
Alexander Bernat
sumber
2

Buka Gradlefile (aplikasi modul), tambahkan blok kode di bawah ini

android {
    ... 
    lintOptions {
        disable 'ContentDescription'
    }
    ...
}

Tidak ada lagi peringatan! selamat coding

GianhTran
sumber
senang coding, tetapi perhatikan bahwa ini akan merusak aksesibilitas bagi orang-orang yang benar-benar bergantung padanya
saya naga katak
1

Widget non-tekstual memerlukan deskripsi konten dalam beberapa cara untuk menggambarkan gambar secara tekstual sehingga menyaring pembaca untuk dapat mendeskripsikan antarmuka pengguna. Anda dapat mengabaikan properti atau mendefinisikan propertixmlns:tools="http://schemas.android.com/tools"
tools:ignore="contentDescription"
android:contentDescription="your description"

Fokou Franklin
sumber
1

ContentDescriptiondiperlukan untuk aksesibilitas Android. Khusus untuk fitur pembaca layar. Jika Anda tidak mendukung aksesibilitas Android, Anda dapat mengabaikannya dengan pengaturan Lint .

Jadi buat saja lint.xml.

<?xml version="1.0" encoding="UTF-8"?>
<lint>

    <issue id="ContentDescription" severity="ignore" />

</lint>

Dan letakkan di appfolder.

masukkan deskripsi gambar di sini

Yvgen
sumber
1

Untuk elemen grafis yang murni dekoratif, atur masing-masing androidnya: contentDescription XML atribut ke "@null".

Jika aplikasi Anda hanya mendukung perangkat yang menjalankan Android 4.1 (API level 16) atau lebih tinggi, Anda dapat mengatur Android elemen ini: attributeForAccessibility XML atribut menjadi "tidak"

AnhSang
sumber
android: importantForAccessibilty adalah persis apa yang saya cari. Terima kasih!
Hrafn
Ini memang jawaban yang benar dan harus menjadi yang teratas.
lsrom
0

Karena saya memerlukan ImageView untuk menambahkan ikon hanya untuk estetika saya telah menambahkan tools:ignore="ContentDescription"dalam setiap ImageView yang saya miliki di file xml saya.

Saya tidak lagi menerima pesan kesalahan

MikNik
sumber