linkのススメ

リンクを作る、これはHTML文書の、非常に多くの場面で使われています。その場合には専らa要素が使われています。コレはまぁ、当然のことでしょう。しかし、他の文書との関係を示すlink要素の存在を知っていますか?ココでお勧めするのはlink要素です。UAによってはこの関係を辿って他の文書へ進める場合もあるのです。ココではlink要素について、ちょっぴり知識を深めていこうと思います。

link要素とは

link要素はただスタイルシートを読み込む為だけに存在する……などと思っていませんか?そんな事はありません。

link要素はhead要素の子要素として存在し得る、別の文書等との関係を定義する要素です。これは空要素(エンプティタグ)として定義されています。よってスタイルシートの呼び出しの他、ナビゲーション情報を記述する事が出来るのです。

……がしかし、圧倒的シェアを誇るMSIEはこの便利な要素を読んでくれません。(正確に言うと関係が「スタイルシート」でない限り無視しています。)HTML2.0という太古の昔から定義されているのに……。とはいえ、MozillaやOpera等のUAではきちんとナビゲーションボタンを表示します。これは非常に便利。是非とも記述してもらいたいのです。MSIEユーザーが想像しやすいよう、ナビゲーションバーの表示例も説明しますが、その説明は後ほど。

属性の解説

重要なものだけ取り上げてゆきます。

rel,rev属性

メインとなる属性です。この属性で文書の関係を示します。rel属性はこの文書から見たリンク先との関係を、rev属性はリンク先から見たこの文書との関係を記述します。これらはスペースで区切って複数指定することも可能です。またこの属性は、a要素にも定義されています、知ってましたか?

rel,rev属性値とUAの対応状況
属性値 意味 Opera 7.5 Mozilla 1.7 iCab
alternate 代替文書(詳しい事は代替文書の項で説明) ニュースフィード その他>他のバージョン -
home サイトの始まりのページ ホーム トップ 有効
start ホーム トップ 有効
top ホーム トップ 有効
origin - トップ -
parent (階層的に)上の文書 - -
up 親階層 有効
contents 目次の文書 目次 文書>目次 有効
toc 目次 文書>目次 有効
index 索引の文書 索引 文書>索引 有効
glossary 用語集の文書 用語集 文書>用語集 -
appendix 付録や付属書、附記 - 文書>付属書 -
help ヘルプの文書 ヘルプ その他>ヘルプ -
bookmark 文書内のアンカーへのリンク(複数のブックマークを定義することが可能) - その他>ブックマーク -
search 検索ページ(サイト内検索など) 検索 その他>検索 有効
find 検索 - 有効
first 一連のつながりを持った文書の中で始まりの文書 最初 最初 有効
begin 最初 最初 有効
last 一連のつながりを持った文書の中で最後の文書 最後 最後 有効
end - 最後 有効
prev 一連のつながりを持った文書の中で一つ前の文書 前へ 有効
previous 前へ 有効
next 一連のつながりを持った文書の中で次の文書 次へ 有効
child - -
chapter 一連のつながりを持った文章の中の「章」である文書 - 文書>章 -
section 一連のつながりを持った文章の中での「節」である文書 - 文書>節 -
subsection 一連のつながりを持った文章の中での「小節」である文書 - 文書>小説 -
stylesheet 外部スタイルシート 対応 対応 対応
copyright 著作権表示 著作権 その他>著作権表示 有効
made 著者(メールアドレスを指定する場合が多く、revに指定する) - その他>著者 有効
author 著者(作成者に関するページを指定) 作成者 その他>著者 有効
不明な値 - その他の最下部に表示 -

Operaは複数の存在がありうるファイルの処理が出来ません。また一部属性値に対してはiniファイルを直接書き換える事で対応できます。

Opera, Mozilla共に対応していますが、Operaはalternate stylesheetの記述のみ認識します(逆順に記述すると認識しません)。

type属性

リンク先のファイルのMIMEタイプを指定します。MIMEタイプの一覧に関しては他の素晴らしいサイトを参照してください。

href属性

リンク先のURIを指定します。a要素と同様に記述します。

media属性

リンク先のファイルを表示するべきメディアの種類を指定します。複数指定する場合はカンマ(,)で区切ります。メディアの一覧は以下の通りです。

