HTML利用者代理は利用者がHTMLで記述された素材へ干渉できるようにしてくれます。HTML利用者代理は、まず最低限でも、利用者が第1水準HTML文書の内容を観察し、巡回できるようにしてやることが必要です。次に、HTML文書で表わされた形式の特徴すべてを維持でき、同時にIMG要素により引っぱってくる素材を表示できるようにすることが条件です(これらは利用者の要求に従って無視するようにしてもかまいません)。第2水準HTML利用者代理は、さらに書式入力と送信を実行できることが条件になります。
選択変数は以下のように規定されます:
`text/html'の内容種別によるメッセージ実体はHTML文書として表わされ、文章実体を構成します。文字コード変数は(明示されていなくても)文字コード体系を規定します。文章実体は、この文字コード体系で規定された文字とメッセージ実体の本文のデータから成ります。
HTMLのさまざまなバージョン間での実験や相互運用(interoperability)を容易にするために、HTML利用者代理はそれらをHTML2.0に引き下げることによってHTML2.0のスーパーセットを支持します。開始タグや終了タグの中での表記で、種別が宣言されていないものは何もなかったものとして提示されます。宣言されていない属性も同様に扱われます。不明な属性のすべての仕様(すなわち何であれ属性とその値)は無視するのが条件です。一方、宣言されていない実体はデータ文字として扱われることが条件になります。
このようなエラーを利用者に知らせる機能をつけておくとよいでしょう。
この約束事には拘束力がないことを情報提供者は注意してください。この仕様から外れた表記である以上は、規定外のふるまいをする可能性があります。
SGMLでは、文章実体は記録の組み合わせ(a sequence of records)であり、それぞれ記録開始記号で始まり記録終了記号(文字コード番号10と13に対応)で終わると定めています([SGML]のセクション7.6.1,"Record Boundaries")。
[MIME]では、種別`text/*'の本体は行の組み合わせであり、CRLF、つまり文字コード番号13と10で区切られると定めています。
実際には、HTML文書にはしばしば元の文書の慣習に依存した行末の表現が表わされ伝えられています。多くの場合、この表現はCRのみ、LFのみ、あるいはCRとLFの組み合わせで構成されます。そのため、データを解析する際に、文章実体にある記録開始および終了の記号を落としてしまうことがあります。
他に解釈の余地がない以上、失われた記録開始および終了の記号をHTML利用者代理があてはめるようにすることを推奨します。
HTML利用者代理は、割付け済み文章を除き、すべての行末を空白文字として扱うようにするのが条件です。割付け済み文章では、一般的な三つの改行表現を新たな行の開始として扱うようにすることが条件です。