Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

付録 A HTML を読み解くための 50 のメモ

本編で扱った論点を、振り返りやすい短いメモにまとめました。気になった番号から読み直し、本編のどの章とつながるかを確かめてください。

ブラウザの中で起きていること

書いたものと、ブラウザが実際に扱うものは違う、という話。

  1. HTML 文字列から表をパースすると、省略した tbody タグに対応する要素が DOM に現れる。(→ 第5章)
  2. html head body は省略しても補完される。(→ 第4章)
  3. p の終了タグは条件付きで省略できる。余った終了タグのエラー回復とは別。(→ 第6章)
  4. <table> の直下に書いたテキストは、表の中ではなく表の前へ飛ばされる(foster parenting)。(→ 付録D)
  5. View Source と DevTools は、同じページの違う段階を見ている。(→ 第8章)
  6. HTML 文字列から作った表では tbody が間に入り、table > tr は一致しない。DOM API で直接作った表とは区別する。(→ 第5章)
  7. HTML 仕様書のかなりの部分は、人間向けの説明ではなくパーサーの規則。(→ 第12章)

HTML という言語の正体

そもそも HTML は何をする言語なのか。

  1. HTML はプログラミング言語ではない(if も for もない)。(→ 第1章)
  2. それでも Web の基盤になれたのは、読み手が多かったから。(→ 第24章)
  3. HTML は URL・HTTP と分業して、はじめて Web になる。(→ 第2章)
  4. HTML が重視したのは、完成した紙面より「接続された文書」。(→ 第3章)
  5. ブラウザは壊れた入力でも止まらず、回復して読み進める。(→ 第7章)
  6. それは甘さではなく、閲覧を止めないための設計。(→ 第7章)

省略と空要素のからくり

短く書けるのには、ちゃんと理由と条件がある。

  1. img は最初から子を持たない「空要素」。閉じ忘れではない。(→ 第9章)
  2. br も hr も空要素。(→ 第9章)
  3. <img /> の / は HTML では無視される。でも SVG / MathML では本当に効く。(→ 第9章)
  4. ブール属性(disabled など)は値を書かなくても成立する。(→ 第11章)
  5. しかし disabled="false" と書いても、無効化は解除されない。(→ 第11章)
  6. 引用符の省略には、かなり狭い条件がある。(→ 第11章)
  7. 属性やタグの省略可能性は、HTML の祖先 SGML の名残。(→ 第11章)
  8. コメントの中にも、書いてはいけない並びがある。(→ 第10章)

歴史のひとこま

いまの HTML は、たくさんの偶然と現場の都合でできている。

  1. CERN は、世界初のサイトを紹介・保存している。(→ 第21章)
  2. 1989 年の Web 提案は、CERN の情報のつながりを扱っていた。(→ 第2章)
  3. 最初の Web の実装は CERN で作られた。(→ 第21章)
  4. img タグは 1993 年にマーク・アンドリーセンが提案した。(→ 第9章)
  5. blink と marquee は著者向けに廃止されているが、現在の実装要件は同じではない。(→ 第22章)
  6. 文字を流す <marquee> は Internet Explorer の独自タグだった。(→ 第22章)
  7. かつてはコメント <!--[if IE]> が、IE 専用の分岐に使われていた。(→ 第10章)
  8. spacer.gif(1×1 の透明画像)でレイアウトを整えた時代があった。(→ 第18章)
  9. font や center は obsolete だが、当時の需要は本物だった。(→ 第13章)
  10. obsolete は「なかったこと」ではなく、歴史の層として残る。(→ 第13章)

標準化のドラマ

HTML は、誰かが一度決めて終わり、ではない。

  1. XHTML 1.x の記法の利用と、XML としての配信は別の問題。(→ 第14章)
  2. XML の整形式違反は致命的なエラーになるが、HTML の正しいタグ省略とは分けて考える。(→ 第14章)
  3. 2009 年に W3C は XHTML 2 Working Group の任期を更新しない方針を示した。(→ 第14章)
  4. text/html の <!DOCTYPE html> は、主に標準モードへ切り替えるために書く。(→ 付録D)
  5. Quirks Mode は、古いページを壊さないために今も残っている。(→ 第15章)
  6. WHATWG の HTML は、版で止まらない Living Standard。(→ 第23章)
  7. W3C と WHATWG は 2019 年に HTML 標準を一本化した。(→ 第23章)
  8. ブラウザ戦争の混乱が、標準化の必要性を強くした。(→ 第22章)

HTML を読むのは誰か

HTML は、人間の目だけのためにあるのではない。

  1. HTML の読者は、ブラウザだけではない。(→ 第24章)
  2. 検索エンジンも HTML の構造を読む。(→ 第24章)
  3. スクリーンリーダーは、ブラウザが渡す役割・名前・状態などの情報を利用する。(→ 第24章)
  4. alt は画像の用途から決める。装飾だけなら空、画像だけのリンクなら機能や行き先を伝える。(→ 第24章)
  5. <details> と <summary> だけで、JavaScript なしに開閉する UI が作れる。(→ 第26章)
  6. <script> の中に </script> と書くと、文字列の途中でも壊れる。(→ 付録D)
  7. & は常に変換されるわけではない。文字参照の条件と、確実に & を表す &amp; の表記を分ける。(→ 付録D)
  8. フレームワークが変わっても、最終的に HTML へ落ちることは多い。(→ 第8章)
  9. HTML は「古い」のではなく「古くても読める」技術。(→ 第25章)
  10. HTML は完成しない仕様。これからも調整され続ける。(→ 第26章)
  11. HTML の奇妙さの多くには、ちゃんと歴史的な理由がある。(→ 第26章)