HTML5: Почему бы не использовать собственные имена тегов?

Насколько я знаю, вполне законно составлять имена тегов в HTML5, и они работают как обычно с стилями и вложением CSS и всеми.

Конечно, мои произвольные имена тегов не будут иметь никакого значения для браузера, который их не понимает, но он очень далеко продвигает мой код, что упрощает его поддержку.

Так почему я НЕ должен использовать произвольные имена тегов на моих страницах? Будет ли это влиять на SEO? Это что-нибудь сломает?

ВАЖНАЯ ИНФОРМАЦИЯ: Старые браузеры НЕ задыхаются от неподдерживаемых тегов при использовании http://ejohn.org/blog/html5-shiv/

Ответ 1

UPDATE

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

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

Другими словами, теперь W3C отлично работает с вами, используя пользовательские элементы (или произвольные имена тегов, когда их вызывает вопрос). Тем не менее, существует множество правил, связанных с ними, и их использование, поэтому вы должны обратиться к связанной документации.


Оригинальный ответ

  • Старые браузеры задыхаются от тегов, которые они не распознают. Нет ничего, что гарантировало бы, что ваши пользовательские теги будут работать, как вы ожидаете в любом браузере.
  • Для ваших тегов не существует семантического значения, поскольку это значение существует только в согласованных тегах в спецификации. Независимо от того, влияет ли это на SEO, неизвестно, но все, что анализирует HTML, может иметь проблемы, если оно работает с тегом, который он не распознает, включая программы чтения с экрана или веб-скребки.
  • Вы не можете получить необходимую помощь в браузере, если ваши теги ненадлежащим образом вложены
  • В том же ключе некоторые браузеры могут испортить рендеринг и отличаться друг от друга. Например, <p><ul></ul></p> анализируется в Chrome как <p></p><ul></ul>. Нет никакой гарантии, что ваши теги будут обработаны, так как у них нет согласованной модели контента.
  • W3C не хочет, чтобы вы это делали.

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

Если вам действительно нужно использовать специальные теги для этой цели, вы можете использовать язык шаблонов какого-то типа, например XSLT, и создать таблицу стилей, которая преобразует ее в действительный HTML