この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:guest
更新日時:2026-06-11 07:10:02

タイトル: map要素
SEOタイトル: HTML map要素 完全ガイド(イメージマップ / area要素 / usemap属性 / クリック可能領域の作り方)

この記事の要点
  • は画像にクリック可能な複数領域(イメージマップ)を定義する要素
  • 中に 要素を並べ、それぞれが領域とリンク先を持つ
  • 画像側は 、map 側は で対応付け
  • 領域の形は shape 属性で rect / circle / poly / default から選ぶ
  • モダンな実装では SVG や CSS の方が一般的だが、静的な地図・図解には今も有効

map要素とは

は HTML のイメージマップを定義する要素です。1 枚の画像の任意の領域に対し、それぞれ別のリンク先を割り当てられます。たとえば「日本地図の画像で、北海道を押したら北海道のページへ、九州を押したら九州のページへ」といった作りが、JS なしで実現できます。

基本構文

日本地図


  北海道
  関西
  九州

属性

要素属性意味
nameマップ名(必須、 から参照)
usemap使用するマップ名を # 付きで指定
shape領域の形(rect/circle/poly/default
coords領域の座標(形に応じた値)
hrefクリック時の遷移先
alt代替テキスト(必須)
target遷移先のフレーム / タブ

shape と coords の書き方

shape意味coords の形式
rect長方形左上x, 左上y, 右下x, 右下y50,30,200,150
circle中心x, 中心y, 半径100,100,40
poly多角形x1,y1, x2,y2, x3,y3, ...10,10, 50,30, 30,80
default残りの領域すべて不要

サンプル:4 領域のメニュー画像

メニュー


  コーヒー
  紅茶
  ケーキ
  お知らせ

レスポンシブ対応の注意点

coords画像のオリジナルサイズ基準の絶対ピクセルです。CSS で画像を縮小・拡大しても coords は追従しません。これがイメージマップ最大の弱点です。対策としては:

  • 画像サイズを CSS で変えない(固定)
  • JS で表示倍率に合わせて coords を再計算する
  • またはSVG に置き換える を持つパスを並べる)

代替手段との比較

手段長所短所
+ JS 不要、HTML 標準レスポンシブ不可(座標固定)
SVG + 拡大縮小に強い、アニメ可SVG 作成の手間
CSS で要素を重ねる柔軟、リッチ装飾可HTML/CSS 量が増える

アクセシビリティ

  • alt 属性は必須(スクリーンリーダーは alt でリンク内容を読み上げ)
  • 意味のある順序で を並べる(タブ移動順になる)
  • 装飾的なクリック領域なら alt="" を許容(空文字は意味のない領域)
  • キーボード操作で各領域へ Tab 移動できる — tabindex 不要、フォーカスリングは確実に見せる
  • モバイルではタップ領域が 44px 四方以上になるよう coords を設計

座標を取得する手間を減らすツール

イメージマップ作成最大の手間は coords の座標取り。手動でやるのは現実的でないので、次のような手段が使われます。

  • オンラインのイメージマップエディタ(画像を読ませて領域をマウスで描く → HTML を出力)
  • 画像編集ソフト(GIMP、Photoshop)の「Image Map」エクスポート機能
  • HTML エディタ拡張(VS Code 拡張等)

運用としては、画像と一緒に座標情報を JSON で保存しておき、ビルド時に HTML へ展開すると、画像差し替え時の保守が楽になります。

SEO 上の扱い

検索エンジンは href をリンクとしてクロール対象にします。alt 属性がアンカーテキスト相当として扱われるので、各領域の altそこへ移動する内容を表す具体的な語にするのが望ましいです(例: 「メニュー」より「ランチメニュー」)。

よくある落とし穴

  • usemap="japan"# が必要usemap="#japan" と書く
  • nameid の混同 — usemap が参照するのは name
  • 同じページに同名 map が複数 — ブラウザによって挙動不定
  • CSS で img を縮小したのに coords 据え置き — クリック位置がズレる
  • poly の座標が奇数個になっている — x,y のペアなので必ず偶数個
  • areaalt がない — HTML 仕様違反、検証ツールで弾かれる

関連