HTML5

タグ(要素)

A

  編集:2022.06.27 by T.A.

MS

要素はその内容にラベル付けされたハイパーリンク(ハイパーテキスト アンカー)を表す。[H3.2] [H4.0] [H4.01] [HTML5]。[IE4.0]。

この要素を使用できる文脈

フレージング内容が期待される場所。

内容モデル

透過的であるが、インタラクティブ内容の子孫、A 要素tabindex属性が指定された子孫が存在してはならない。

text/htmlにおけるタグ省略

どちらのタグも省略不可。

内容属性

A 要素が href 属性を持つ場合、要素はその内容にラベル付けされたハイパーリンク(ハイパーテキスト アンカー)を表す。

A 要素で itemprop が指定される場合、href 属性も指定されなければならない。

A要素は、全体のセクションであっても、インタラクティブ内容内(たとえばボタンや他のリンク)に存在しない限り、全体の段落、リスト、テーブルなどの周りを包むことができる。この例は、これがリンクに全体の広告ブロックを作るために使用できる様子を示す:

<ASIDE class="advertising">
 <H1>Advertising</H1>
 <A href="https://ad.example.com/?adid=1929&pubid=1422">
  <SECTION>
   <H1>Mellblomatic 9000!</H1>
   <P>Turn all your widgets into mellbloms!</P>
   <P>Only $9.99 plus shipping and handling.</P>
  </SECTION>
 </A>
 <A href="https://ad.example.com/?adid=375&pubid=1422">
  <SECTION>
   <H1>The Mellblom Browser</H1>
   <P>Web browsing at the speed of light.</P>
   <P>No other browser goes faster!</P>
  </SECTION>
 </A>
</ASIDE>

次の例は、少しのスクリプトを使用して、求人一覧表の行全体を効果的にハイパーリンクにする方法を示している:

<TABLE>
 <TR>
  <TH>Position
  <TH>Team
  <TH>Location
 <TR>
  <TD><A href="/jobs/manager">Manager</A>
  <TD>Remotees
  <TD>Remote
 <TR>
  <TD><A href="/jobs/director">Director</A>
  <TD>Remotees
  <TD>Remote
 <TR>
  <TD><A href="/jobs/astronaut">Astronaut</A>
  <TD>Architecture
  <TD>Remote
</TABLE>
<SCRIPT>
document.querySelector("table").onclick = ({ target }) => {
  if (target.parentElement.localName === "tr") {
    const link = target.parentElement.querySelector("a");
    if (link) {
      link.click();
    }
  }
}
</SCRIPT>

href属性

ハイパーリンクのアドレス。

潜在的にスペースで囲まれた妥当なURL である値でなければならない。

ブラウザーが対応するあらゆるプロトコルを使用することができます。

リンク動作を無効にする:

方法1:

<a href="javascript:void(0)" tabindex="-1">LINK</a>

方法2: CSS

A{pointer-events: none;}

<A href="File.htm#Anchor">File表示の項目</A><BR>

<A id=Anchor>項目</A>

HTML4 では id ではなく name の使用であった。

id は英文字の他 2 バイト系文字も可能なようだ。文書の定義と同じ UTF-8 表現を使用すること。

target属性

ハイパーリンク ナビゲーションに対するブラウジング内容。つまり表示先。

target 属性が存在する場合、その値は妥当なブラウジング内容名かキーワードでなければならない。

以下は特別な意味をなすキーワード:

_blank 新しいウインドウ
_self 自分自身
_parent 親ウインドウ
_top トップのウインドウ
キーワード ウインドウの名前を示す。

注: target を使用する際は、window.opener API の悪用を避けるために rel="noreferrer" を追加してください。

↑こういうことだろう。

<A href="…" target="…" rel="noreferrer">○○</A>

注: 新しいブラウザー(例えば Firefox 79 以降)では、target="_blank" を <A> 要素に設定すると、暗黙に rel の動作を rel="noopener" と設定したのと同様になります。

IFRAME 内に File.htm を表示させるリンク。

<A href="File.htm" target="Disp">File表示</A><BR>
<IFRAME name=Disp></IFRAME>

名前付きのウインドウを開く。

そのウインドウに File.htm を表示させるリンク。

<SCRIPT>
window.open("","Disp");
</SCRIPT>

<A href="File.htm" target="Disp">File表示</A>
download属性

(著者は)リソースをダウンロードするために使用されるハイパーリンクを意図することを示す。

