| この記事の要点 |
|
kbd 要素とは
kbd 要素 (keyboard input) はユーザーからの入力を表すための HTML 要素です。物理キーボード入力に限らず、音声コマンドや UI 上のボタン操作なども含めて「ユーザーがコンピューターに与える指示」全般を意味します。
基本構文
<p>ファイルを保存するには <kbd>Ctrl</kbd> + <kbd>S</kbd> を押してください。</p>
<p>Mac では <kbd>Cmd</kbd> + <kbd>S</kbd>。</p>
<p>音声入力で<kbd>「明日の天気は?」</kbd>と話しかけます。</p>
デフォルトではブラウザの UA スタイルにより等幅フォント (monospace) のインライン要素として表示されます。
使うべき場面
| 用途 | 例 |
|---|---|
| ショートカットキー | <kbd>Ctrl</kbd>+<kbd>S</kbd> |
| ターミナルのコマンド入力 | <kbd>ls -la</kbd> |
| 音声コマンド | <kbd>OK Google</kbd> |
| UI ボタン名 | <kbd>保存</kbd> ボタンをクリック |
kbd / samp / code / var の違い
| 要素 | 意味 | 例 |
|---|---|---|
kbd | ユーザー入力 | Ctrl+S を押す |
samp | プログラム出力 (sample output) | "Hello, World!" 等の標準出力 |
code | コード片 | const x = 1; |
var | 変数や数学変数 | x, n |
これら 4 つはセマンティックに区別されており、適切に使い分けるとスクリーンリーダーや検索エンジンに意味が正しく伝わります。
ネストして使う典型例
<!-- コマンドを入力して、出力結果を見る一連の流れ -->
<p>ターミナルで <kbd>date</kbd> を実行すると、
<samp>Thu Jun 11 14:30:00 JST 2026</samp> のように表示されます。</p>
<!-- kbd の中に kbd をネスト (公式パターン) -->
<p>メニューから <kbd><kbd>ファイル</kbd> → <kbd>保存</kbd></kbd> を選ぶ。</p>
CSS でキーキャップ風スタイリング
UA デフォルトでは等幅文字になるだけで地味なので、CSS でキーキャップ風の見た目にするのが定番です。
kbd {
display: inline-block;
padding: 2px 6px;
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 0.9em;
color: #1f2937;
background: #f5f5f5;
border: 1px solid #cbd5e1;
border-bottom-width: 2px;
border-radius: 4px;
box-shadow: 0 1px 0 rgba(0,0,0,0.1);
line-height: 1;
}<p>保存は <kbd>Ctrl</kbd> + <kbd>S</kbd>。<br>
取り消しは <kbd>Ctrl</kbd> + <kbd>Z</kbd>。</p>
アクセシビリティ
- スクリーンリーダーは
kbdを特別に読み上げないことが多い (環境差あり)。視覚的な手掛かりに頼らない場合は補足説明を併記 - キー名は ASCII で書くと読み上げやすい。「コントロール+エス」のように補足を入れるとさらに親切
- CSS で見た目をキー風にしても、コンテンツとしてはテキストのままなのでコピペや検索に問題なし
FAQ
Q: kbd の中に + を入れる?外に出す?
A: 仕様上どちらでも可だが、外に出す方が多数派: <kbd>Ctrl</kbd> + <kbd>S</kbd>。
Q: 矢印キーはどう書く?
A: <kbd>↑</kbd> や <kbd>↑</kbd>。文字参照で書けば文字化けしにくい。
Q: code と kbd どちらにすべきか迷う
A: 「ユーザーが押す/打ち込む」なら kbd。「ソースコードの一部」なら code。コマンドを示すなら入力強調で kbd の方が適切。
応用: ショートカット一覧テーブル
ヘルプページなどで操作を一覧表示する場合、kbd とテーブルの組み合わせが定番です。
<table>
<thead>
<tr><th>操作</th><th>Windows / Linux</th><th>Mac</th></tr>
</thead>
<tbody>
<tr>
<td>保存</td>
<td><kbd>Ctrl</kbd> + <kbd>S</kbd></td>
<td><kbd>Cmd</kbd> + <kbd>S</kbd></td>
</tr>
<tr>
<td>コピー</td>
<td><kbd>Ctrl</kbd> + <kbd>C</kbd></td>
<td><kbd>Cmd</kbd> + <kbd>C</kbd></td>
</tr>
<tr>
<td>貼り付け</td>
<td><kbd>Ctrl</kbd> + <kbd>V</kbd></td>
<td><kbd>Cmd</kbd> + <kbd>V</kbd></td>
</tr>
<tr>
<td>元に戻す</td>
<td><kbd>Ctrl</kbd> + <kbd>Z</kbd></td>
<td><kbd>Cmd</kbd> + <kbd>Z</kbd></td>
</tr>
<tr>
<td>すべて選択</td>
<td><kbd>Ctrl</kbd> + <kbd>A</kbd></td>
<td><kbd>Cmd</kbd> + <kbd>A</kbd></td>
</tr>
</tbody>
</table>
セマンティック HTML としての立ち位置
kbd は HTML4 時代からある古参のフレージング要素ですが、現代のセマンティック HTML 文化のなかでも立派な居場所があります。div や span だけでマークアップすると、機械が「これは入力の指示だ」と理解できないからです。
- 検索エンジン: コードブロック内の
kbdをコード例の文脈と解釈しやすい - 支援技術: スクリーンリーダーで読み上げ調整 (将来的な拡張も含む)
- スタイリング: CSS で一括して見た目を制御しやすい
- 機械翻訳: 翻訳対象から外せる場合がある
関連要素
samp— プログラムの出力code— コード片var— 変数pre— 整形済みテキスト (改行と空白を保持)
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15