HTML5

リンク

  編集:2022.04.24 by T.A.


導入

リンクは、A、AREA、FORM、LINK 要素で作成される概念的な構造で、2 つのリソース(このうち 1 つは現在の Document)の関係を表す。HTML には 2 種類のリンクがある:

外部リソースへのリンク
これは、現在の文書を補足する他のリソースへのリンクであり、多くの場合、ユーザー エージェントによって自動的に処理される。すべての外部リソースリンクは、リソースがどのように取得されるかを記述するフェッチして処理するリンクされたリソース アルゴリズムを持つ。
ハイパーリンク
これは、通常ユーザー エージェントによってユーザーに向けて示されるリンクである。これによりユーザーは、たとえばブラウザーでのアクセスやダウンロードのような、ユーザー エージェントにリンクのリソースをナビゲートさせることができる。

href 属性と rel 属性を同時に持つ link 要素に対しては、リンク タイプの節における定義に従って、rel 属性のキーワードが示す関係に見合ったリンクが作られなければならない。

href 属性と rel 属性を同時に持つ a 要素、AREA 要素に対しても同様に、リンク タイプの節における定義に従って、rel 属性のキーワードが示す関係に見合ったリンクが作られなければならない。ただし、LINK 要素と異なり、rel 属性を持たず、rel 属性がハイパーリンクを生成すると定義される値も持たない、href 属性を持つ A 要素やAREA要素もまた、ハイパーリンクを作成しなければならない。このように暗黙の内に生成されるハイパーリンクは、リンク元の文書をhref属性によって示されるノード文書と結びつけること以上の意味を持たない(リンク タイプを持たない)。

同様に、rel 属性を持つ FORM 要素の場合、リンク タイプの節でキーワードに対して定義されているとおりに、rel 属性のキーワードに対してリンクは作成されなければならない。rel 属性を持たない、rel 属性にハイパーリンクの指定として定義されているキーワードを持たない FORM 要素も、ハイパーリンクを作成しなければならない。

ハイパーリンクは、そのハイパーリンクのセマンティックスの処理を修正するハイパーリンク注釈を 1 つ以上つけることができる。

リソースのダウンロード

リソースには、すぐに閲覧されるのではなく、後に使用されることが意図されているものもある。そのような意図を示すために、問題のリソースへのハイパーリンクを作成する A 要素や AREA 要素に download 属性を指定できる。

また、この属性は、ユーザー エージェントがファイル システムにリソースを保存するときに用いるファイル名を値として持つことができる。この値は`Content-Disposition` HTTP ヘッダーの filename パラメーターによって上書きされることがある。[RFC6266]

生成元をまたいだ場合、ユーザーに悪意があるだろう挙動の警告を回避するために、download 属性は `Content-Disposition` HTTP ヘッダー(具体的には attachment ディス ポジション タイプ)と組み合わせる必要がある。(これは、重要な個人情報や機密情報の意図しないダウンロードからユーザーを保護するものである。)