HTMLファイルの先頭に書く <!DOCTYPE html> の役割として最も正確なものはどれですか?
解説
正解は「HTML5であることをブラウザに伝え、標準準拠モードでレンダリングさせるための宣言」です。 タグではなく文書型宣言(DOCTYPE declaration)と呼ばれる特殊な指示で、ブラウザに対して「この文書はHTML5として解釈してね」と伝える役割を持ちます。サーバーに何かを通知するものではなく(選択肢2が誤り)、HTML要素の開始タグでもなく(選択肢3が誤り、ページを囲むのは <html> タグ)、文字コードとも無関係です(選択肢4が誤り、それは <meta charset='UTF-8'> の役割)。DOCTYPEを書かないと何が起きるのかDOCTYPE宣言の本当の重要性は、ブラウザのレンダリングモードを切り替える点にあります。ブラウザには大きく分けて2つのモードがあります。標準準拠モード(Standards Mode): 現代のWeb標準に従ってCSSやJavaScriptを解釈する互換モード(Quirks Mode): 1990年代の古いブラウザ(IE5など)の挙動を再現するDOCTYPE宣言がないと、ブラウザは「古いHTMLかもしれない」と判断して互換モードに切り替わり、box-sizingの計算が変わったり、インライン要素の余白の扱いが変わったりと、CSSが意図通りに効かなくなります。HTML4時代との違いかつてHTML4やXHTMLの時代には、以下のように長くて覚えられないDOCTYPE宣言が必要でした。<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>これはSGMLという規格に由来し、DTD(文書型定義)へのURLを含んでいました。HTML5ではSGMLとの互換性を切り捨て、「標準準拠モードを発動させる最短の呪文」として だけが残ったわけです。大文字小文字は区別されないため DOCTYPE でも doctype でも動作しますが、慣習的に大文字で書かれることが多いです。「おまじない」として覚えるのではなく、ブラウザの動作モードを制御する重要なスイッチだと理解しておきましょう。