Немає нового стандарту для коментарів у HTML5. Єдиний вірний синтаксис коментарів досі <!-- -->
. З розділу 8.1.6 W3C HTML5 :
Коментар повинен починатися з чотирьох символьних послідовностей U + 003C МЕНШЕ-ЗНАЧЕННЯ, U + 0021 ЕКСКЛАМАЦІЙНА ОЗНАКА, U + 002D ГІФ-МІНУС, U + 002D ГІФ-МІНУС ( <!--
).
The <!
синтаксичних бере початок в SGML DTD розмітки, яка не є частиною HTML5. У HTML5 вона зарезервована для коментарів, розділів CDATA та декларації DOCTYPE. Отже, чи є ця альтернатива поганою практикою, залежить від того, чи вважаєте ви використання (або ще гірше, залежність від) застарілої розмітки поганою практикою.
Validator.nu називає те, що у вас є "коментар богуса". - це означає, що до нього звертаються як до коментаря, хоча це не є дійсним коментарем. Це, мабуть, для зворотної сумісності з pre-HTML5, заснованим на SGML, і декларації розмітки, які приймають форму <!FOO>
, тому я не називатиму це новим. Причина, до якої вони ставляться як коментарі, полягає в тому, що декларації розмітки SGML були спеціальними деклараціями, які не мали бути надані, але оскільки вони безглузді в HTML5 (за винятком вище), що стосується HTML5 DOM, вони є не що інше, як коментарі .
Наступні кроки в розділі 8.2.4 призводять до цього висновку, який, як видається, дотримується до листа:
8.2.4.1 Стан даних :
Скористайтеся наступним символом введення:
"<" (U + 003C)
Перехід до стану відкритого тегу.
8.2.4.8 Тег відкритого стану :
Скористайтеся наступним символом введення:
"!" (U + 0021)
Перехід у відкритий стан декларації розмітки.
8.2.4.45 Відкритий стан декларації розмітки :
Якщо наступні два символи є символами "-" (U + 002D), споживайте ці два символи, створіть маркер коментаря, дані якого є порожнім рядком, і перейдіть до стану запуску коментаря.
В іншому випадку, якщо наступні сім символів невідчутливі до регістру ASCII для слова "DOCTYPE", тоді споживайте ці символи та перейдіть у стан DOCTYPE.
В іншому випадку, якщо є відрегульований поточний вузол, і він не є елементом у просторі імен HTML, а наступні сім символів - це регістр відповідності регістру рядка "[CDATA [" (п'ять великих літер "CDATA" з U + 005B Символ лівого квадрату до і після), потім споживайте ці символи та перейдіть у стан розділу CDATA.
В іншому випадку це помилка розбору. Перехід до стану фальшивих коментарів. Наступний символ, який вживається, якщо він є, - це перший символ, який буде в коментарі.
Зверніть увагу, що він говорить про перехід до стану запуску коментарів, лише якщо послідовність зустрічаються символів є <!--
, інакше це хибний коментар. Це відображає те, що зазначено у розділі 8.1.6 вище.
8.2.4.44 Повідомлення про богус :
Використовуйте кожен символ до першого і включаючи першого символу ">" (U + 003E) або в кінці файлу (EOF), залежно від того, що відбувається раніше. Випустіть маркер коментаря, дані якого є з'єднанням усіх символів, починаючи з включно з символом, який змусив стан машину перейти у стан неправдивого коментаря, аж до включення символу безпосередньо перед останнім спожитим символом (тобто до символу безпосередньо перед символом U + 003E або EOF), але з будь-якими символами U + 0000 NULL, заміненими символами U + FFFD REPLACEMENT CHARACTER. (Якщо коментар був запущений до кінця файлу (EOF), маркер порожній. Точно так же маркер порожній, якщо він був створений рядком " <!>
".)
У звичайній англійській мові це перетворюється <!div displayed>
на <!--div displayed-->
та <!/div>
в <!--/div-->
точно так, як описано в питанні.
Нарешті, ви, напевно, можете очікувати, що інші парсери, сумісні з HTML5, поводяться так само, як і Chrome.