screen
パソコンなどで一般に利用されているディスプレイなど。
projection
プロジェクター。Operaのフルスクリーンモードもこの扱い。
print
印刷、印刷プレビュー。
aural
音声読み上げブラウザ。
braille
点字で表示するような装置。
tv
テレビなど解像度の低いことが考えられる装置。
handheld
携帯端末など表示領域が狭く限られるもの。Opera7のスモールレンタリング時もこの扱い。
ttv
携帯端末など、等角フォント以外表示できないもの。
all
すべてのもの。

用法

以下の用例は全てXHTMLの記述です。HTML4等で記述する場合は最後のスラッシュ(/)が不要です。(link要素は空要素の為。)

他の文書と関連させる

<link rel="home" href="../" title="駄的HTML改善計画 Top" />
<link rel="prev" href="target.php" title="target属性の利便性" />
<link rev="made" href="mailto:noaddress@nothing.no.jp" title="管理人にメール" />

この様な記述があった場合、「サイトの始まりのページ」として../が、「一つ前の文書」としてtarget.phpが、「著者」としてnoaddress@nothing.no.jpが関連付けられます。(このメールアドレスは架空のものです、一応。)UAによってはナビゲーションバーでtitle属性を参照できるかもしれません。

スタイルシートとタイトル

スタイルシートを関連付ける時にはタイトル要素に注意しましょう。

<link rel="stylesheet" href="default.css" type="text/css" />
<link rel="stylesheet" href="normal.css" title="Normal Design" type="text/css" />
<link rel="alternate stylesheet" href="alternate.css" title="Other Design" type="text/css" />

この様な記述があった場合は次のように処理されるはずです。上手に使えば他の技術(JavaScriptなど)を用いずに様々なデザインを気軽に提供する事が可能です。が、しかしUAによっては全てのスタイルを適応させてしまうものも存在するので注意が必要です…。

1段目のタイトルの無いdefault.css固定スタイルとして関連付けられます。これは固定ですのでいつでも適応されます。

2段目のタイトルのあるnormal.css優先スタイルとして関連付けられます。これは優先ですので読み込んだ当初、default.cssと共に適応されます。

3段目のalternate.cssalternatestylesheetとして関連付けられているので代替用スタイルとして関連付けられます。これは代替ですので通常は適応されません。閲覧者が指定した場合に優先スタイル、つまりnormal.cssと置き換えられ、default.cssと共に適応されます。

Opera7.11では同一のタイトルのスタイルが複数存在するとスタイルが適応されたりされなかったり…と不安定になります。詳細は同じtitle属性値を指定した外部スタイルシートの一部が反映されない(Opera CSSバグリスト)を参照して下さい。

以下のサイトも非常に有用です。必要に応じて参照して下さい。

メディア別にスタイルを適応させる

例えばPDAなどに対しては別のスタイルを適応させた方が良い場合が多々あります。そのような場合は次のような記述が効果的です。現在(2004年夏)の所効果のある機種は限られていますが、新しい機種はこれに対応してくる事でしょう。時代の流れはそうなっています。

<link rel="stylesheet" href="screen.css" media="screen" type="text/css" />
<link rel="stylesheet" href="handheld.css" media="handheld" type="text/css" />

このように記述した場合はscreenメディアはscreen.cssを、handheldメディアはhandheld.cssを適応させて表示します。

代替文書

スタイルシートの例は前述の通りです。スタイルシートとタイトルの項を参照してください。ここでは他の用法を説明します。但し1つ注意があります。これで指定した文書は「代替文書」であって、追い返す文書ではありません。決して「対応していません」とだけ書いた寂しいファイルを関連付けないようにしましょう。その関連付けはいっその事無いほうが良いものになってしまいます。また、本家の文書を更新したら、代替の文書も共に更新しましょう。あくまでも内容が同じでなくては意味がありません

<link rel="alternate" href="link-en.html" hreflang="en" title="English Version" />
<link rel="alternate" href="link-aural.html" media="aural" title="For Aural Media" />
<link rel="alternate" href="link.pdf" media="print" type="application/pdf" title="For Print" />

この様な記述は次のように解釈されます。

hreflang属性と併用することによって翻訳版と関連付ける事が出来ます。よってlink-en.htmlは英語圏の人が参照すべき代替文書として関連付けられます。英語圏のUAはもしかしたら代替文書をいきなり表示するかもしれません。

media属性と併用することによって他のメディア用の文書と関連付ける事が出来ます。よってlink-aural.htmlは音声ブラウザ向けの代替文書として関連付けられます。音声ブラウザはもしかしたら代替文書をいきなり喋り始めるかもしれません。

