The HTML <a>
(anchor) element is a tag that makes text or images clickable, creating links to other pages or specific locations.
<a>
要素とは<a>
要素(アンカータグ)は、HTML文書内でハイパーリンクを作成するための最も基本的な要素です。Webサイトを構成するあらゆるリンク(ページ内リンク、別ページリンク、ダウンロードリンク、メールアドレスリンクなど)を作る際に使用されます。
リンクテキスト(アンカーテキスト)は、クリック・タップすることで別の場所へナビゲートできる仕組みになっています。Webの初期から存在する基本かつ重要なタグの一つであり、サイト内を行き来したり外部ページに誘導したりする際に欠かせません。
HTML
<a href="https://example.com">Exampleサイトへ移動</a>
href
属性で移動先のURLを指定します。
これが最も基本的な使い方です。
HTML
<a href="/about.html">このサイトのAboutページへ移動</a>
相対パスまたは絶対パスで指定可能です。
同じドメイン内の場合は、相対パスを使うことが多いです。
HTML
<!-- リンク先 -->
<h2 id="section2">セクション2</h2>
<!-- 遷移元リンク -->
<a href="#section2">セクション2へ移動</a>
同一ページ内の特定の位置へジャンプしたい場合は、id
属性を付与した要素に向けて #id名
と記述します。
HTML
<a href="mailto:someone@example.com">メールを送る</a>
mailto:
スキームを使うとクリック時にメールソフトが起動するようになります。
件名(subject=
)を自動挿入したり、本文(body=
)を用意しておくなどの指定も可能です。
HTML
<a href="mailto:someone@example.com?subject=お問い合わせ&body=本文を自由に挿入します">
お問い合わせ
</a>
HTML
<a href="tel:+810000000000">電話をかける</a>
スマートフォンでクリックすると電話アプリが起動し、指定した番号へ発信できるようになります。
href
属性リンク先を指定する最も重要な属性です。
URLの形式は大きく分けて以下のように分類できます。
https://example.com/about
./about.html
や ../about.html
mailto:
, tel:
, ftp:
, file:
など)target
属性リンクをどのウィンドウやタブで開くかを指定する属性です。
主な値としては次のようなものがあります。
_self
_blank
_parent
, _top
HTML
<a href="https://example.com" target="_blank">新しいタブで開く</a>
target="_blank"
を使う場合は、セキュリティ的観点からrel="noopener noreferrer"
を併用することが推奨されています。
rel
属性リンク先との関係性を検索エンジンやブラウザに伝えるための属性です。
よく使われる値としては以下があります。
noopener
target="_blank"
のセキュリティリスク(親ウィンドウへのアクセス)を防ぐnoreferrer
nofollow
external
ugc
sponsored
HTML
<a href="https://example.com" target="_blank" rel="noopener noreferrer">
新しいタブで開く(安全)
</a>
download
属性href
で指定したファイルを直接ダウンロードするよう促す属性です。
ダウンロードされるファイル名は属性値で任意に指定できます。
HTML
<a href="files/sample.pdf" download="download-sample.pdf">
PDFファイルをダウンロード
</a>
rel="noopener noreferrer"
)target="_blank"
でリンクを開く場合、開かれたページから window.opener
を通してリンク元を操作される恐れがあります。
これを防ぐために rel="noopener"
または rel="noopener noreferrer"
を併用すると安全性が高まります。
多くの場合、rel="noopener noreferrer"
とまとめて書くのが一般的です。
ユーザーがリンク先を明確に理解できるテキストを用いることが重要です。
「ここをクリック」だけではなく、「詳細はこちら」や「○○の詳細を見る」など、そのリンク先の内容が伝わる言い回しを心がけましょう。
音声読み上げソフト(スクリーンリーダー)を利用するユーザーにとっても、リンク単体で意味が通るテキストは有益です。
title
属性の使い方以前はリンクの補足説明として title
属性を多用しましたが、現在では画面リーダーやマウスオーバーの挙動等を考慮し、必須ではありません。
リンクのコンテキストをより補完する必要がある場合に限定的に利用しましょう。
<a>
要素が多数あるページでは、キーボードで Tab キーを押したときの移動順序にも注意が必要です。
画面上の見た目だけでなく、ソースコード上で意味のある並び(論理的な順番)を維持するようにしましょう。
多くのブラウザは、未訪問リンクは青色、訪問済リンクは紫色、リンクテキストには下線が引かれるのが標準です。
CSSでカスタマイズしすぎるとリンクが判別しにくくなり、ユーザー体験やアクセシビリティを損ねる恐れがあります。
CSS
/* 例: リンクの色だけを変える */
a {
color: #2b78e4;
text-decoration: underline;
}
a:hover {
text-decoration: none;
}
下線や色の変更だけでなく、アイコンを用いるなど、リンク先が明確にわかるデザイン上の工夫が望ましいです。
特にボタン風のCTA(Call To Action)として使う場合は、クリック可能な要素であることを一見してわかりやすくするようにしましょう。
サイト内のページ同士をリンクで適切に結びつけることで、検索エンジンがサイト構造を理解しやすくなります。
href
属性のURL設計やリンクテキスト(アンカーテキスト)が文脈に合ったキーワードを含んでいると、検索エンジン的にもメリットがあります。
外部サイトへのリンクを貼る場合、信頼できる情報ソースであればリンク先を示すことはユーザーの利便性向上に繋がります。
スパムや広告のようなものは、必要に応じて rel="nofollow"
や rel="sponsored"
などを付与し、検索エンジンに誤解を与えないように注意しましょう。
nofollow
の使いどころユーザーレビューやコメントなど、発信元をコントロールしにくいリンクには rel="ugc nofollow"
を使うケースもあります。
検索エンジンがリンクを評価しないようにすることで、サイトが不要なリスクを負わないようにする手段です。
<a>
要素はクリックイベントを取り扱いやすく、JavaScriptと組み合わせて高度なナビゲーションを実装できます。
シングルページアプリケーション(SPA)では、リンクをクリックしてもページ全体のリロードを行わず、JavaScriptで動的にコンテンツを切り替えるケースがあります。
その際、利用するフレームワーク(React, Vue, Angularなど)によっては専用コンポーネントを使うことが推奨されるため、ネイティブの<a>
要素を単に置き換えるだけでは不十分な場合もあります。
アクセス解析ツールを利用してリンクのクリック数を計測したい場合、イベントハンドラでクリックイベントを取得してトラッキングする実装を行うことがあります。
ただし、純粋なHTMLだけでなくJavaScriptが関連するため、JavaScriptが無効な環境でのフォールバックやユーザビリティに注意しましょう。
data-
属性の活用リンクタグに独自のデータ属性(data-*
)を仕込んで、JavaScriptで取得・処理する仕組みを作ることができます。
HTML
<a href="https://example.com"
data-tracking-category="homepage"
data-tracking-label="main-banner-link"
target="_blank"
rel="noopener noreferrer">
クリック計測付きリンク
</a>
こうした形でサイト内のクリック動向をより詳細に把握し、マーケティングに役立てることが可能です。
たとえばサーバーサイドスクリプト(PHP, Ruby, Pythonなど)やフロントエンドのテンプレートエンジンを活用して、DBに格納されたリンク情報を自動で一覧表示するケースが多々あります。
メンテナンスや更新の手間を削減し、大規模サイトの運用に役立ちます。
<a>
要素は、Webページ内での「移動(ナビゲーション)」を実現する最も基本的かつ重要な要素です。初心者にとっては、まず「リンクを作るもの」として理解すれば十分ですが、実際にはアクセシビリティやSEO、セキュリティ面、さらにはJavaScriptとの連携など、奥が深い概念や手法が数多く存在します。以下のポイントを押さえておくと、より優れたリンク設計が行えます。
href
属性でリンク先を指定target="_blank"
使用時のセキュリティrel="noopener noreferrer"
の併用を推奨。rel="nofollow"
など)を適切に扱い、サイト内外の評価やトラフィックを最適化。これらを踏まえて、必要に応じた属性の活用や文言の工夫などを行えば、ユーザーにも検索エンジンにも優しいリンクを実装することができます。