html要素(HTML document root element)は DOCTYPE宣言(文章型宣言)の後に続けて HTML(XHTML)で記述された文書であることを定義します。html要素はルート要素と呼ばれる最大の親要素で文書全体の内容を包含します。必ず head要素と body要素を一つずつ記述しなければいけません。ただし、フレーム設定型DTD(Frameset)(HTML 4.01, XHTML1.0)では body要素の代わりに frameset要素を記述します。
lang属性(xml:lang属性)は基本的に html要素に指定します。ルート要素に lang属性(xml:lang属性)を指定することで、文書内の全ての要素に対して特定の言語が指定されたことになります。異なる言語を利用する要素に対しては個別に lang属性(xml:lang属性)を指定すると良いでしょう。XHTML1.0 には id属性がありますが、HTML4.01 と XHTML1.1 にはありません。
XML ネームスペース(名前空間)を指定します。XHTML文書では1つの文書内に他に定義されたマークアップ言語を複数使用することができます。たとえば、XMLアプリケーションに数学用マークアップ言語の MathML があります。XHTML と MathML の2つのマークアップ言語を同一文書内で使用したい場合に、言語違いの要素名が重複してしまうことがあるかもしれません。そこでネームスペースを指定することで、複数の言語で同じ要素名が衝突しても、各要素に対して xmlns属性で「ここは XHTML の要素」「ここは MathML の要素」と各言語の仕様で定義されているネームスペースを明示しておくことで混乱を避けることができます。このため XHTML文書では html要素にベースとなる XHTML用のネームスペースを指定しなければならないことになっています。XHTML1.0 及び 1.1 に与えられているネームスペースは次の通りです。
xmlns="http://www.w3.org/1999/xhtml"
その文書がどのバージョンに属するかを明示するものです。これまでのバージョンとの区別をつけ、混乱を避けるための情報となります。文書型定義(DTD)には、このバージョンはどのような要素や属性、属性値を指定することができるということが定義されており、制作者は宣言したバージョン情報に応じて、その定義されている仕様(ルール)に沿った文書を作成しなければいけません。version属性は HTML4.01 と XHTML1.1 にはありますが、XHTML1.0 にはありません。version属性の値には、各文書型定義(DTD)のフォーマル公開識別子の部分を指定します。
version="-//W3C//DTD HTML 4.01//EN"
version="-//W3C//DTD HTML 4.01 Transitional//EN"
version="-//W3C//DTD HTML 4.01 Frameset//EN"
version="-//W3C//DTD XHTML 1.1//EN"
本来バージョンの明示は、html要素よりも先に DOCTYPE宣言(文章型宣言)によって定義するため version属性は非推奨に定められており、使う必要はありません。