本文へスキップ

アクセシブルなツールチップ

ホバーは 300ms 待ってから、フォーカスは即座に出る。role=tooltip を aria-describedby で結び、Esc で閉じる。帯に「保存, ボタン, 説明: …」と読まれる形を表示。

ENGLISH

Accessible Tooltip (aria-describedby)

  • JS
122基本のUI部品 / アクセシブルUI の一覧 →

プレビュー

ホバー

操作カーソルを乗せると動きます(スマホはタップ)。

デザインの要点

  • ツールチップは補足であって操作ではない。中にリンクやボタンを入れない(入れるなら popover にする)
  • aria-describedby で結ぶと、要素にフォーカスした時点で説明が続けて読まれる。role=tooltip だけでは結び付かない
  • ホバーは 300ms 遅らせて、通り道でちらつかせない。フォーカスは意図が明確なので待たずに出す
  • Esc で閉じられること。閉じられないツールチップは、拡大表示で画面の大半を覆ったまま残る

コード(コピーして使えます)

<div class="tp-wrap">
  <div class="tp-row">
    <button type="button" class="tp-btn" id="tp-save" aria-describedby="tp-tip1">下書きを保存</button>
    <span class="tp-tip" role="tooltip" id="tp-tip1">変更は自動で下書きに残ります。公開はされません</span>
  </div>
  <div class="tp-row">
    <span class="tp-field">API キー <code>sk-••••7f2a</code>
      <button type="button" class="tp-info" id="tp-i" aria-label="API キーについて" aria-describedby="tp-tip2">?</button>
    </span>
    <span class="tp-tip" role="tooltip" id="tp-tip2">ダッシュボードの「設定 → 開発者」で再発行できます</span>
  </div>
  <div class="tp-band"><span class="tp-tag">読み上げ</span><span id="tp-msg">ホバー(300ms 後)か Tab でフォーカスすると表示。Esc で閉じる</span></div>
</div>

タグ

同じカテゴリ「アクセシブルUI」のほかのパーツ

関連パーツ