Атрибуты data-*
действительны в XHTML5 , который является одной из кодировок HTML5.Они недопустимы в XHTML 1.0, но это, вероятно, не большая проблема.
Скорее всего, если вы предоставляете свой контент в реальных браузерах, они анализируют его как HTML, а не XHTML.Если вы используете свой контент как text/html
, браузеры будут анализировать его как HTML.Если вы используете его как application/xhtml+xml
, IE 6 отобразит его как необработанный XML, а не как HTML, и в других браузерах, если вы допустите одну маленькую ошибку, они прекратят его анализ и отобразят уродливое сообщение об ошибке, а не просто продолжатпри попытке разобрать остальную часть контента.Если вы используете его как text/html
, тогда браузеры будут анализировать его как text/html
, поэтому не имеет значения, является ли он действительным XHTML или нет.
Даже если это недопустимый XHTML 1.0, он все еще исправени веб-браузеры не проверяют пользовательские агенты, поэтому не имеет значения, является ли контент действительным или нет.Весь смысл атрибутов data-*
заключается в предоставлении приватных данных для скриптов на странице.Так как атрибуты data-*
не мешают правильному оформлению документа, браузер все равно будет анализировать документ очень хорошо, и ваши скрипты, таким образом, будут иметь доступ к данным, независимо от того, являются ли данные действительными XHTML.
Результат: эти атрибуты действительны в HTML5 и XHTML5.Они недопустимы в XHTML 1.0, но это не имеет значения, поскольку эти атрибуты будут работать во всех основных браузерах, чтобы предоставлять личные данные для сценариев на вашей странице.