Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
XHTMLが残したもの
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yosuke Furukawa
PRO
September 04, 2026
Programming
900
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
XHTMLが残したもの
W3C LT 2026/09/04
Yosuke Furukawa
PRO
September 04, 2026
More Decks by Yosuke Furukawa
See All by Yosuke Furukawa
Webの地図
yosuke_furukawa
PRO
6
5k
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
430
デザインシステムが必須の時代に
yosuke_furukawa
PRO
2
320
Node.js, Deno, Bun 最新動向とその所感について
yosuke_furukawa
PRO
10
5.4k
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
1
4.9k
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
370
Removing Corepack
yosuke_furukawa
PRO
9
2k
JavaScript Runtime とはなにか
yosuke_furukawa
PRO
15
3.2k
Strip Types と Storage
yosuke_furukawa
PRO
4
550
Other Decks in Programming
See All in Programming
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
440
速習iPhone Duo対応
yuukiw00w
2
940
Verilogで学ぶCPU自作入門.pdf
uyuki234
8
4k
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.3k
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
20
20k
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
280
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
170
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.7k
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
6.1k
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
530
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Navigating Weather and Climate Data
rabernat
0
550
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
440
WENDY [Excerpt]
tessaabrams
14
40k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
A designer walks into a library…
pauljervisheath
211
25k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
760
Building Adaptive Systems
keathley
44
3.2k
Transcript
XHTMLが残したもの W3C LT yosuke_furukawa / 2026/09/04
X: @yosuke_furukawa GitHub: yosuke-furukawa
XHTMLとは • HTML は 1991 年に Tim Berners-Lee がSGMLの応用として規定した •
SGML自体は許容度の広い文法だった • 文脈上分かるなら推論したうえで省略可能というもの • 当然HTMLもそれにならったことで規則はおおらかなものだった • 閉じタグ省略可能だったり、属性のショートハンドな書き方が認められるのもここから来る • HTMLのパーサーが複雑なのもここから来る 「title要素の時は〜〜」「head要素は書かなくても良 い」など • 結果としてレンダリングエンジンがHTMLを解析する際に例外ケースがいくつも生まれてしまった • レンダリングエンジンごとの差異も生まれてしまった
XHTMLとは • HTML 4.01 までの語彙に加えてSGMLベースからXMLベースに変更した仕様を 策定を開始 => XHTML(2000年) • 全タグを閉じる、属性は引用符で囲む、大文字と小文字は区別ありで、要素
と属性は小文字で書く、 <br /> や <hr /> のように空要素は `<要素名 />`で終 わる等 • おおらかだったために逆に複雑になってしまったHTML仕様を丸ごと厳格な仕 様にするという意欲的なプロジェクト
XHTMLとは • しかし、既存HTMLの置き換えには至らず、仕様上もHTML Living Standard と して一本化。計画としては頓挫した。10年以上も仕様化に時間がかかった。 HTMLとXHTMLの簡単年表 (powered by
AI)
なぜダメだったか? • 今やWeb仕様では鉄則になった「後方互換性の重要性」を無視してた • 全く意識してなかったわけではない、特に text/html と application/xhtml+xml などのMIME Type
による区分けとそれに伴うHTML/XHTMLのモード変更などの意識はされていた • 一定互換性を無視しても良いだろうという背景もあった • 当時のモバイル端末に複雑なパースルールは搭載できないのでは?と思われてたり、ガラケーで は実際に導入されてたり。 • これから増えるであろうウェブページは新規に作られるから新しいルールが適用されるだろうと 思われてたり。 • XMLブームに後押しされていた(全てのデータフォーマットがXMLになるべきだと思われてた)
なぜダメだったか? • しかし上手く行かなかった。厳格な仕様は間違えると表示不備になった。 • XHTMLで正しい文法を書くこと自体はコンテンツ作成者に支持はされていた。実際 大量に本などは出ていて、見られてはいたが。。。 • ブラウザ実装側が2つのモードを同時にメンテナンスするメンテナンスコストの増 大や後方互換性が崩れることを問題視 •
仕様化までにXHTML提案の2000年から2009年まで9年かかっていることもある。 • 主だったブラウザ実装側が互換性を維持するように決議を持ちかけ、理想的な整合 性のある世界よりも互換性維持の方が投票により選択されてしまった。
仕様を統合、HTML5へ • 許容度が広い仕様はHTML5でパースルールを全て定義し直した(SGMLベースではなく、HTML として仕様が完結するようになった) • 閉じタグ省略可能を明示 • 省略可能なタグも明示 • xx
タグの場合はこのアルゴリズム、 yy タグの場合はあのアルゴリズムなどタグごとにパース アルゴリズムを明示 • 細かい例外についても仕様で記述 • https://html.spec.whatwg.org/multipage/parsing.html • パースの仕様は複雑になったが、整理されたことで混乱は生みにくくなった
仕様を統合、HTML5へ • パースルールの明確化までの道のりはエグい、7年かかってる。仕様として全体 を定義し直すのにWHATWG発足から10年かかった • 仕様に未定義だったパースルールで曖昧だった所を主要エンジンをリバースエ ンジニアリングすることで仕様を再定義 • 実際のコンテンツの統計を取り、どう記述されているかを精査 •
未定義の仕様の中で様々なパターンを用意し、どう壊れるかを確認 • 一番マシな挙動にあわせて仕様を作り直すという力業 HTML5が残した巨大な資産といえる
XHTMLが残したものは何か 残したもの その1 • HTMLを記述する時の慣例 • 小文字で基本記述 • 閉じタグは省略しない •
属性値は二重引用符 `"` で囲む • などなど、必ずしも守らなくてもHTMLとしては正当だが、慣例的に統一さ れた
XHTMLが残したものは何か 残したもの その2 • HTML の中に別の文法を埋め込めるようになった • SVG / MathML
などの XMLフォーマットで記述されたコンテンツを導入し やすくなった(`.svg`で記述されたものはXMLパーサーで処理される) • HTMLにインラインでSVGを書いた時はHTMLパーサー側が頑張って解釈す る(誤りがあってもなんとかDOMにして、SVGエンジンで処理) • (一方でXSLTなどの負債も残ってしまった。XSLTはXMLベースのDocument 変換処理だが、セキュリティ上の問題もあり、削除を予定中)
XHTMLが残したものは何か 残したもの その3 • 後方互換性より何より、Web仕様の進化が止まってしまうことが最も問題 だった • XHTMLで最も問題だったのは停滞とその後のビッグバンだった • 世の中にある程度受け入れられたものは小さく進化し続けないと失敗する
XHTMLが残したものは何か 残したもの その3 • これ自体は HTML 仕様に限らない • CSS はモジュラーになり、細かくWGごとに仕様提案されるようになった。
• JavaScript は proposal ごとに細かく議論され、年ごとのスナップショットを 取ることになった。 • HTTP はセマンティクスと通信方式に分かれて HTTP/2, HTTP/3 と分離された 仕様になった。 • 進化を止めない仕様づくりこそが Web に必要だという教訓を教えてくれた
まとめ • HTML => XHTML への進化は頓挫した • しかし、新しい形で進化した。特にHTML5で曖昧だった仕様が修正されたのは 大きい •
他にもいくつか残してくれたものはある • HTMLの書き方の慣例 • HTML / XML 併用設計 • Webの仕様における進化を止めない事の重要さ