Поддерживает ли SVG-документы пользовательские атрибуты данных?

В HTML5 элементы могут иметь произвольные метаданные, хранящиеся в атрибутах XML, имена которых начинаются с data-, таких как <p data-myid="123456">. Является ли эта часть спецификации SVG?

На практике этот метод отлично работает для документов SVG во многих местах. Но я хотел бы знать, является ли это частью официальной спецификации SVG или нет, потому что формат достаточно молод, что по-прежнему существует много несовместимости между браузерами, особенно на мобильных устройствах. Поэтому, прежде чем совершать код, я бы хотел знать, могу ли я ожидать, что будущие браузеры будут сходиться, поддерживая это.

Я нашел это сообщение из списка рассылки рабочей группы, в котором говорится, что они "ожидают [они] будут" поддерживать" это. Это стало официальным?

Ответ 1

В то время как другие ответы технически правильны, они опускают тот факт, что SVG предоставляет альтернативный механизм для data-*. SVG позволяет включать любой атрибут и тег, если он не конфликтует с существующими (другими словами: вы должны использовать пространства имен),

Чтобы использовать этот (эквивалентный) механизм:

  • используйте mydata:id вместо data-myid, например: <p mydata:id="123456">
  • убедитесь, что вы определяете пространство имен в теге открытия SVG, например: <svg xmlns:mydata="http://www.myexample.com/whatever">

Ответ 2

Атрибут data-* является частью HTML5. Это не общий атрибут XML.

Текущая Рекомендация SVG W3C SVG 1.1 (с 2011-08 гг.). Он не позволяет этот атрибут, так как вы можете проверить список атрибутов.

тот же применим для Рабочего проекта SVG 2 (с 2012-08 гг.). Обновление (2015). Кажется, что предназначено для поддержки атрибутов data-* в SVG 2 (в настоящее время еще рабочий проект).

Ответ 3

data-* атрибуты элементов SVG официально поддерживаются в текущем проекте SVG2. См:

Ответ 4

существует более общий механизм.

svg поддерживает desc элементы, которые могут содержать произвольный xml из других пространств имен. связывать экземпляры этих элементов или дочерних узлов из собственного пространства имен с помощью зависимых идентификаторов или атрибутов refid.

это важная часть спецификации (5.4).