Ini yang belum pernah saya tangani sebelumnya. Saya perlu menggunakan tag alt pada semua gambar di situs termasuk yang digunakan oleh atribut gambar latar belakang CSS.
Sejauh yang saya tahu, tidak ada properti CSS seperti ini, jadi apa cara terbaik untuk melakukannya?
title
atribut ke elemen dengan gambar latar belakang, tapi itu tidak masuk akal untuk semua elemen. Mengapa Anda perlu melakukan ini? Apakah Anda mencoba menangani gambar yang tidak dimuat, atau Anda mencoba memiliki tooltip yang berfungsi?<div>
meskipun tidak memvalidasi Anda masih mendapatkan keyterm di dalamnya dan google menyukainya.Jawaban:
Gambar latar belakang pasti bisa menyajikan data! Faktanya, ini sering kali direkomendasikan saat menyajikan ikon visual lebih ringkas dan ramah pengguna daripada daftar uraian teks yang setara. Setiap penggunaan gambar sprite bisa mendapatkan keuntungan dari pendekatan ini.
Ikon listingan hotel biasanya menampilkan fasilitas. Bayangkan sebuah halaman yang mencantumkan 50 hotel dan setiap hotel memiliki 10 fasilitas. CSS Sprite akan sempurna untuk hal semacam ini - pengalaman pengguna yang lebih baik karena lebih cepat. Tapi bagaimana Anda menerapkan tag ALT untuk gambar-gambar ini? Contoh situs .
Jawabannya adalah mereka tidak menggunakan
alt
teks sama sekali, melainkan menggunakantitle
atribut pada div yang memuatnya.HTML
CSS
Menurut W3C (lihat tautan di atas), atribut judul memiliki tujuan yang hampir sama dengan atribut alt
Judul
alt
sumber
Dalam artikel Jaringan Pengembang Yahoo ( tautan yang diarsipkan ) ini disarankan bahwa jika Anda benar - benar harus menggunakan gambar latar belakang sebagai ganti elemen img dan atribut alt, gunakan atribut ARIA sebagai berikut:
Kasus penggunaan dalam artikel menjelaskan bagaimana Flickr memilih untuk menggunakan gambar latar belakang karena kinerjanya sangat meningkat pada perangkat seluler.
sumber
Saya pikir Anda harus membaca posting ini oleh Christian Heilmann. Ia menjelaskan bahwa gambar latar HANYA untuk estetika dan tidak boleh digunakan untuk menyajikan data, dan oleh karena itu dikecualikan dari aturan bahwa setiap gambar harus memiliki teks alternatif.
Kutipan (penekanan saya):
Aku setuju dengannya.
sumber
background-size
danbackground-position
gaya dengan<img>
tag biasa ? Ini membuat pemosisian gambar latar belakang Anda cukup fleksibel, misalnya, di ruang pahlawan yang responsif, di mana gambar tersebut kemungkinan besar berisi pesan yang sangat penting.Seperti yang disebutkan dalam jawaban lain, tidak ada atribut alt (didukung) untuk tag div hanya untuk tag img.
Pertanyaan sebenarnya adalah mengapa Anda perlu menambahkan atribut alt ke semua gambar latar belakang untuk situs tersebut? Berdasarkan jawaban ini, ini akan membantu Anda menentukan rute mana yang harus diambil dalam pendekatan Anda.
Visual / Textual: Jika Anda hanya mencoba menambahkan textual fallback untuk pengguna jika gambar gagal dimuat, cukup gunakan atribut title [judul]. Sebagian besar browser akan memberikan tip alat visual (kotak pesan) saat pengguna mengarahkan kursor ke gambar, dan jika gambar tidak dimuat karena alasan apa pun, ia berperilaku sama seperti atribut alt yang menampilkan teks saat gambar gagal. Teknik ini masih memungkinkan situs untuk mempercepat waktu muat dengan mengatur gambar ke latar belakang.
Pembaca Layar: Opsi di tengah jalan, ini bervariasi karena secara teknis menyimpan gambar Anda sebagai latar belakang dan menggunakan pendekatan atribut judul harus berfungsi seperti yang diisyaratkan di atas, "Agen pengguna audio mungkin mengucapkan informasi judul dalam konteks yang serupa." Namun ini tidak dijamin akan berhasil di semua kasus, termasuk beberapa pembaca mungkin mengabaikan semuanya secara bersamaan. Jika Anda akhirnya memilih pendekatan ini, Anda juga dapat mencoba menambahkan label aria untuk membantu memastikan pembaca layar mengambilnya.
SEO / Mesin Pencari: Ini yang terbesar, jika Anda seperti saya, Anda menambahkan gambar latar belakang, semuanya bagus. Kemudian berbulan-bulan kemudian pelanggan (atau mungkin diri Anda sendiri) menyadari bahwa Anda kehilangan beberapa emas SEO utama dengan tidak memiliki alt untuk gambar Anda. Perlu diingat, atribut judul tidak memiliki bobot apa pun di mesin pencari , dari penelitian saya dan seperti yang disebutkan dalam artikel di sini: https://www.searchenginejournal.com/how-to-use-link-title-attribute-correctly /. Jadi jika Anda membidik SEO, maka Anda harus memiliki tag img dengan atribut alt. Salah satu pendekatan yang mungkin adalah memuat gambar aktual yang sangat kecil di situs dengan atribut alt, dengan cara ini Anda mendapatkan semua SEO dan tidak perlu menyesuaikan kembali CSS yang ada. Namun hal ini dapat menyebabkan waktu muat tambahan tergantung pada ukurannya dan google memang melihat jalur gambar saat mengindeks. Singkatnya jika Anda mengikuti rute ini, cukup terima apa yang harus dilakukan dan sertakan gambar sebenarnya daripada menggunakan latar belakang.
sumber
Keyakinan umum adalah bahwa Anda tidak boleh menggunakan gambar latar belakang untuk hal-hal dengan nilai semantik yang bermakna sehingga tidak ada cara yang tepat untuk menyimpan data alt dengan gambar tersebut. Pertanyaan pentingnya adalah apa yang akan Anda lakukan dengan data alt itu? Apakah Anda ingin menampilkannya jika gambar tidak dimuat? Apakah Anda memerlukannya untuk beberapa fungsi programatik di halaman? Anda dapat menyimpan data secara sewenang-wenang menggunakan properti css yang dibuat yang tidak memiliki arti (mungkin menyebabkan kesalahan?) ATAU dengan menambahkan gambar tersembunyi yang memiliki gambar dan tag alt, dan kemudian ketika Anda membutuhkan gambar latar belakang alt Anda dapat membandingkan gambar tersebut jalur lalu tangani datanya sesuai keinginan Anda menggunakan beberapa skrip khusus untuk mensimulasikan apa yang Anda butuhkan. Tidak ada cara yang saya tahu untuk membuat browser secara otomatis menangani semacam atribut alt untuk gambar latar belakang.
sumber
Cara klasik untuk mencapai ini adalah dengan meletakkan teks ke dalam div dan menggunakan teknik penggantian gambar.
dengan gambar latar belakang menjadi kelas tempat Anda menetapkan gambar latar belakang dan ir bisa menjadi kelas pengganti gambar HTML5boilerplates, di bawah ini:
sumber
Artikel dari W3C ini memberi tahu Anda apa yang menurut mereka harus Anda lakukan https://www.w3.org/WAI/GL/wiki/ARIATechnique_usingImgRole_with_aria-label_forCSS-backgroundImage
dan memiliki contoh di sini http://mars.dequecloud.com/demo/ImgRole.htm
di antaranya
Namun, jika seperti pada contoh di atas, elemen yang berisi gambar latar belakang hanyalah sebuah wadah kosong, saya pribadi lebih suka meletakkan teks di sana dan menyembunyikannya menggunakan CSS; tepat di tempat Anda menampilkan gambar:
sumber
Inilah solusi saya untuk jenis masalah ini:
Buat kelas baru dalam CSS dan posisi di luar layar. Kemudian letakkan teks alt Anda dalam HTML tepat sebelum properti yang memanggil gambar latar Anda. Dapat tag apapun,
H1
,H2
,p
, dllCSS
HTML
sumber
Tidak jelas bagi saya apa yang Anda inginkan.
Jika Anda ingin properti CSS merender nilai atribut alt, mungkin Anda sedang mencari fungsi atribut CSS misalnya:
Jika Anda ingin meletakkan atribut alt pada gambar background, maka ... itu aneh karena atribut alt adalah atribut HTML sedangkan gambar latar belakang adalah properti CSS. Jika Anda ingin menggunakan atribut alt HTML maka saya pikir Anda memerlukan elemen HTML yang sesuai untuk memasukkannya.
Mengapa Anda "perlu menggunakan tag alt pada gambar latar belakang": apakah ini untuk alasan semantik atau untuk beberapa alasan efek visual (dan jika demikian, lalu apa efek atau alasan apa)?
sumber
Anda dapat melakukannya dengan meletakkan
alt
tag di tempatdiv
gambar Anda akan muncul.Contoh:
sumber
alt
atribut ke<div>
alt
atribut kediv
!!