Em HTML5, os elementos podem ter metadados arbitrária armazenadas em atributos XML cujos nomes começam com data-
tais como <p data-myid="123456">
. Isso também faz parte da especificação SVG?
Na prática, essa técnica funciona bem para documentos SVG em muitos lugares. Mas gostaria de saber se faz parte da especificação oficial do SVG ou não, pois o formato é jovem o suficiente para que ainda haja muita incompatibilidade entre os navegadores, principalmente no celular. Portanto, antes de me comprometer com o código, gostaria de saber se posso esperar que os navegadores futuros convirjam para oferecer suporte a isso.
Eu encontrei esta mensagem da lista de e-mails do grupo de trabalho dizendo que eles "esperam [que]" apoiem. Isso se tornou oficial?
fonte
el.getAttribute('mydata:id')
obter os dados que você anexou ao elemento SVG. (Observação: se você estiver usando d3, o namespace será removido por padrão e você apenasel.getAttribute('id')
.)data-*
em 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>
:) ou o namespace xhtml, nenhum será validado em validator.w3.org/check (usando SVG 1.1), mas ambos funcionam no navegador. É então possível usargetAttribute
ougetAttributeNS
para buscar os dados.O
data-*
atributo faz parte do HTML5. Não é um atributo XML genérico.A recomendação atual do SVG W3C é SVG 1.1 (de 2011-08). Não permite este atributo, como você pode verificar na lista de atributos .
O mesmo é o caso para o SVG 2 Working Draft (de 2012-08). Update (2015) : Parece que se destina a suportar
data-*
atributos no SVG 2 (atualmente ainda um Working Draft).fonte
data-*
atributos em elementos SVG são oficialmente suportados no rascunho atual do SVG2. Vejo:w3c/svgwg
commit1cb4ee9
: Atributos adicionadosSVGElement.dataset
e permitidosdata-*
em todos os elementos SVG.fonte
existe um mecanismo mais geral.
O svg suporta
desc
elementos que podem conter xml arbitrário de outros namespaces. vincule instâncias desses elementos ou nós filhos de seu próprio namespace por ids dependentes ou atributos refid.esta é a parte relevante da especificação (5.4) .
fonte
data-
atributos?desc
por causa da acessibilidade?aria-labelledby
atributos e elementos desc como rótulos acessíveis. O MDN recomenda um uso semelhante. dada a abundância de resultados do Google, as práticas recomendadas para svg acessível podem valer a pena questionar,desc
elementos de ription para dados arbitrários, é (IMHO) bastante óbvio pelo link que esse não era o propósito pretendido dodesc
elemento. Não estou dizendo que você não deveria fazer isso, apenas que existe uma maneira melhor.