-
Notifications
You must be signed in to change notification settings - Fork 4
/
228.txt
306 lines (235 loc) · 13.8 KB
/
228.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
* 章節と文書構造
[FIG(short list)[ [24] [[章節]]とその周辺
- [[章節番号]]
- [[見出し]]
- [[副題]]
- [[図題]]
- [[題名]]
- [[目次]]
- [[アウトライン]]
]FIG]
** 見出しとページ名
@@
** 見出しとサイト名
[64] [[Webサイト]]の[[サイト名]]は[[見出し]]ではなく、 [CODE(HTMLe)@en[[[h[VAR[n]]]]]]
を使うべきではないと主張する人もいました。
[25] 現実的にも理論的にも、あまり意味のある主張とは思えません。
[REFS[
- [23] [CITE@ja[見出し要素に関する議論 - 徒委記]] ([CODE[2007-07-13 21:49:00 +09:00]] 版) <http://www.akatsukinishisu.net/wiki.cgi?%B8%AB%BD%D0%A4%B7%CD%D7%C1%C7%A4%CB%B4%D8%A4%B9%A4%EB%B5%C4%CF%C0>
- [37] [CITE@ja[h1は最も重要な見出し - 徒書]] ([[北村曉]] 著, [CODE[2007-07-05 03:10:29 +09:00]] 版) <http://www.akatsukinishisu.net/itazuragaki/html/h1_is_the_most_important.html>
- [42] [CITE@ja[ISO-HTML における h1 要素: Days on the Moon]] ([CODE[2007-07-13 22:15:58 +09:00]] 版) <http://nanto.asablo.jp/blog/2007/07/11/1646006>
- [43] [CITE[我的春秋: HTML の見出しをめぐる議論]] ([CODE[2007-07-13 22:38:26 +09:00]] 版) <http://my-chunqiu.cocolog-nifty.com/blog/2007/07/html_64a8.html>
- [44] [CITE[h1要素は文書のタイトル:メモランダム]] ([CODE[2007-07-09 20:54:42 +09:00]] 版) <http://mynotes.jp/blog/2007/07/h1_is_document_title>
- [45] [CITE[h1要素は文書のタイトル その2:メモランダム]] ([CODE[2007-07-12 05:58:32 +09:00]] 版) <http://mynotes.jp/blog/2007/07/h1_is_document_title2>
- [46] [CITE@ja[h1要素とサイト名 : 雑記帳 : der Gegenwart]] ([[Rusica]] 著, [CODE[2007-07-13 22:25:36 +09:00]] 版) <http://www.rusica.net/note/2007/07/05/h1.html>
- [47] [CITE@ja-JP[文書のタイトルは TITLE - Weblog]] ([CODE[2007-07-09 21:00:00 +09:00]] 版) <http://ryus.s21.xrea.com/w/item/928>
- [48] [CITE@ja-JP[文書のタイトルは TITLE - Weblog]] ([CODE[2007-07-09 21:00:00 +09:00]] 版) <http://ryus.s21.xrea.com/w/item/928>
- [49] [CITE@ja-JP[タグと要素 - Weblog]] ([CODE[2007-07-13 07:00:00 +09:00]] 版) <http://ryus.s21.xrea.com/w/item/929>
]REFS]
[50] >>49 論旨には同意しますが、そこで言われている[Q[[[要素]]]]は
[[SGML]] 以来の専門用語としての[[要素]]とは違うのでは。
[REFS[
- [51] [CITE[new function(){this.id=’gnarl’} - h1が見出しかどうとか気にするなら、HTMLの設計ミスを認識すべき]] ([CODE[2007-07-13 05:39:00 +09:00]] 版) <http://d.hatena.ne.jp/gnarl/20070710/1184034991>
- [52] [CITE[d:id:quaa]] ([TIME[2007-07-22 14:20:44 +09:00]] 版) <http://d.hatena.ne.jp/quaa/20070715#p1>
]REFS]
* HTML における章節構造
[14] [[章節]]を表す次の[[要素]]があります。
[FIG(short list)[
- [CODE(HTMLe)@en[[[section]]]]
- [CODE(HTMLe)@en[[[aside]]]]
- [CODE(HTMLe)@en[[[article]]]]
- [CODE(HTMLe)@en[[[body]]]]
- [CODE(HTMLe)@en[[[nav]]]]
]FIG]
[15] 関連して次の[[要素]]があります。
[FIG(short list)[
- [CODE[h[VAR[n]]]]
- [CODE(HTMLe)@en[[[hgroup]]]]
- [CODE(HTMLe)@en[[[header]]]]
- [CODE(HTMLe)@en[[[footer]]]]
- [CODE(HTMLe)@en[[[div]]]]
- [CODE[main][<main>]]
- [CODE[h]]
- [CODE[b[VAR[n]]]]
- [CODE[div[VAR[n]]]]
- [CODE[hr]]
]FIG]
[21] [[アウトライン]]の記述手法として [[XOXO]] があります。
[22] 外部ファイルの[[アウトライン]]を表す[[リンク型]] [CODE[outline][rel=outline]]
があります。
[23] [[CSS]] の [CODE['outline']] は[[章節構造]]とは無関係です。
* 歴史
** HTML4 における見出しの階数
[14] [RUBYB[[[付番]]] [rank]] [VAR[n]] (注 >>15) は、
[[HTML 4]] をはじめとする
[ABBR[[[IETF]]] [Internet Engineering Task Force]] や
[ABBR[[[W3C]]] [World Wide Web Consortium]]
の規定する [ABBR[HTML] [Hypertext Markup Language]]
仕様では [CODE[1]]〜[CODE[6]]
が定義されています。
[ABBR[HTML] [Hypertext Markup Language]] 4 仕様書によれば、
[CODE(HTMLe)[h1]] が最も重要度が高い見出し、
[CODE(HTMLe)[h6]] が最も重要度が低い見出しです。
[15] 注意: [ABBR[[[SGML]]] [Standard Generalized Markup Language]] 的
[WEAK[([[SGML宣言]]および [ABBR[[[DTD]]] [Document Type Definition]] 的)]]
意味では [VAR[n]]
は付番とは言えませんが、付番は付番です [WEAK[(開き直り)]]。
[117]
[[Word]] 9 は [CODE[7]] を超えると、 [CODE(HTMLe)[[[class]]]] が [SAMP[MsoHeading8]] のような [CODE(HTMLe)[[[p]]]], [CODE(HTMLe)[[[div]]]] または [CODE(HTMLe)[[[li]]]] を吐く模様です。
[CODE(HTML)[9]] まで確認されています。
[118]
>>117 Word 10 でも同じ。
[119]
付番を文書ではなく文書群に対するものと考える人も少なくないようですが、
それは誤りです。
([SAMP(URI)[toc.html]] は [CODE(HTMLe)[h1]] からはじめて、
[SAMP(URI)[section1.html]] は [CODE(HTMLe)[h2]] からはじめて、
[SAMP(RUI)[section1-subsection2.html]] は [CODE(HTMLe)[h3]]
からはじめて、・・・というような使い方は誤り。)
元々付番は文書の中で使うもので、文書群なんてものは考えられていません。
(しかし想定外なのですから、
文書の一部分を別の文書に持っていった際に付番はそのままにしたようなもの、
と考えるのも悪くはない気がしますね。どうしたものでしょう?)
[20]
[[LaTeX]] で [CODE[[[part]]]] とか [CODE[[[chapter]]]] がなくて
[CODE[[[section]]]] が最上位だったりするのは普通なことですから、
[ABBR[SGML] [Standard Generalized Markup Language]] や
[ABBR[HTML] [Hypertext Markup Language]] で [CODE(HTMLe)[h2]]
くらいから始まっていても悪くはないような気もします。付番の最初は
[ABBR[SGML] [Standard Generalized Markup Language]]
的には規定されていませんし。
やっぱり [[XHTML 2]]
のような見出しの水準に中立なモデル化が何も考えずに済むので便利でしょうかね。
[32] HTML が 1〜6 を標準として持っているのは歴史的な事情で、
それ以上の深い理由はありません。
[SEE[ [[h[VAR[n]]]] ]]
良い文書は 1〜4 程度に収めるべきだとか、
実際には 1〜3 くらいしか見かけないなあとか、
でもでかい文書のためには 1〜9 くらいあった方が良いとか、
色々言われてきましたが結局上限を変える程の根拠も無く、
現在に至っています。
[33]
HTML 4 DTD の[[注釈]] (参考) には
[Q[There are six levels of headings from H1 (the most important) to H6 (the least important).]]
と書かれています。
[FIG(short list)[ [82] [[付番]]の破綻例
- [[はてなブログのMarkdown]]
]FIG]
** 付番の飛び越し
[9] たとえば
[PRE[
<h1/>
<p>
<h3/>
<p>
]PRE]
のように、 [CODE(HTMLe)[h2]] の抜けた [[HTML文書]]があります。
[ABBR[HTML] [Hypertext Markup Language]] 2 や
[ABBR[HTML] [Hypertext Markup Language]] 4 の
[ABBR[DTD] [Document Type Definition]] 的にはこのような文書も[RUBYB[[[妥当]]] [valid]]です。
[10] しかしながら、見出しの水準は飛ばすべきではありません
[SRC[RFC 1866 5.4.]] し、飛ばすのを良く思わない人もいます
[SRC[HTML 4]]。
飛ばすことによって他の形式への変換に支障をきたすこともあります
[SRC[RFC 1866 5.4.]]。
[36]
[CITE[h要素について考える -アクセシビリティ・アーキテクチャー技術開発メモ]]
<http://www.infoaxia.com/tools/blog/archives/2005/04/hx.html>
この文書では、見出しの付番を飛ばしたくなる理由の一つとして、
文書が意味的に記述する内容における構造
[WEAK[(この例では、会社組織の[Q[部]]や[Q[課]]のような構造)]]
と文書の構造を整合させたい
[WEAK[(が、[Q[課]]がない[Q[部]]があったりする)]]
という要求を挙げています。
心情的には理解できますが、付番の本来の semantics
[WEAK[([Q[章]]や[Q[節]]のような単純な入れ子関係を表すに過ぎない。)]]
からすると無理にあわせようとする必要は無いわけでして。
メモ: データ構造なら
[PRE(example XML code)[
<組織>
<部>
<課>
<社員/>
</課>
</部>
<部>
<社員/>
</部>
</組織>
]PRE]
のように付番を飛ばしたようなことをしても問題ないのですが、 HTML
は文書マーク付け言語ですからね。
[38] >>37 のように記述内容の意味に引っ張られてしまうのは、
やっぱり HTML の [CODE(HTMLe)@en[h[VAR[n]]]]
によって章節を暗示する ([CODE(HTMLe)@en[[[section]]]]
を使わない) 方法とか、 [SAMP(SGMLe)@en[chapter]]
や [SAMP(SGMLe)@en[section]]
のような名前によるレベル分けではなくて[[付番]]を使っている代償なのかなあ。
と思ったのだけど、名前を使ったところで記述内容の意味に引っ張られて
[SAMP(SGMLe)@en[chapter]] の真下に [SAMP(SGMLe)@en[subsection]]
を入れたいという要求はやっぱり出てきそうだ。
[39]
>>10 [[HTML 4.0]] で[Q[飛ばすのは良くない]]とされていたのが
[[HTML 4.01]] で[Q[飛ばすのはよくないと考える人もいる]]に改められたという説がありますが、
'''誤り'''です。
** HTML5 アウトライン
[1]
[CITE[HTML 5 Outline Tester]] ([CODE[2008-03-05 19:53:50 +09:00]] 版) <http://james.html5.org/outliner.html>
[2]
[CITE@en[Re: several messages about <section>, <p>, <hr>, and related subjects]] ([[Ian Hickson]] 著, [TIME[2008-02-27 16:17:56 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html/2008Feb/0369.html>
[3] [CITE[IRC logs: freenode / #whatwg / 20090817]]
([TIME[2009-10-11 15:59:52 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090817#l-371>
[4] [CITE[HTML5 のセクションアウトラインを取得する JavaScript - IT戦記]]
([TIME[2009-09-14 15:48:59 +09:00]] 版)
<http://d.hatena.ne.jp/amachang/20090914/1252897184>
[5] [CITE[''''''[''''''whatwg'''''']'''''' Various threads with feedback on HTML elements]]
( ([TIME[2013-10-16 00:30:44 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-October/041109.html>
[6] [CITE@en[Web Applications 1.0 r8357 Make the outline algorithm easier to edit by making it all explicit steps and breaking out the (currently still identical) steps for entering sectioning content vs sectioning roots.]]
( ([TIME[2013-12-17 07:30:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=8356&to=8357>
[7] [CITE@en[Web Applications 1.0 r8358 Make the outline algorithm handle sectioning roots more sensibly]]
( ([TIME[2013-12-17 07:44:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=8357&to=8358>
[8] [CITE@en[Web Applications 1.0 r8649 Make the outline algorithm also associate text nodes and comments with the sections]]
( ([TIME[2014-05-24 05:05:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=8648&to=8649>
[9] [CITE@en[Web Applications 1.0 r8698 Add a section encouraging user agents (especially ATs) to expose the outline and headings]]
( ([TIME[2014-08-02 08:14:00 +09:00]] 版))
<http://html5.org/r/8698>
[10] [CITE@ja[HTML5 Outliner - Chrome ウェブストア]]
([TIME[2015-02-14 15:19:56 +09:00]] 版)
<https://chrome.google.com/webstore/detail/html5-outliner/afoibpobokebhgfnknfndkgemglggomo/>
[11] [CITE[HTML5 のセクションアウトラインを生成してみよう! - IT戦記]]
([TIME[2009-09-16 07:45:42 +09:00]] 版)
<http://d.hatena.ne.jp/amachang/20090915/1252999677>
[12] [CITE@en[Suggest adding a warning about outline algorithm · Issue #83 · whatwg/html]]
([TIME[2015-09-02 11:17:08 +09:00]] 版)
<https://github.com/whatwg/html/issues/83>
[13] [CITE[IRC logs: freenode / #whatwg / 20090902]]
([TIME[2009-10-17 01:14:24 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090902#l-168>
[16] [CITE[IRC logs: freenode / #whatwg / 20090906]]
([TIME[2009-10-17 22:08:59 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090906#l-236>
[17] [[tantek]] は [CODE[#whatwg]] で、アウトラインは [CODE[longdesc]]
と同じく失敗だった、と言っている。[[著者]]は [CODE[h[VAR[n]]]]
をブラウザーでどう表示されるかしか気にせず使うし、
[CODE[div]] と [CODE[section]] と [CODE[article]] の違いもわかりゃしない。
[[AT]] が正しく[[見出し]]レベルを[[レンダリング]]するためにアウトラインが必要とかいうけど、
そもそもみんな正しく使ってないんだから役に立たないだろ、と。
[TIME[2017-02-28T16:06:51.000Z]]
[18] [[SGML]] の[[付番]]の時代から始まって、 [[HTML2]]、[[HTML4]]、
[[ISO-HTML]]、[[HTML5]] と章節の入れ子の扱いは[[マーク付け言語]]の設計者を引きつける伝統的な重大テーマなんですよね。
でも世間では設計者の思った通りには使ってもらえない。
そういう世間とマーク付け言語設計者の世界との乖離を解決していくのが [[WA1]] 時代前半のテーマの1つで、
[[SGML]] からの卒業、 [CODE[longdesc]] の廃止、[[互換モード]]の[[標準化]]、
[[内容モデル]]制約の緩和、と順番に片付けていったはずなのだけど、今なお未解決のまま残されているのがこれ、
という見方ができるわけだ。
[19] [CITE@en[HTML outline bookmarklet http://www.whatwg.org/specs/web-apps/current-work/#headings-and-sections]]
([TIME[2018-08-20 15:22:25 +09:00]])
<https://gist.github.com/wakaba/7887273>
** [CODE[main]]
[SEE[ [[main][<main>]] ]]
**