<h1>Operaの導入とカスタマイズ</h1>
<h2>Movable Typeのプラグインについて</h2>
<h3>はてなブックマークの使い方</h3>
(内容の重要度だけを見てマークアップを行い、見出しが木構造をなさない、という場合です。新聞や雑誌の見出しの使い方を考えてください。)
HTML 4.01の仕様書には"There are six levels of headings in HTML with H1 as the most important and H6 as the least."とあり、これに何も反していないという意見もあれば、HTMLは構造化言語であるのに見出しがきちんとした構造をなさないのはおかしいではないかという意見もあると思うのですが、いかがでしょうか。みなさんの意見をお聞かせください。
>以下のような見出し要素の使い方は適切と言えるでしょうか
私は見出しの「木構造」に賛同する者ですが、上の問いは適切ではありません。
これは審判者の位置が解を定める問いだからです。というのも、私たちは決まりの悪い曖昧性を回避するために仕様書というカノンにあたるわけですが、そこには木構造であるべきとまでは書かれていない。かといって新聞や雑誌のそれのような形態が推薦されているわけでもない。
したがって、ある種の枠組みが不在なのだから、上の問いを続けるならば次のようになるでしょう。
「木構造を採用したときに適切か」、あるいは、「新聞や雑誌の見出しを採用したときに適切か」
いずれにしても、回答にはそれを採用する/しない理由を述べなければならない。
この曖昧な、いわば不確定性は枠組みによって確定されます。例えば HTML 化された論文ではどちらが適切か、という限定条件を付与した問いには回答しやすい。限定条件が準拠している枠組みであり、また採用理由になるからです。
客観的=仕様書的にはどちらを選んでもよい柔軟さがあるわけですが、非限定下においても私は、主観的=感情的に木構造を採用しています。
そうしないと納まりが悪いんですね。これは学生時代の訓練の名残りで、論文構造に慣れているからかもしれない。必然的に木構造と関連することになりますが、各 hx ごとの力関係に敏感になってしまうのです。
例えば、ポピュラーな構造だと思いますが、h1 要素としてあるまとまった文章のタイトルを最重要見出しとしてマークアップする。そして続く h2 がコメントやトラックバック。これはいい。が、さらに続けて、h3 の見出しで目次などがくると……なんだかむずむずする。
これは垂直的な関係が遮断されているからで、水平的には問題無い。が、この h3 は別の h2 に後続しなければならないだろう……その h2 はコメントやトラックバックと同じ力関係になくてはならないだろう……と木構造を採用している身はむず痒がっているわけです。(このことは h1 要素を複数使用した、いわば森構造でも同様です。)
だから、「ゆえに木構造を採用している」というのは倒錯した私の言い訳で、「木構造を採用しているがゆえに」というのが事実でしょう。
余談めきますが、h1 をサイトタイトルにするケースだと、ページ単独で完結せず、ページ毎の関係までも意図的か無意図的か考えているのでしょうか? 実際それには木構造を安定させる働きがあります。(冗長性と引換えに、)後続する hn を並ばせやすい側面がある。(もっとも、h1 要素が見出しのうちの最重要なものであること、また、そもそもサイトタイトルが当該文書の見出しというのはたいへん奇妙なことですが。)
HTML文書 は HTML文書 なのだから新聞雑誌論文などとは分けて考えるべきだ、という向きもあるでしょうが、新聞雑誌論文的であってもいいのです。そしてもちろん HTML の自律性を構想するのもかまわない。HTML は構造化言語ですが、新聞か論文かという二者択一を脇に置き、ハイパーテクスト的側面を強く意識するならば(これも枠組みのひとつです)、ツリー構造にこだわらないほうがいいかもしれないなどと考えたりもします。
解釈の仕方が自由であることは書きました。
自分一人で使う分にはそれでいいでしょうが、そうでない場合には現実として不適切である場合はほとんどではないかと思います。
もちろん仕様書に多くの規定があるわけではないので、それはダメだと言っているわけでもありません。
文法にしても、仕様の範囲内でもいろんな書き方ができるわけですが、現状の使い方からすると終了タグの省略なんかは不適切かと思います。
この辺りは語感もありますが、質問者の方は、構造化言語としてのHTMLを重視しているのではないかと勝手に解釈しましたので、それをふまえて現実に則して考えた場合には不適切なのでは、という感じですね。
もちろん、制作者が決めて良いと思いますし、仕様を狭く解釈しようとしているわけではないです。
「反していない」という主張もアリだ、という考えも持っていることは既に書きました。
が、実際のマークアップに一貫性がないのであれば、それらの主張の説得力もいまいちという感じです。
まあ、雑誌のような場合にはその辺りの区切りがはっきりしていないので、そもそもがHTML 4.01を使うこと自体が適当ではないとも思います。
ちなみに、全てh1とするのもアリだと思っています。その場合、記事単位でのマークアップ、または全てが同列・同階層であることを意図してそうしているのだろうと考えますが。
いちおう h2 を入れておいて、CSS で消す、みたいなことを私はしたりします。サイドバーの頭に「関連情報」とか見出しを入れるんだけど、ハッキリいって製作者 CSS が有効なら「サイドバーである」というだけで話は通じている。だから display:none; で消す。でも、どうせ消すなら別に……という人が多いのは分かります。
それに display:none; だとIEの表示結果を読み上げるタイプの音声系ブラウザが読み飛ばすという問題も。過渡期の問題といいたいところですが、不人気ブログの場合、新着記事以外はろくすっぽ読まれませんからね。将来的には解決される問題、なんていっても仕方ない。悩ましいですね。
基本的にはこうあるべきだが、ルールはそれよりずっと緩やかなものとする。いまの HTML の仕様は、全般にそんな感じになっていて、imo758 さんの希望を満たすものだと思います。時々やたら厳格なことをいう人がいたりするのですが、仕様書を読んでみると、けっこう雰囲気が違う。今後もこうあってほしいですね。
「反していない」派ですが、テキストに手を入れられるなら、階層説にも反しないようにしますね。その方が、将来、新規格に合わせてマークアップしなおす場合にも安心だろうから。
いくらなんでも階層説に適合する見出しのマークアップを禁じるなんてことにはならないはず。逆に、見出しの仕様が厳格になる可能性はある。むしろ緩和されるなら、それはそれで困らない。ありうる厳格化に備えるのは、推奨していいことではないかと思います。
でも、何度も繰り返しますが、新聞紙面をマークアップする場合、既に発行されてしまったものを訂正しようがないわけで、1ページ単位でHTML文書化するなら、見出しレベルを重要度で決めることはありうる、と私は考えますし、それは仕様に反していない。
記事単位でHTML文書化すればいいじゃないか。それはそう。でも、それは問題の枠組みが違う。1ページ単位でHTML文書化できるかできないか。できる、と私はいっているわけです。階層=重要度とする以外の解釈はありえないか。ありえる、と私はいっているわけです。
やっぱり大きな文字の見出し、本文もページの半分くらいたくさん書かれている、そういう記事は重要であろう、と。階層以外の判断基準から重要度を決めたっていいはずだ。それがいけないとは仕様書に書かれていない。
お勧めするかしないかといったら、新聞をページ単位でHTML文書化するなんて、私は勧めません。やめた方がいい、という。でも、どうしてもやりたいということはあると思うんですね。古い新聞記事を指定するとき、何月何日の朝刊3面、みたいな書き方をすることが多い。過去記事検索システムが、ページ単位の検索結果出力に対応したっていいと思う。
そういう可能性を、潰すことはない。語感の問題に過ぎませんが、「不適切」というと「仕様に反する」に片足突っ込んでいる感じがして、違和感あります。「とくに推奨はしないが不適切とまではいえない」これが私のスタンスですね。
見出しの重要度は製作者が決めるものだと思います。テキストから一意に見出しレベルを決められるなら、そんなものいちいち人間が指定する必要がないはずです。
新しい文書を作成するなら、見出しレベルを階層と解釈して矛盾しないようにテキストを構成して、その通りにマークアップすればいいでしょうが、10年前の雑誌を1ページごとにHTML文書化していくといった場合には、仕様書にある通り、見出しレベルを「重要度」で決めていってよいはずです。テキスト確定状態からマークアップをスタートしているなら、見出しレベルの全修正など必要になるわけがありませんし。
新しい文書を作成する場合に「推奨しない」ということと、HTML の仕様を狭く狭く解釈していこうというのは分けて考えてほしいですね。仕様書には、見出しレベルは重要度で決まるとしか書かれていない。そのこと自体は、HTML の柔軟さを支える大切なところではないでしょうか。
質問者さんの示した例で、全ての見出しを h1 にしたっていい。雑誌の1ページなら、おそらくノンブルにしか誌名は入っていない。それを h1 にするのはやっぱり違う(だってそれは「見出し」じゃないから)。となると、ページ内各記事の見出しは、階層としてはどれも最上位。よって h1 だ、と。階層=重要度と製作者が判断するなら、それでいいのではないですか。
やっぱり製作者の判断なんですよ。で、いろいろな判断を許容し、様々な価値観をもつ世界中の製作者たちに受け入れられる…… HTML4.01 の仕様書は、そういうものになっていると私は思います。テーブルレイアウトさえ、絶対禁止だなんていっていないんですよね。すごいです。
私はアクセシビリティとか勧告とかは可能な限り考慮したいとは考えているが、現実には離散的に見出しを表現すべき場合があるのだから、見出しは連続的でなければならないという勧告や規格には反対だ。
たとえば軍組織の構造などをどう表すつもりなのだろう。総司令官だって秘書や雑用をさせる部下などを抱えると思うが、それを総司令官のすぐ下の階層で表現することが「常には」正しいとは思わない。
だからといってその間に「総司令官直属の~」という見出しをいくつも挟むのはかえって冗長だし、著者が「階層をいくつか飛び越えて部下にしているという特徴を直接的に伝えたい場合」というのもあるだろう。
規格策定者等は「離散的な階層構造が存在する」という現実や「階層構造の離散性を表現したい場合がある」という欲求を直視すべきである。
さっそくの補足ありがとうございます。
「階層」と捉えた場合は補足いただいたとおり、h1->h2->h3…という順にするべきだと思います。
例は「重要度」と捉えた場合にはこうなるという例だったので、質問のような使い方をした場合には順番になるとは限らないのではないか、という意図でした(わかりにくかったらすみません。)
むしろ、質問の例のような場合に、全てがきっちり順番通りになっていたらそれはそれでおかしいですよね。「階層」と捉えた場合は順番も重要になりますが、「重要度」と捉えた場合は順番は関係ないので。
<h1>Operaの導入とカスタマイズ</h1>
<h3>はてなブックマークの使い方</h3>
<h2>Movable Typeのプラグインについて</h2>
「重要度」を意図してマークアップしているなら、これでも意味合いは変わりませんから。でも、「~何も反していない~」という人でこういうマークアップをしている人は知りません(知らないだけ?)
で、補足いただいたRFC1866やWAIでも推奨されていないことから考えても、やはり重要度だけ見てマークアップするのは不適切だなあ、と。
階層化して文書構造を分かりやすくすることはアクセシビリティ向上と言う狙いもあるようです。
Lynxなどのテキストブラウザなどを使うとそれが顕著になりますよ。
あと、上の人の補足になりますがh1→h3のような書き方は余り望ましくないようです。
http://openlab.ring.gr.jp/k16/htmllint/explain.html#heading-orde...
(揚げ足取りみたいだけど、多分上の人はこういうことを理解してると思うから揚げ足取りとはいえないと思う)
<h1>IE以外のブラウザの導入とカスタマイズ</h3>
<h2>Operaの導入とカスタマイズ</h2>
<h3>ダウンロード</h3>
<h3>起動</h3>
<h3>カスタマイズ</h3>
<h2>Firefoxの導入とカスタマイズ</h2>
Hnの「n」はあくまでも「相対的」なもので、あとはそれを「階層」と捉えるか「重要度」と捉えるかの違いだと思います。
ただこのような例の場合、「重要度」と捉えたとしても、「~何も反していない~」と言う意見があるとすればそれは少し違うように思いますし、不適切じゃないでしょうか?
なぜなら、このような内容の見出しは重要度は読み手によって変わるものであり、広く見ればこれらのh1~h3は全て同列だからです。
個人的には、「n」は「階層」を表すものと考えています。XHTML 2.0のh要素なんかはそうですよね。
読み手によって捉え方が変わる可能性は「重要度」と捉えた場合に比べては少ないとも思います。
仮にHn要素の「n」を「重要度」と捉え、著者の主観に基づいてマークアップした場合、Hn要素で階層は表現しにくくなる上に、マークアップ作業は煩雑かつ面倒になります。
理由は次のような例を考えるとわかります。
<h3>IE以外のブラウザの導入とカスタマイズ</h3>
<h3>Operaの導入とカスタマイズ</h3>
<h2>ダウンロード</h2>
<h6>起動</h6>
<h1>カスタマイズ</h1>
<h3>Firefoxの導入とカスタマイズ</h3>
起動や終了はOSが使えればわかるから重要度を低く、カスタマイズは初心者には難しいから重要だろうという著者の意図です。
重要度はわかりますが、どこで区切れているのかがわかりませんね。div要素などで区切ってやる必要があります。
「階層」と捉えた場合には、Hn要素単独で階層も区切りも暗示されます。
おまけに「重要度」と捉えた場合、「n」は相対度を表しているはずですから、さらに重要な見出しがでてきた場合には、全てのHnタグを修正しなければなりません。
階層も表そうとdiv要素(sectio)などを使っていれば、修正作業は想像を絶します。
「~何も反していない~」と言う人たちがこのような一貫性のあるマークアップをしているのであれば、それはアリだと思います。
ですが、どう考えてもそうではないでしょう。
結局、「n」は階層と捉えるのが自然で、重要度を表したいのであれば間にもう一つ見出しを挟むか、階層構造の中で表せばいいことです。
そう考えると、やはり、このような例は不適切だと書きながら改めて思いました。
勘違いしました、訂正はないのね....
んー、さすがにh1,h2まではツリー構造になりますね。この2つは、ヘッダーとメニュー要素にしか使わないので、
h3,h4以降は、内容により半々くらい。
ボトムやサイドにコンテンツを作ったとき、あまりおいしい単語を入れられないと、h2を省いちゃうことがあります。(<h2>お知らせ</h2>とか、<h2>おすすめ</h2>とか)
そうすると、文書構造上は、ボトムやサイドのh3,h4が、メインカラムのh2の下に行っちゃってますね。
本当は、dtとddみたいにツリー状になっているのが、好ましいですね。
わたしも、こんな使い方が多いですねぇ....。
<h1>Operaの導入とカスタマイズ</h1>
<h2><a href="">Movable Typeのプラグインについて</a></h2>
<h2><a href="">はてなブックマークの使い方</a></h2>
トップページだと、目次の各項目も見出し、、、と言えなくもない、という言い訳で(汗
これを、liやdtにしちゃうと、h使えるとこがあんまり無くなっちゃうし....(汗
もし、アンカーで飛ばさずに、1ページのずらーっと長いhtmlにしたら、問題なくhを使っていい所なんですけどね。
論点がHTML4.01の仕様に関してならば、不適切な部分はまったくないと思います。
Hn要素を木構造するべきであるという文はみあたりません。
仕様書では以下の部分で可能性を示唆している程度です。
http://www.w3.org/TR/html401/struct/global.html#h-7.5.5
HTMLは「新聞や雑誌の見出しの使い方」のようなものを表現できるけれども、それをを強制する仕様にはなっていません。
自然言語的には「新聞や雑誌の見出しの使い方」の構造が推奨されると思うのですが、そうするべき論拠にHTMLの仕様は使えないと思います。