ボタン作成時「buttonタグ」と「aタグ」はどう使い分ける?初心者向けにわかりやすく解説

ボタン作成時「buttonタグ」と「aタグ」はどう使い分ける?初心者向けにわかりやすく解説

2025.11.23

はじめに:ボタンって結局どのタグを使えばいいの?

Web制作をしていると必ず出てくる疑問。

「このボタンは button で作るべき? それとも a?」

見た目は同じでも、意味(役割)がまったく違います。
ここを理解しておくと、SEOにもアクセシビリティにも強いコーディングができます。


結論:「何をするボタンか?」でタグが決まる

  • ページ遷移する → aタグ
  • ページ遷移しない → buttonタグ

この基準さえ覚えればOKです。


aタグ(アンカー)の役割

ページを移動させるためのタグ。

こんなときは a を使うべき

  • 別ページに移動
  • サイト内リンク(/about や #section)
  • 外部リンク(Google、SNSなど)
  • メールリンク(mailto)
  • 電話リンク(tel)

基本形

<a href="/contact" class="btn">お問い合わせ</a>

なぜリンクが「a」なの?

  • ブラウザやスクリーンリーダーが「これはリンク」と判断できる
  • SEO的にも「リンク構造」として扱われる

buttonタグの役割

フォーム送信・JavaScript操作・UI操作に使うタグ。

こんなときは button を使うべき

  • フォーム送信
  • モーダル開閉
  • スライドメニュー開閉
  • タブ切り替え
  • JavaScriptのイベント実行のみ

基本形

<button type="button" class="btn">メニューを開く</button>

type属性は超重要

  • type="submit" → フォーム送信
  • type="button" → JS操作用(デフォルトにするべき)
  • type="reset" → 入力リセット

よくある間違い(初心者がハマりやすいポイント)

ページ遷移なのに button を使う

<button onclick="location.href='/about'">会社概要</button>

これはNG
理由:スクリーンリーダーが「ボタン」と誤認 → UX低下
SEO的にもリンクと認識されない。


JavaScript操作なのに a を使う

<a href="#" class="menu-btn">メニュー</a>

→ ページトップに戻ってしまう・役割が不適切
UI操作なら button が正解。


aタグでボタン風にしたいときのCSS例

.btn {
    display: inline-block;
    padding: 12px 24px;
    background: #4087BF;
    color: #fff;
    text-decoration: none;
    border-radius: 6px;
}
.btn:hover {
    background: #2e6a9d;
}

buttonタグでボタンとして使う場合のCSS例

.btn {
    padding: 12px 24px;
    background: #4087BF;
    border: none;
    color: #fff;
    border-radius: 6px;
    cursor: pointer;
}
.btn:hover {
    background: #2e6a9d;
}

まとめ(今日覚えるべき重要ポイント)

ページ遷移する → aタグ

ページ遷移しない → buttonタグ

見た目はCSSで自由に作れる

正しいタグ選びはSEO・アクセシビリティ的にも重要

この基準を守るだけで、あなたのHTMLは プロ品質 に近づきます。


最後に

HP Build Studio の制作実績ページやお問い合わせページのように、
「遷移型のボタン」= aタグ
「操作型のボタン」= buttonタグ
を明確に分けると、サイト全体の設計が美しくなります。

タグ:

#button #aタグ #ボタン #初心者向け #HTML