HTML文書において、必要に応じて文書とは無関係に注釈(コメント)を入れる事も出来ます。
実際に注釈を記述するには、SGML/XMLにおけるマーク宣言を用います。
SGML/XMLにおけるマーク宣言の書式は以下の通りです。
<!マーク宣言の本体>
注釈はこのマーク宣言本体の直後に、二組の「--」で挟む事で記述します。
すなわち、以下のように記述します。
<!マーク宣言本体--注釈文-->
実際に注釈を記述する場合は、マーク宣言の本体には何も記述しなくても構いません(但し「<!」の直後や「>」の前に空白文字を入れることは出来ません)。
ですから、注釈宣言は以下のように書きます。
<!--注釈文-->
すなわち、注釈宣言とは文法上は「何も宣言していない空のマーク宣言に注釈だけ書いているもの」となります。
<!- … -->(左側の「--」が「-」になっている)」とか極端なのになると「<! … >」としか記述していない場合もありますが、いずれも文法上エラーとなります。一部のブラウザではこのような記述をフォローできますが、全てのブラウザでの正当な処理は保証できません。--」は注釈の開始または終了を示すものです。従って、注釈中に「--」を記述することは出来ません。>」を記述する事は、正しく書いている限り違反にはなりませんが、非常に古いウェブブラウザの中には注釈宣言の解釈があいまいで「>」で注釈が終わったと誤認するものがあるそうです。制作者はそのような代物を見た事はありません(あったとしても大方注釈宣言の記述が不正だったと言うオチだと思います)が、今もこのような記述をすべきでないと主張する者もいるようです。-- 注釈1 -- -- 注釈2 --」などと複数の注釈を連続して入れる事も許されますが、XMLでは「--」を注釈の内部で発生させてはいけないとXMLの仕様書に書かれており、従ってこのような記述は認められません。
>」の前に空白が入る、すなわち「-- >」と言う記述も問題ありませんが、XMLの仕様書には明確に「-->」で終わるものと書かれております。つまり、「>」の直前に空白を入れてはいけません。