また、代替文書は必ず同じファイルタイプのものでなくてはならないという条件はありません。よってlink.pdfのように印刷にはPDFを…何てことも可能になるかもしれません。

次のようなlink要素を記述した文書(この文書)を用いて説明してゆきます。尚、現在の記述とは若干異なります。

<link rev="made" href="mailto:krm_car@hotmail.com" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="start" href="/" title="駄的HTML改善計画 Top" />
<link rel="index" href="/better/" title="より良いHTMLを書く為に" />
<link rel="prev" href="target.php" title="target属性の利便性" />
<link rel="bookmark" href="#main" title="本文先頭部" />
<link rel="bookmark" href="#whats" title="link要素とは" />
<link rel="bookmark" href="#attr" title="属性の解説" />
<link rel="bookmark" href="#howto" title="用法" />
<link rel="bookmark" href="#navibar" title="ナビゲーションバーとは" />
<link rel="bookmark" href="#helpful" title="参考リンク" />

Opera7のナビゲーションバー

第3のブラウザと評されるOperaブラウザではどの様に表示されるのでしょうか?Opera7から対応しました。

このページをOpera7.51で表示させたキャプチャ画像です。ナビゲーションバーは上部に表示され、横並びに14のボタンが配置されています。link要素が存在するページを表示すると図のように、ホーム索引目次検索用語集ヘルプ最初前へ次へ最後親階層著作権作成者ニュースフィードという14のボタンが表示され、その内指定されているものが選択可能になります。また、Nextの情報はFast Forward機能の助けとなります。

Fast Foward機能とは、Opera7から導入された機能で、他のブラウザの「進む」を超越する機能です。Operaには「進む」ボタンの他にもう一つ「Fast Foward」ボタンが存在します。「Fast Foward」ボタンはしばしば「早送り」ボタンに、しばしば「次へ」ボタンになります。コレによって関連する(未知の)文書へ簡単にジャンプする事が可能になっています。next属性の他に本文中で「次へ」という文字列がリンクになっている時なども反応します。便利です。詳細はOperaの機能ツアーを参照して下さい。

Mozillaのナビゲーションバー

ココではMozilla1.71を用いて説明します。(Mozillaは何故かナビゲーションバーが表示されない設定が標準になっています。)

このページをMozilla1.7.1で表示させたキャプチャ画像です。ツリー状に整理されたナビゲーションバーは上部に表示され、数多くのリンクを参照する事が可能になっています。Mozillaの場合は図のように、トップ最初最後文書その他というボタン8つが表示されます。その内、文書その他は更に細分化されています。文書の中には目次小節付属書用語集索引という7つのボタンがあります。これらのうち複数指定可能な小節付属書は指定されたもの全てのtitle属性を表示します。その他の中にはヘルプ検索|著者著作権表示|ブックマーク|他のバージョンというようにある程度分けられた状態で6つのボタンが表示されます。これらも、複数指定可能なブックマーク他のバージョンを選択すると、指定されたもの全てのtitle属性を表示します。

そう、Operaなど比にならないほどの関連情報を得る事が出来るのです。

Firefoxのナビゲーションバー(Link Toolbar)

Firefoxは先ほど紹介したMozillaのブラウザ部分のみを利用する軽快なブラウザ…だった筈ですが現状はMozillaの方が軽快だったりします。Firefoxでは何故かナビゲーションバーが無くなっています。これはMozilla Suiteでは標準で無効になっている影響なのでしょうか?それはさておき、ここではLink Toolbarという拡張を入れた場合についての説明になります。尚、この拡張は日本語化もされています

このページをLinkToolbarを導入したFirefox0.9.2で表示させたキャプチャ画像です。ツリー状に整理されたナビゲーションバーは右下部に表示され、数多くのリンクを参照する事が可能になっています。Firefoxの拡張「LinkToolbar」の場合は図のように小さなアイコンが7つ追加されます。それぞれの意味は左からトップ最初最後その他となっており、該当するボタンがない物に関しては全て「その他」として処理されます。title属性とhref属性の内容がポップアップするなど、コンパクトながら使いやすいナビゲーションバーです。

その他のUAの対応状況

他にLynxなどのUAも対応しています。これらは現在調査中……だったりします。

この文書の諸情報

この文書の永続的URI
http://kuruman.org/dateki/link
公開日時
2003年9月6日 午前0時00分00秒
最終更新日時
2006年8月16日 午前0時00分00秒
This document is licensed under a CC : by-nc. 2003-2006, Kuruma; FOAF description.