付録 A HTML を読み解くための 50 のメモ
本編で扱った論点を、振り返りやすい短いメモにまとめました。気になった番号から読み直し、本編のどの章とつながるかを確かめてください。
ブラウザの中で起きていること
書いたものと、ブラウザが実際に扱うものは違う、という話。
- HTML 文字列から表をパースすると、省略した tbody タグに対応する要素が DOM に現れる。(→ 第5章)
htmlheadbodyは省略しても補完される。(→ 第4章)- p の終了タグは条件付きで省略できる。余った終了タグのエラー回復とは別。(→ 第6章)
<table>の直下に書いたテキストは、表の中ではなく表の前へ飛ばされる(foster parenting)。(→ 付録D)- View Source と DevTools は、同じページの違う段階を見ている。(→ 第8章)
- HTML 文字列から作った表では tbody が間に入り、table > tr は一致しない。DOM API で直接作った表とは区別する。(→ 第5章)
- HTML 仕様書のかなりの部分は、人間向けの説明ではなくパーサーの規則。(→ 第12章)
HTML という言語の正体
そもそも HTML は何をする言語なのか。
- HTML はプログラミング言語ではない(
ifもforもない)。(→ 第1章) - それでも Web の基盤になれたのは、読み手が多かったから。(→ 第24章)
- HTML は URL・HTTP と分業して、はじめて Web になる。(→ 第2章)
- HTML が重視したのは、完成した紙面より「接続された文書」。(→ 第3章)
- ブラウザは壊れた入力でも止まらず、回復して読み進める。(→ 第7章)
- それは甘さではなく、閲覧を止めないための設計。(→ 第7章)
省略と空要素のからくり
短く書けるのには、ちゃんと理由と条件がある。
imgは最初から子を持たない「空要素」。閉じ忘れではない。(→ 第9章)brもhrも空要素。(→ 第9章)<img />の/は HTML では無視される。でも SVG / MathML では本当に効く。(→ 第9章)- ブール属性(
disabledなど)は値を書かなくても成立する。(→ 第11章) - しかし
disabled="false"と書いても、無効化は解除されない。(→ 第11章) - 引用符の省略には、かなり狭い条件がある。(→ 第11章)
- 属性やタグの省略可能性は、HTML の祖先 SGML の名残。(→ 第11章)
- コメントの中にも、書いてはいけない並びがある。(→ 第10章)
歴史のひとこま
いまの HTML は、たくさんの偶然と現場の都合でできている。
- CERN は、世界初のサイトを紹介・保存している。(→ 第21章)
- 1989 年の Web 提案は、CERN の情報のつながりを扱っていた。(→ 第2章)
- 最初の Web の実装は CERN で作られた。(→ 第21章)
imgタグは 1993 年にマーク・アンドリーセンが提案した。(→ 第9章)- blink と marquee は著者向けに廃止されているが、現在の実装要件は同じではない。(→ 第22章)
- 文字を流す
<marquee>は Internet Explorer の独自タグだった。(→ 第22章) - かつてはコメント
<!--[if IE]>が、IE 専用の分岐に使われていた。(→ 第10章) spacer.gif(1×1 の透明画像)でレイアウトを整えた時代があった。(→ 第18章)fontやcenterは obsolete だが、当時の需要は本物だった。(→ 第13章)- obsolete は「なかったこと」ではなく、歴史の層として残る。(→ 第13章)
標準化のドラマ
HTML は、誰かが一度決めて終わり、ではない。
- XHTML 1.x の記法の利用と、XML としての配信は別の問題。(→ 第14章)
- XML の整形式違反は致命的なエラーになるが、HTML の正しいタグ省略とは分けて考える。(→ 第14章)
- 2009 年に W3C は XHTML 2 Working Group の任期を更新しない方針を示した。(→ 第14章)
- text/html の
<!DOCTYPE html>は、主に標準モードへ切り替えるために書く。(→ 付録D) - Quirks Mode は、古いページを壊さないために今も残っている。(→ 第15章)
- WHATWG の HTML は、版で止まらない Living Standard。(→ 第23章)
- W3C と WHATWG は 2019 年に HTML 標準を一本化した。(→ 第23章)
- ブラウザ戦争の混乱が、標準化の必要性を強くした。(→ 第22章)
HTML を読むのは誰か
HTML は、人間の目だけのためにあるのではない。
- HTML の読者は、ブラウザだけではない。(→ 第24章)
- 検索エンジンも HTML の構造を読む。(→ 第24章)
- スクリーンリーダーは、ブラウザが渡す役割・名前・状態などの情報を利用する。(→ 第24章)
- alt は画像の用途から決める。装飾だけなら空、画像だけのリンクなら機能や行き先を伝える。(→ 第24章)
<details>と<summary>だけで、JavaScript なしに開閉する UI が作れる。(→ 第26章)<script>の中に</script>と書くと、文字列の途中でも壊れる。(→ 付録D)&は常に変換されるわけではない。文字参照の条件と、確実に&を表す&の表記を分ける。(→ 付録D)- フレームワークが変わっても、最終的に HTML へ落ちることは多い。(→ 第8章)
- HTML は「古い」のではなく「古くても読める」技術。(→ 第25章)
- HTML は完成しない仕様。これからも調整され続ける。(→ 第26章)
- HTML の奇妙さの多くには、ちゃんと歴史的な理由がある。(→ 第26章)