記事本文
Musical Baton の泥臭いまとめ作業のペースを落とす
hxxk.jp - Musical Baton の泥臭いまとめはそろそろ広がりすぎたので、自分から振った人とか、ふだんやり取りをしている人の周りとかを中心にペースダウンして続けるように変更します。 またいつものように web 語りとか Movable Type 話とかに戻りますよ。
a 要素はインラインレベル要素
これはほんとにそのままアンカーであり、それでくくった場所にしるしを付けるタグです。 例えば、 <a name="aaa">ああああ</a> とHTML内でくくっておけば、
これを使って「http:www.example.org/index.html#aaa」とすると、index.html内のaaaの指定した位置にジャンプできます。
これを使って固定リンクを実現する方法もよく使われ、よく1つの日記に複数記事が掲載されたWeb日記サイト&ツールでは、このアンカーリンクを活用してPermalinkを実現しています。
で、これに足りないなあ〜と最近とみに思うのが、これ文章内の始めの位置を指定するだけなんすね。 ですから、これを使って場所指定でリンクすると、その部分にフォーカスされるわけですが、「範囲」は指定できない。
もし終端を指定することができたなら、ここから〜ここという指定がリンクでできるのにーと思った。
もしくはリンクタグのほうを拡張して、<a href="index.html#aaa-#bbb">リンク</a>とできたらいいのになあと思った。
a 要素や name 属性にこだわらなければ良いんじゃないでしょうか ? a 要素はインラインレベル要素である以上、通常書かれるであろう形態の文章全体をマークアップすることはできません。 よって、 a 要素の name 属性をアンカーの終点としてマークアップする場合は、文章内の任意のインライン部分がアンカーの終点となります。
Note that in XHTML 1.0, the
nameattribute of these elements is formally deprecated, and will be removed in a subsequent version of XHTML.
と、廃止予定であることが明言されています。 XHTML のほとんどの要素において、汎用属性として id 属性が使えるため、それを任意のブロックレベル要素に適宜割り振れば良いのではないでしょうか。
ブロックレベル要素に id 属性を割り当てる
<h2>中見出し</h2>
<div class="section" id="id001">
<h3>小見出し 001</h3>
<p>
文書 001
</p>
</div>
<div class="section" id="id002">
<h3>小見出し 002</h3>
<p>
文書 002
</p>
</div>
これは実際に hxxk.jp で用いている形式を簡単に表したものですが、このように見出し毎ではなくセクション毎に id を割り振ることで、各セクションに識別子を割り当てています。
<h2>中見出し</h2>
<h3 id="id001">小見出し 001</h3>
<p>
文書 001
</p>
<h3 id="id002">小見出し 002</h3>
<p>
文書 002
</p>
このように、 見出しに id 属性を割り振るケースも考えられますが、これは「リンク = ジャンプ」という誤解が根幹にあると思います。
例えば、上記の 2 つの例のような HTML に対し、
<a href="http:www.example.org/hoge.html#id001">id001</a>
というリンクが向けられたとします。
現行の主なブラウザでは、どちらの例においても http:www.example.org/hoge.html の全体をレンダリングした後、 id001 部分が画面上に現れるように自動的に調節して表示します。
しかし、もし「フラグメント参照がなされたリンクをレンダリングする場合は、その参照がなされた部分 ( この場合、 id001 が割り振られた部分 ) しかレンダリングしない」というブラウザが登場すれば、前者の例では小見出し 001 および文書 001 の部分をレンダリングできますが、後者は小見出し 001 しかレンダリングせず、文書 001 の部分はレンダリングしてくれないでしょう。
「そんなブラウザなんて無いよ」と言われるかもしれませんが、フラグメント参照 - Personnel のような例も考えられていますので、そのうち登場する可能性は充分に考えられます。
よって、任意のブロックレベル要素に対して id 属性を指定すれば、
サイトコンテンツの位置等を指定する指標
となり得るのではないかと思います。
トラックバック送信先
- アンカータグに先頭しかないのは欠陥説 : highbiscus -北国tv
-
a 要素や name 属性にこだわらず、任意のブロックレベル要素に対して id 属性を指定すれば、サイトコンテンツの特定の範囲を指定する指標になるのではないでしょうか。

