Ответ 1
UPDATE
Оригинальный ответ довольно старый и был создан до того, как существовали веб-компоненты (хотя они обсуждались с 2011 года). Правила для пользовательских элементов сильно изменились. W3C теперь имеет целый стандарт для пользовательских элементов
Пользовательские элементы предоставляют авторам возможность создавать собственные полнофункциональные элементы DOM. Хотя авторы всегда могли использовать нестандартные элементы в своих документах, причем поведение приложения, добавленное после факта с помощью сценариев или подобных, такие элементы исторически были несоответствующими и не очень функциональными. Определяя пользовательский элемент, авторы могут сообщить парсеру, как правильно построить элемент и как элементы этого класса должны реагировать на изменения.
Другими словами, теперь W3C отлично работает с вами, используя пользовательские элементы (или произвольные имена тегов, когда их вызывает вопрос). Тем не менее, существует множество правил, связанных с ними, и их использование, поэтому вы должны обратиться к связанной документации.
Оригинальный ответ
- Старые браузеры задыхаются от тегов, которые они не распознают. Нет ничего, что гарантировало бы, что ваши пользовательские теги будут работать, как вы ожидаете в любом браузере.
- Для ваших тегов не существует семантического значения, поскольку это значение существует только в согласованных тегах в спецификации. Независимо от того, влияет ли это на SEO, неизвестно, но все, что анализирует HTML, может иметь проблемы, если оно работает с тегом, который он не распознает, включая программы чтения с экрана или веб-скребки.
- Вы не можете получить необходимую помощь в браузере, если ваши теги ненадлежащим образом вложены
- В том же ключе некоторые браузеры могут испортить рендеринг и отличаться друг от друга. Например,
<p><ul></ul></p>
анализируется в Chrome как<p></p><ul></ul>
. Нет никакой гарантии, что ваши теги будут обработаны, так как у них нет согласованной модели контента. - W3C не хочет, чтобы вы это делали.
Авторы не должны использовать элементы, атрибуты или значения атрибутов, которые не разрешены этой спецификацией или другими применимыми спецификациями, поскольку это делает значительно сложнее продление языка в будущем.
Если вам действительно нужно использовать специальные теги для этой цели, вы можете использовать язык шаблонов какого-то типа, например XSLT, и создать таблицу стилей, которая преобразует ее в действительный HTML