値が存在する場合、ローカル ファイル システムでリソースの標識付けに使用するための著者に推奨されるデフォルトのファイル名を指定する。

許可される値に制限はないが、ほとんどのファイル システムが句読点をファイル名にサポートするものに関して制限がある

<A href="../javascript/sample.js" download="sample.js">ダウンロード</A>
ping属性

ユーザーがハイパーリンクをたどる場合に、通知されることに興味を持つリソースの URL を与える。

値は、空白区切りトークンの集合でなければならず、それぞれは、スキームが HTTP(S) スキーマとなる妥当な空でない URLでなければならない。値は、ハイパーリンク監査に使用される。

rel属性

ハイパーリンクを含む文書における位置と宛先のリソースの関係。→リンク タイプ

hreflang属性

リンクされたリソースの言語。lang 属性と同じ。

type属性

この属性はリンク先のリソースのMIMEタイプを表す。これは単なる助言である。

値は妥当な MIME タイプ文字列でなければならない。

referrerpolicy属性

要素によって開始されたフェッチのためのリファラーポリシー。

その目的は、ハイパーリンクをたどるときに使用されるリファラーポリシーを設定することにある。[REFERRERPOLICY]

no-referrer 最も単純な施策は "no-referrer" であり、どの生成元へ送信される要請にも、リファラ情報は伴われないことを指定する。Referer ヘッダは、まるごと省略されることになる。
no-referrer-when-downgrade 次のいずれかを満たす要請に対しては,その全部的なリファラ URL をリファラ情報として送信するよう指定する:
  • その[リファラ URL、現在の URL]は、どちらも信用に価し得る URL である
  • そのリファラ URL は、信用に価し得る URL でない

他方、次を満たす【すなわち、上を満たさない】要請は、リファラ情報を包含せず、Referer ヘッダは送信されないことになる:

[リファラ URL は信用に価し得る URL である]∧[現在の URL は信用に価し得る URL でない]
same-origin 同一生成元リファラ要請を為すときには、全部的なリファラ URL をリファラ情報として送信するよう指定する。

他方、非同一生成元リファラ要請は、リファラ情報を包含せず、Referer ヘッダは送信されないことになる。

origin [同一生成元リファラ要請/非同一生成元リファラ要請]を為すときに、[要請のリファラ URL を直列化した結果]をリファラ情報として送信するよう指定する。
strict-origin 要請が次のいずれかを満たすならば、リファラ URL の生成元を直列化した結果を送信する:
  • その[リファラ URL、現在の URL]は、どちらも信用に価し得る URL である
  • そのリファラ URL は、信用に価し得る URL でない

他方、次を満たす【すなわち、上を満たさない】要請は、リファラ情報を包含せず、Referer ヘッダは送信されないことになる:

[リファラ URL は信用に価し得る URL である]∧[現在の URL は信用に価し得る URL でない]
origin-when-cross-origin 次をリファラ情報として送信するよう指定する:
  • 同一生成元リファラ要請を為すときには、要請の全部的なリファラ URL
  • 非同一生成元リファラ要請を為すときには、要請のリファラ URL の生成元のみを直列化した結果
strict-origin-when-cross-origin
  • 同一生成元リファラ要請を為すときには、要請の全部的なリファラ URL
  • 非同一生成元リファラ要請を為すときには、要請のリファラ URL の生成元のみを直列化した結果
を、要請が次を満たすならば、リファラ情報として送信するよう指定する:
  • その[リファラ URL、現在の URL]は、どちらも信用に価し得る URL である
  • そのリファラ URL は、信用に価し得る URL でない

他方、次を満たす【すなわち、上を満たさない】要請は、リファラ情報を包含せず、Referer ヘッダは送信されないことになる。:

[リファラ URL は信用に価し得る URL である]∧[現在の URL は信用に価し得る URL でない]
unsafe-url [非同一生成元リファラ要請/同一生成元リファラ要請]どちらにも、全部的なリファラ URL を伴わせて送信するよう指定する。
空文字列 リファラ施策がないことに対応する:
  • 他所で定義されるリファラ施策があれば、それにフォールバックする。
  • そのような より高レベルの施策が可用でない場合は、既定のリファラ施策にフォールバックする。これは例えば、[FETCH] の main fetch アルゴリズムにて起こる。

テスト
HTML:

ここに表示
HTML:

ここに表示
スクリプト:


スクリプト:



表示内容:
表示内容: