т.е. <img src="world.jpg" data-title="Hello World!<br/>What gives?"/>
Может ли атрибут data- * содержать теги HTML?
Ответ 1
Насколько я понимаю рекомендации, он в основном действителен, но лучше использовать объекты HTML.
Из ссылка HTML 4:
Вы также должны избегать и внутри значений атрибутов, поскольку ссылки на объекты допускаются в значениях атрибутов cdata. Кроме того, вам следует избегать > как > чтобы избежать проблем со старыми пользовательскими агентами, которые неправильно воспринимают это как конец тега при пересечении этого символа в значениях кавычек.
Если не указано иное, атрибуты элементов HTML могут иметь любое строковое значение, включая пустую строку. За исключением случаев, когда явно указано, нет ограничений на то, какой текст может быть указан в таких атрибутах.
Так что лучше всего делать, как уже говорит @tdammers, - это избежать этих символов (цитируя ссылку W3C)
-
&
для представления знака&
. -
<
для представления знака<
. -
>
для представления знака>
. -
"
для представления метки"
.
и декодировать их из своих значений сущности, если они должны использоваться как HTML.
Ответ 2
Предоставление вам услуги в виде текста /html, тогда да, это действительно.
Обратите внимание, что не только можно включить разметку внутри атрибутов, но атрибут srcdoc HTML5 в элементе iframe положительно поощряет его. В проекте HTML5 говорится:
В синтаксисе HTML авторам необходимо только не забудьте использовать U + 0022 ЦЕН. символов ( "), чтобы обернуть атрибут содержимое, а затем, чтобы избежать всех U + 0022 ЦЕНА ЦИТАТЫ (" ) и U + 0026 Символы AMPERSAND (&),....
Обратите внимание, что при подаче с типом содержимого XML (например, application/xhtml + xml) он недопустим или даже корректно сформирован.
Ответ 3
Я бы сказал, да, так как в нем все еще действительный HTML5. Старые браузеры (какие?) Не могут правильно разобрать.
Раздел 3.2.4.1 Атрибуты текущего HTML5-проекта говорят об этом:
Если не указано иное, атрибуты элементов HTML могут иметь любое строковое значение, включая пустую строку. За исключением случаев, когда явно указано, нет ограничений на то, какой текст может быть указан в таких атрибутах.
HTML-теги внутри атрибутов также проверяются на http://html5.validator.nu
Ответ 4
Нет. Это было бы неверно - HTML не позволяет < или > внутренние атрибуты.
<img src="world.jpg" data-title="Hello World!<br/>What gives?"/>
будет действительным, но он отобразит < br/ > буквально, не как символ новой строки.