Di HTML5, elemen dapat memiliki metadata arbitrer yang disimpan dalam atribut XML yang namanya dimulai dengan data-
seperti <p data-myid="123456">
. Apakah ini juga bagian dari spesifikasi SVG?
Dalam praktiknya, teknik ini berfungsi dengan baik untuk dokumen SVG di banyak tempat. Tapi saya ingin tahu apakah itu bagian dari spesifikasi SVG resmi atau tidak, karena formatnya masih cukup muda sehingga masih banyak ketidakcocokan antar browser, terutama di seluler. Jadi sebelum melakukan kode, saya ingin tahu apakah saya dapat mengharapkan browser masa depan berkumpul untuk mendukung ini.
Saya menemukan pesan ini dari milis kelompok kerja yang mengatakan mereka "berharap [mereka] akan" mendukungnya. Apakah ini menjadi resmi?
sumber
el.getAttribute('mydata:id')
untuk mendapatkan data yang Anda lampirkan ke elemen SVG. (Catatan: jika Anda menggunakan d3, namespace akanel.getAttribute('id')
data-*
di SVG?<svg xmlns="http://www.w3.org/2000/svg" xmlns:mydata="http://www.myexample.com/whatever"><text x="10" y="20" mydata:id="something">SVG</text></svg>
:) atau namespace xhtml, keduanya tidak akan divalidasi di validator.w3.org/check (menggunakan SVG 1.1), tetapi keduanya berfungsi di browser. Kemudian dimungkinkan untuk menggunakan salah satugetAttribute
ataugetAttributeNS
untuk mengambil data.The
data-*
atribut adalah bagian dari HTML5. Ini bukan atribut XML umum.Rekomendasi SVG W3C saat ini adalah SVG 1.1 (dari 2011-08). Itu tidak mengizinkan atribut ini, karena Anda dapat memeriksa di daftar atribut .
Kasus yang sama berlaku untuk SVG 2 Working Draft (dari 2012-08). Pembaruan (2015) : Tampaknya itu dimaksudkan untuk mendukung
data-*
atribut di SVG 2 (saat ini masih Konsep Kerja).sumber
data-*
atribut pada elemen SVG secara resmi didukung dalam draf SVG2 saat ini. Lihat:w3c/svgwg
commit1cb4ee9
: MenambahkanSVGElement.dataset
dan mengizinkandata-*
atribut pada semua elemen SVG.sumber
ada mekanisme yang lebih umum.
svg mendukung
desc
elemen yang mungkin berisi xml sembarang dari namespace lain. contoh tautan elemen ini atau node turunan dari namespace Anda sendiri dengan id dependen atau atribut refid.ini adalah bagian yang relevan dari spesifikasi (5.4) .
sumber
data-
atribut?desc
dimaksudkan untuk kepentingan aksesibilitas?aria-labelledby
atribut dan elemen deskripsi sebagai label yang dapat diakses. MDN merekomendasikan penggunaan serupa. mengingat banyaknya hasil Google, praktik terbaik untuk svg yang dapat diakses mungkin layak dipertanyakan,desc
elemen ription untuk data sewenang-wenang, itu (IMHO) cukup jelas dari tautan bahwa ini bukan tujuan yang dimaksudkan daridesc
elemen tersebut. Bukan berarti Anda tidak boleh melakukannya, hanya saja ada cara yang lebih baik.