W HTML5 elementy mogą mieć dowolne metadane przechowywane w atrybutach XML, których nazwy zaczynają się od data-
np <p data-myid="123456">
. Czy to też jest część specyfikacji SVG?
W praktyce ta technika działa dobrze dla dokumentów SVG w wielu miejscach. Ale chciałbym wiedzieć, czy jest to część oficjalnej specyfikacji SVG, czy nie, ponieważ format jest na tyle młody, że nadal istnieje wiele niekompatybilności między przeglądarkami, zwłaszcza w telefonach komórkowych. Dlatego przed przystąpieniem do kodowania chciałbym wiedzieć, czy mogę oczekiwać, że przyszłe przeglądarki będą zgodne z obsługą tego.
Znalazłem tę wiadomość z listy dyskusyjnej grupy roboczej, mówiącą, że „oczekują, że [oni] będą” ją wspierać. Czy to stało się oficjalne?
źródło
el.getAttribute('mydata:id')
aby uzyskać dane dołączone do elementu SVG. (Uwaga: jeśli używasz d3, przestrzeń nazw zostanie domyślnie usunięta, a ty po prostuel.getAttribute('id')
.)data-*
w 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>
nazw xhtml, żadne z nich nie będzie sprawdzane na validator.w3.org/check (używając SVG 1.1), ale oba działają w przeglądarce. To wtedy można użyć jednejgetAttribute
lubgetAttributeNS
pobrać dane.data-*
Atrybut jest częścią HTML5. To nie jest ogólny atrybut XML.Obecna rekomendacja SVG W3C to SVG 1.1 (od 2011-08). Nie zezwala na ten atrybut, ponieważ możesz sprawdzić listę atrybutów .
To samo dotyczy wersji roboczej SVG 2 (od 2012-08). Aktualizacja (2015) : Wygląda na to , że ma obsługiwać
data-*
atrybuty w SVG 2 (obecnie nadal robocza wersja robocza).źródło
data-*
atrybuty elementów SVG są oficjalnie obsługiwane w bieżącej wersji roboczej SVG2. Widzieć:w3c/svgwg
commit1cb4ee9
: DodanoSVGElement.dataset
i dozwolonedata-*
atrybuty we wszystkich elementach SVG.źródło
istnieje bardziej ogólny mechanizm.
svg obsługuje
desc
elementy, które mogą zawierać dowolny plik XML z innych przestrzeni nazw. połącz instancje tych elementów lub węzłów potomnych z własnej przestrzeni nazw za pomocą identyfikatorów zależnych lub atrybutów refid.to jest odpowiednia część specyfikacji (5.4) .
źródło
data-
atrybutów?desc
przeznaczony ze względu na dostępność?aria-labelledby
atrybutów i elementów opisu jako dostępnych etykiet. MDN zaleca podobne zastosowanie. biorąc pod uwagę mnogość wyników Google, najlepsze praktyki dotyczące dostępnych plików SVG mogą być warte własnego pytania,desc
elementów ripowania dla dowolnych danych, (IMHO) jest dość oczywiste z linku, że nie było to zamierzone przeznaczeniedesc
elementu. Nie mówię, że nie powinieneś tego robić, tylko że jest lepszy sposób.