1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
---
title: '<kbd>: キーボード入力要素'
slug: Web/HTML/Element/kbd
tags:
- Element
- HTML
- HTML 文字レベルの意味付け
- 'HTML:フローコンテンツ'
- 'HTML:知覚可能コンテンツ'
- 'HTML:記述コンテンツ'
- Reference
- Web
- ウェブ
- キーボード
- リファレンス
- 要素
translation_of: Web/HTML/Element/kbd
---
<div>{{HTMLRef}}</div>
<p><span class="seoSummary"><strong>HTML のキーボード入力要素</strong> (<strong><code><kbd></code></strong>) はキーボード、音声入力、その他の入力端末からのユーザーによる文字入力を表す行内の文字列の区間を表します。</span>慣習的に、{{Glossary("user agent", "ユーザーエージェント")}}は既定で <code><kbd></code> 要素の中身を等幅フォントで表示しますが、 HTML 標準で規定されているものではありません。</p>
<div>{{EmbedInteractiveExample("pages/tabbed/kbd.html", "tabbed-shorter")}}</div>
<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div>
<p><code><kbd></code> は {{HTMLElement("samp")}} (サンプル出力) 要素の中で様々な組み合わせの入れ子が行われ、様々な形の入力や視覚的な合図に基づいた入力を表現します。</p>
<table class="properties">
<tbody>
<tr>
<th scope="row"><a href="/ja/docs/Web/HTML/Content_categories">コンテンツカテゴリ</a></th>
<td><a href="/ja/docs/Web/HTML/Content_categories#Flow_content">フローコンテンツ</a>, <a href="/ja/docs/Web/HTML/Content_categories#Phrasing_content">記述コンテンツ</a>, 知覚可能コンテンツ</td>
</tr>
<tr>
<th scope="row">許可されている内容</th>
<td><a href="/ja/docs/Web/HTML/Content_categories#Phrasing_content">記述コンテンツ</a></td>
</tr>
<tr>
<th scope="row">タグの省略</th>
<td>{{no_tag_omission}}</td>
</tr>
<tr>
<th scope="row">許可されている親要素</th>
<td><a href="/ja/docs/Web/HTML/Content_categories#Phrasing_content">記述コンテンツ</a>を受け入れるすべての要素</td>
</tr>
<tr>
<th scope="row">暗黙の ARIA ロール</th>
<td><a href="https://www.w3.org/TR/html-aria/#dfn-no-corresponding-role">対応するロールなし</a></td>
</tr>
<tr>
<th scope="row">許可されている ARIA ロール</th>
<td>すべて</td>
</tr>
<tr>
<th scope="row">DOM インターフェイス</th>
<td>{{domxref("HTMLElement")}}</td>
</tr>
</tbody>
</table>
<h2 id="Attributes" name="Attributes">属性</h2>
<p>この要素には<a href="/ja/docs/Web/HTML/Global_attributes">グローバル属性</a>以外の属性はありません。</p>
<h2 id="Usage_notes" name="Usage_notes">使用上のメモ</h2>
<p>他の要素 <code><kbd></code> と組み合わせることで、もっと具体的なシナリオを表現できる場合があります。</p>
<ul>
<li>他の <code><kbd></code> 要素の中で更に <code><kbd></code> 要素を使用すると、もっと大きい入力の中における、実際のキー入力またはその他の入力単位を表します。以下の{{anch("Representing keystrokes within an input", "入力時のキー操作の表現")}}を参照してください。</li>
<li>{{HTMLElement("samp")}} 要素の中で <code><kbd></code> 要素を使用すると、システムからユーザーにエコーバックされた入力を表します。以下の{{anch("Echoed input", "入力のエコーバック")}}の例を参照してください。</li>
<li>一方、 <code><kbd></code> 要素の中で <code><samp></code> 要素を使用すると、メニューやメニュー項目の名前、画面上に表示されているボタンの名前など、システムによって表示された文字列に基づく入力を表します。以下の{{anch("Representing onscreen input options", "画面上に表示された入力の選択肢の表現")}}を参照してください。</li>
</ul>
<div class="note">
<p>専用のスタイルを定義して、 <code><kbd></code> 要素における既定のフォントの選択を上書きすることができますが、ユーザー設定によっては CSS より優先されることがあります。</p>
</div>
<h2 id="Examples" name="Examples">例</h2>
<h3 id="Basic_example" name="Basic_example">基本的な例</h3>
<pre class="brush: html notranslate"><p>コマンド "mycommand" のドキュメントを参照するには <kbd>help mycommand</kbd>
コマンドを使用してください。</p>
</pre>
<p>{{ EmbedLiveSample('Basic_example', 350, 80) }}</p>
<h3 id="Representing_keystrokes_within_an_input" name="Representing_keystrokes_within_an_input">入力時のキー操作の表現</h3>
<p>複数のキー操作から成る入力を表現したい場合、複数の <code><kbd></code> 要素を重ねて、外側の <code><kbd></code> 要素で入力全体を表し、内側の <code><kbd></code> で入力時のそれぞれのキー操作を表すことができます。</p>
<h4 id="Unstyled" name="Unstyled">スタイルなし</h4>
<p>最初に、 HTML だけでどのように見えるかを見てみましょう。</p>
<h5 id="HTML">HTML</h5>
<pre class="brush: html notranslate"><p>キーボードショートカットの
<kbd><kbd>Ctrl</kbd>+<kbd>N</kbd></kbd> を使用して新規文書を作成することもできます。</p></pre>
<p>ここでは外側の <code><kbd></code> 要素でキー入力操作全体を囲み、それぞれのキーの組み合わせを記述するために、それぞれのキーを囲んでいます。</p>
<div class="blockIndicator note">
<p>常にこのように囲む必要はありません。外側の <code><kbd></code> 要素を省略して簡略化しても構いません。言い換えれば、単に <code><kbd>Ctrl</kbd>+<kbd>N</kbd></code> と表現するのも完全に有効です。</p>
<p>しかし、スタイルシートによっては、このように重ねて囲んだ方が便利だと感じられるかもしれません。</p>
</div>
<h5 id="Result" name="Result">結果</h5>
<p>スタイルシートを適用しないと、出力結果は次のように見えます。</p>
<p>{{EmbedLiveSample("Unstyled", 650, 80)}}</p>
<h4 id="With_custom_styles" name="With_custom_styles">専用スタイル付き</h4>
<p>いくらか CSS を追加して、もっと分かりやすくすることができます。</p>
<h5 id="CSS">CSS</h5>
<p>キーボードのキーを表示する際に適用できるスタイル、 <code><kbd></code> 要素の <code>key</code> を定義します。</p>
<pre class="brush: css notranslate">kbd.key {
border-radius: 3px;
padding: 1px 2px 0;
border: 1px solid black;
}</pre>
<h5 id="HTML_2">HTML</h5>
<p>それから HTML を更新して、このクラスを出力中のキーに使用するように表現します。</p>
<pre class="brush: html notranslate"><p><kbd><kbd class="key">Ctrl</kbd>+<kbd class="key">N</kbd></kbd> を押して新規文書を作成することもできます。</p></pre>
<h5 id="Result_2" name="Result_2">結果</h5>
<p>結果は私たちが求めているものです。</p>
<p>{{EmbedLiveSample("With_custom_styles", 650, 80)}}</p>
<h3 id="Echoed_input" name="Echoed_input">入力のエコーバック</h3>
<p>{{HTMLElement("samp")}} 要素内で <code><kbd></code> 要素を使用すると、システムからエコーバックされた入力を表現することができます。</p>
<pre class="brush: html notranslate"><p>構文エラーが発生すると、このツールは確認のために
あなたが入力したコマンドを出力します。</p>
<blockquote>
<samp><kbd>custom-git ad my-new-file.cpp</kbd></samp>
</blockquote></pre>
<p>{{EmbedLiveSample("Echoed_input", 650, 100)}}</p>
<h3 id="Representing_onscreen_input_options" name="Representing_onscreen_input_options">画面上に表示された入力の選択肢の表現</h3>
<p><code><kbd></code> 要素の中で <code><samp></code> 要素を使用すると、メニューやメニュー項目の名前や、画面上に表示されているボタンの名前など、システムが表示した文字列に基づく入力を表すことができます。</p>
<p>例えば、「ファイル」メニューの中の「新規文書」を選択する方法を HTML で表現すると、このようになります。</p>
<pre class="brush: html notranslate"><p>新規ファイルを作成するには、メニューの
<kbd><kbd><samp>ファイル</samp></kbd>⇒<kbd><samp>新規文書</samp></kbd></kbd>
を選択して下さい。</p>
<p>新しいファイルの名前を入力したら、 <kbd><samp>OK</samp></kbd>
ボタンを押して確認することを忘れないでください。</p></pre>
<p>これはいくらか興味深い組み合わせです。メニューの選択肢を記述するために、入力全体を <code><kbd></code> 要素で囲んでいます。それからその中で、メニューとメニュー項目の名前を <code><kbd></code> 及び <code><samp></code> の中に入れ、画面上の部品を選択する入力であることを示しています。</p>
<h4 id="Result_3" name="Result_3">結果</h4>
<p>{{EmbedLiveSample("Representing_onscreen_input_options", 650, 120)}}</p>
<h2 id="Specifications" name="Specifications">仕様書</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">仕様書</th>
<th scope="col">状態</th>
<th scope="col">備考</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-kbd-element', '<kbd>')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('HTML5 W3C', 'textlevel-semantics.html#the-kbd-element', '<kbd>')}}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
<td>音声入力や個々のキー入力など、どのようなユーザ入力も含むように拡張</td>
</tr>
<tr>
<td>{{SpecName('HTML4.01', 'struct/text.html#h-9.2.1', '<kbd>')}}</td>
<td>{{Spec2('HTML4.01')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div>
<p>{{Compat("html.elements.kbd")}}</p>
<h2 id="See_also" name="See_also">関連情報</h2>
<ul>
<li>{{htmlelement("code")}}</li>
</ul>
|