HTML

The HTML <a> (anchor) element is a tag that makes text or images clickable, creating links to other pages or specific locations.

a 要素

<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の形式は大きく分けて以下のように分類できます。

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でカスタマイズしすぎるとリンクが判別しにくくなり、ユーザー体験やアクセシビリティを損ねる恐れがあります。

Sample

CSS

/* 例: リンクの色だけを変える */
a {
	color: #2b78e4;
	text-decoration: underline;
}
a:hover {
	text-decoration: none;
}

ユーザーがリンクと認識しやすいデザイン

下線や色の変更だけでなく、アイコンを用いるなど、リンク先が明確にわかるデザイン上の工夫が望ましいです。

特にボタン風のCTA(Call To Action)として使う場合は、クリック可能な要素であることを一見してわかりやすくするようにしましょう。

SEOにおけるポイント

内部リンク構造

サイト内のページ同士をリンクで適切に結びつけることで、検索エンジンがサイト構造を理解しやすくなります。

href属性のURL設計やリンクテキスト(アンカーテキスト)が文脈に合ったキーワードを含んでいると、検索エンジン的にもメリットがあります。

外部リンクの扱い

外部サイトへのリンクを貼る場合、信頼できる情報ソースであればリンク先を示すことはユーザーの利便性向上に繋がります。

スパムや広告のようなものは、必要に応じて rel="nofollow"rel="sponsored" などを付与し、検索エンジンに誤解を与えないように注意しましょう。

nofollowの使いどころ

ユーザーレビューやコメントなど、発信元をコントロールしにくいリンクには rel="ugc nofollow" を使うケースもあります。

検索エンジンがリンクを評価しないようにすることで、サイトが不要なリスクを負わないようにする手段です。

高度な活用例

JavaScriptとの連携

<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"の併用を推奨。
アクセシビリティ配慮
リンクテキストは文脈を含んだわかりやすい表現を。
SEO的観点
リンクテキストや属性(rel="nofollow"など)を適切に扱い、サイト内外の評価やトラフィックを最適化。
デザイン面
クリック可能であることが直感的に伝わるスタイリングを工夫。
高度な使用
JavaScriptとの連携やトラッキング、動的生成など、大規模な運用やマーケティング要件にも応用できる。

これらを踏まえて、必要に応じた属性の活用や文言の工夫などを行えば、ユーザーにも検索エンジンにも優しいリンクを実装することができます。