В HTML5 элементы могут иметь произвольные метаданные, хранящиеся в атрибутах XML, имена которых начинаются с data-
таких, как <p data-myid="123456">
. Это тоже часть спецификации SVG?
На практике этот метод отлично работает для документов SVG во многих местах. Но я хотел бы знать, входит ли это в официальную спецификацию SVG или нет, потому что формат достаточно молодой, и все еще существует большая несовместимость между браузерами, особенно в мобильных. Поэтому, прежде чем переходить к коду, я хотел бы знать, могу ли я ожидать, что будущие браузеры будут поддерживать это.
Я нашел это сообщение в списке рассылки рабочей группы, в котором говорится, что они «ожидают, что [они] будут» его поддерживать. Это стало официальным?
источник
el.getAttribute('mydata:id')
получить данные, которые вы прикрепили к элементу SVG. (Примечание: если вы используете d3, пространство имен будет удалено по умолчанию, и вы просто сделаете этоel.getAttribute('id')
.)data-*
в SVG недостаточно объявления пространства имен HTML5 в документе ?<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>
:) или пространство имен xhtml, ни одно из них не будет проверяться на validator.w3.org/check (с использованием SVG 1.1), но оба работают в браузере. Затем можно использовать либоgetAttribute
или,getAttributeNS
чтобы получить данные.data-*
Атрибут является частью HTML5. Это не общий атрибут XML.Текущая рекомендация SVG W3C - SVG 1.1 (с 2011-08). Он не позволяет использовать этот атрибут, как вы можете проверить в списке атрибутов .
То же самое и с рабочим проектом SVG 2 (с 2012-08 гг.). Обновление (2015 г.) : похоже, что он предназначен для поддержки
data-*
атрибутов в SVG 2 (в настоящее время все еще рабочий проект).источник
data-*
Атрибуты элементов SVG официально поддерживаются в текущем проекте SVG2. Увидеть:w3c/svgwg
commit1cb4ee9
: добавленыSVGElement.dataset
и разрешеныdata-*
атрибуты для всех элементов SVG.источник
есть более общий механизм.
svg поддерживает
desc
элементы, которые могут содержать произвольный xml из других пространств имен. Свяжите экземпляры этих элементов или дочерних узлов из вашего собственного пространства имен с помощью зависимых идентификаторов или атрибутов refid.это соответствующая часть спецификации (5.4) .
источник
data-
атрибуты?desc
для удобства доступа?aria-labelledby
атрибутов и элементов desc в качестве доступных меток. MDN рекомендует аналогичное использование. Учитывая изобилие результатов Google, лучшие практики для доступного SVG могут стоить отдельного вопроса,desc
элементы ription для произвольных данных, (IMHO) совершенно очевидно из ссылки, что это не было предполагаемой цельюdesc
элемента. Я не говорю, что вам не следует этого делать, просто есть способ лучше.