UIイベント KeyboardEvent code値

W3C勧告,

この文書の詳細
このバージョン:
https://www.w3.org/TR/2025/REC-uievents-code-20250422/
最新公開バージョン:
https://www.w3.org/TR/uievents-code/
編集者草案:
https://w3c.github.io/uievents-code/
履歴:
https://www.w3.org/standards/history/uievents-code/
実装報告:
https://w3c.github.io/uievents-code/impl-report.html
フィードバック:
GitHub
編集者:
(Google)
(招待専門家)
正誤表:
正誤表があります.

関連情報 翻訳.


概要

この仕様書は、UI Events仕様書[UIEvents]の一部として定義されているKeyboardEvent.code属性の値を定義します。 code値には、ユーザーが押している物理的なキーボードのキーを識別するために使用できるキ―イベントに関する情報が含まれています。

この文書のステータス

このセクションは、本書が公開された時点での文書の状態について説明します。 現在のW3C 公開文書およびこの技術レポートの最新版は、W3C 技術レポート索引(https://www.w3.org/TR/)で確認できます。

この文書はWeb Applications Working Groupによって、勧告トラックを使用して勧告として公開されました。

W3C は、この仕様書をウェブ標準として広く展開することを推奨しています。

W3C 勧告は、十分な合意形成を経てW3Cとその会員によって承認され、作業部会メンバーによるロイヤリティフリーライセンスのコミットメントがあります。

この文書は、W3C特許ポリシーの下で運営されるグループによって作成されました。 W3C は、グループの成果物に関連してパテント開示の公開リストを管理しています。そのページには特許開示に関する手順も記載されています。個人が本質的な請求を含むと信じる特許の実際の知識を有する場合、その情報はW3C特許ポリシーの第6章に従って開示しなければなりません。

この文書は、2023年11月3日 W3C プロセス文書により管理されています。

1. はじめに

本書では、さまざまなキーボードレイアウトの概要を示し、各キーで使うべきcode 値を定義します。[UIEvents-key]で説明されているkey 値とは異なり、code 値はキーの物理的な位置のみを基にしており、ユーザーの現在のロケールによって変化しません。

この仕様は以前、DOM Level 3 KeyboardEvent code Valuesというタイトルでした。

1.1. 表記規則

この仕様では以下の規則を使用します:

2. キーボードレイアウト

このセクションは規定的ではありません。

英数字キーボードは、ユーザーがキーボードイベントを生成する最も一般的な手段です。このセクションでは標準キーボードとその物理レイアウトの概要を示します。

2.1. 標準キーボードレイアウト

このセクションでは一般的に入手可能なキーボードの物理レイアウトについて説明します。

2.1.1. キーボードセクション

キーボードレイアウトについて説明する際、標準キーボードを複数のセクションに分け、各行にラベルを付けると便利です。

The five general sections of a standard keyboard
標準キーボードの5つの一般的なセクション

キーボードのセクションは以下の通りです:

キーを識別しやすくするために、キーボードの行は下から「A」行、上に向かって「E」行と呼ばれます。ファンクションセクションのキーの行は「K」行とされます。これらの行名は[ISO9995-1]で与えられたものと一致しています。

なお、多くのキーボード(最新・レガシーとも)には、上記のセクションに当てはまらない追加キーが存在します。これらのキーの一部は、§ 3.6 メディアキーで説明されています。

2.1.2. 標準「101」キーボードレイアウト

標準「101」キーボード(一般に「USレイアウト」と呼ばれる)は、唯一"Backslash"キー(ラベル\|)があり、単独行のEnterキーの上に配置されています。他のレイアウトではこのキーが省略され、Enterキーが2行分の大きなキーになります。

Standard '101' keyboard layout
標準「101」キーボードレイアウト(未修飾のUSキー値表示)

現代の標準「101」レイアウトキーボードは実際には104キーがあり、英数字セクションに61キー、 テンキーコントロールパッド矢印パッドファンクションセクションに43キーあります。「101」名称はこのキーボードに本来101キーがあった時代に由来します。Meta2キー(OS固有ラベル)、Menuキーの追加により合計104キーとなりました。

2.1.3. 代替「101」キーボードレイアウト

代替「101」キーボードは大きなEnterキーを採用し、 Backspaceキーを小さくして"IntlYen"キー(標準101の"Backslash"を置換)スペースを作っています。"IntlYen"の名前は日本語配列の¥(円記号)キーに由来し、ロシア語配列では\/になります。

Alternate '101' keyboard layout
代替「101」キーボードレイアウト(未修飾のロシア語キー値表示)

現代の代替「101」レイアウトキーボードも104キー:英数字セクションに61キー、テンキーコントロールパッド矢印パッドファンクションセクションに43キーが含まれます。

2.1.4. 標準「102」キーボードレイアウト

標準「102」キーボードはヨーロッパ全体で普及しており、「101」レイアウトにはない"IntlBackslash"キー(UKキーボードでは\|)が左シフトキーの隣に追加されています。

2つめのキー(UKでは#~)はEnterキーの下に部分的に配置されており、このキーは"Backslash"としてエンコードされ、「101」配列の\|と同じコードを持ちます。[USB-HID]によると、US \|とUK #~は実際には別々のキーですが、両方が共存するキーボードが存在しないため、多くのプラットフォームでは同じスキャンコードとなり、区別しづらくなっています。そのため、"Backslash"コードが両方のキーに使われています。

Standard '102' keyboard layout
標準「102」キーボードレイアウト(未修飾のUKキー値表示)

現代の「102」レイアウトキーボードは105キー:英数字セクションに62キー、テンキーコントロールパッド矢印パッドファンクションセクションに43キーがあります。

2.1.5. 韓国語「103」キーボードレイアウト

韓国語「103」キーボードは代替101レイアウトをベースに、スペースバーの両側に韓国語入力用のキーを2つ追加しています。これらのキーは"Lang2"(ハンジャ、ラベル한자 hanja)と"Lang1"(ハングルモード、ラベル한/영 han/yeong)です。

Korean '103' keyboard layout
韓国語「103」キーボードレイアウト(未修飾の韓国語キー値表示)

現代の「103」レイアウトキーボードは106キー:英数字セクションに63キー、テンキーコントロールパッド矢印パッドファンクションセクションに43キーです。

2.1.6. ブラジル「104」キーボードレイアウト

ブラジルの「104」レイアウトは4つの新しいキーを追加します。「102」レイアウト由来の"Backslash""IntlBackslash"、さらに"IntlRo"(右シフトキー隣)とテンキー上の追加キーがあります。新設キーは"NumpadComma"(千の区切り記号用)で、ブラジル配列では."NumpadDecimal",のラベルです。

Standard '104' keyboard layout
標準「104」キーボードレイアウト(未修飾のブラジルキー値表示)

現代の「104」レイアウトキーボードは107キー:英数字セクションに63キー、テンキーコントロールパッド矢印パッドファンクションセクションに44キー。一部ブラジルキーボードでは追加テンキーがなく、106キーの場合もあります。

2.1.7. 日本語「106」キーボードレイアウト

日本語「106」キーボードレイアウトは3つの新設キー"IntlYen"(ラベル¥_)、"Backslash"(ラベル]む)、"IntlRo"(ラベル\ろ)を追加します。またスペースバーを短くして、入力モードキー3種"NonConvert"(ラベル無変換 muhenkan)、"Convert"(ラベル変換 henkan)、"KanaMode"(ラベルカタカナ/ひらがな/ローマ字 katakana/hiragana/romaji)があります。

Standard '106' keyboard layout
標準「106」キーボードレイアウト(未修飾の日本語キー値表示)

現代の「106」レイアウトキーボードは109キー:英数字セクションに66キー、テンキーコントロールパッド矢印パッドファンクションセクションに43キー。

2.1.8. Appleキーボードレイアウト

一般にAppleキーボードはPCキーボードと同じレイアウトですが、以下の図に示すような相違点があります。

Apple extended keyboard layout
Apple拡張キーボードレイアウト(未修飾の英語キー値表示)

この図では、緑色のキーは新しい場所に移動されたもので、青色のキーは追加されたキーを示します。

2.1.9. ノートパソコン用キーボードレイアウト

ノートパソコンキーボードはスペースが限られているため、必要なキーを全て収めるために物理レイアウトの調整が必要となる場合が多いです。記述系キー英数字セクションで保持される傾向にありますが、他のセクションは他のキーに統合されたり、取り除かれることがあります。

Apple laptop keyboard layout
Appleノートキーボードレイアウト

このAppleノートキーボードでは、右側のコントロールキーが、半高さの矢印キーや左側のFnキーのスペースのために取り除かれています。

Sample PC laptop keyboard layout
PCノートキーボードのサンプルレイアウト

PCノートキーボードは大きな違いがありますが、このサンプルでは一般的な要素を示しています。コントロールパッドキーは右側に追加され、矢印パッドキーは下側に配置されています。右Shiftキーは上矢印キーのスペース確保のため短くなり、右Metaキーは省略されることが多いです。

2.1.10. その他のロケール用キーボードレイアウト

その他のロケールは、既存のレイアウトで始まり、キートップやキー割り当てを変更することで適応されるため、この仕様書で明示的には説明されていません。

これらのキーボードは、新しい物理キーを追加しないので、明示的な文書化は不要です。

これらのキーボードは、通常「101」(標準または代替)あるいは「102」レイアウトを元にしています。例えば、一般的なアラビア語、キリル文字、ギリシャ語、ヒンディー語、クメール語、タイ語キーボードはすべて「101」または「102」レイアウトが基になります。

2.2. モバイルキーパッド

コンテンツ作成者がモバイルキーパッドの機械的レイアウトに依存したい場合、この仕様では[ISO9995-8]で定義されたテンキー配列とUnicode文字の2次割り当て(U+0061U+007A"a""z")がキー29に割り当てられた国際的な利用に適したレイアウトを推奨します。

このキーパッドレイアウトおよび文字分布は英語デバイス向けであり、多くのユーザーのキーパッドや設定とは一致しません。コンテンツ作成者は特定の構成に依存せず、国際化とローカライズ可能なコンテンツを作成すべきです。

Mobile keypad layout
汎用モバイルキーパッドの図

2.3. メディアリモコン

多くのキーボードにはメディア操作用の特殊キーがあり、テレビ等の多くのメディア機器はウェブ対応しています。ハイブリッドなキーボード/リモコン機器が一般化しつつあり、この仕様ではリモコンによくあるボタンも従来のキーボードキーに加えて定義します。

小型化により、リモコンのキー(ボタン)はコンテンツの状況に応じて異なる機能を持つモーダルな場合が多く、複数回押すことで異なる状態に切り替えるトグルキーもあります。これらのリモコンボタンは修飾状態を持たず、PlayPauseUpMenuExitなど単一機能に割り当てられる傾向があります。

A sample media remote control
メディアリモコンの図(サンプル)

2.4. 仮想キーボード及びコード入力キーボード

仮想キーボードは、さまざまな配置が可能なソフトウェアベースのキーセットで、主にタッチスクリーン機器で使われます。アルファベット・数字・記号のようにモード切り替え可能であり、物理的な制約がないため絵文字やその他の記号まで幅広い文字を提供できます。可能な限り、仮想キーボードも通常のキーボードイベントや値を出力することで、コンテンツ作成の容易さと既存コンテンツとの互換性を維持すべきです。

コード入力キーボード(コードキーセット、コードキーボード)は、キーを複数同時や順番に押すことで値を出力する入力機器で、通常は片手用など少ないキーで文字やコマンドを全て出すためのものです。コードキーボードには追加モードキーで値を切り替えるものもあり、キーの組み合わせや入力方法は多数ですが、最終的に生成される値は本仕様で説明される範囲と一致すべきです。

こうしたモーダルな仮想・特殊キーボードのためには、key の値として、"Alphanumeric""CapsLock""NumLock""SymbolLock" などモード切替キーを割り当てることが推奨されます。

3. キーボードイベント code 値の一覧表

このセクションでは、code 値として使うのに適切な値の一覧を定義します。

key code 属性値は、この仕様のいずれかの表の"KeyboardEvent.code"列で示されている値すべてを指します。

このセクションの各表には「必須」列があり、その値が準拠実装で必須かどうかを示します。「必須」列が「No」の項目は任意であり、特殊なキーボード(マルチメディアやレガシーなど)対応で使用可能です。

注: この仕様で「必須」とされる値の一部はすべてのプラットフォーム・機器で利用可能とは限りません。例えば、MacキーボードにはInsertキーがなく、標準PCキーボードにはHelpキーがありません。

本仕様で「必須」となっているキーについては、KeyboardEvent インターフェースの準拠実装は、該当キーがプラットフォームで利用可能なら必ず正しい値を返さなければなりません。

注: この値一覧は可能な限り網羅的にしていますが、新しい入力機器の登場に伴い定期的な追加が必要となります。利用者エージェント独自のkey code 属性値を定義するのは複数エージェント間で一貫しないため、バグ報告を行って本仕様を更新するようにすべきです。

3.1. 英数字セクション

英数字セクションはキーボードの主要部分で、 キーは大きく2つのカテゴリに分けられます:記述系キー(レイアウトにより意味が変わる)と機能キー(ほぼすべてのレイアウトで共通)です。

3.1.1. 記述系キー

記述系キーは現在のロケールやキーボードレイアウトによって意味(つまり異なるkey 値)を生成するキーです。

記述系キー
記述系キー英数字セクション内)

この図は各種キーボードに存在する全ての記述系キー(青・緑で表示)を統合した仮想キーボードを示します。青いキーは標準キーボード全てに、緑のキーは一部キーボードのみに存在します。

"Digit2""KeyQ"キーは記述系キーであり、USロケールでは"2""q"、フランス語ロケールでは"é""a"を生成します。

各キーに表示される名前は、そのキーに割り当てられたcode です。可能な限りcode 名は、US配列のその位置のキー名(USキーボードレイアウト)に基づき、[USB-HID]の命名規則に従います。 US配列以外のキーにはUKや日本語レイアウトの名前を用います。

この図には2つの"Backslash"キーがあります:101キー配列のRow D終端に大きなもの、102・104・106キー配列のRow Cの"Quote""Enter"の間に小さなもの。キーボードレイアウトにはいずれか1つのみ配置されます。

英数字セクションの記述系キーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"Backquote" Yes USキーボード:`~。日本語キーボード:半角/全角/漢字hankaku/zenkaku/kanji
"Backslash" Yes US配列(101キー):\|。また、102・104・106配列ではRow Cの"Enterの間のキー。UK(102)キーボードではラベル#~
"BracketLeft" Yes USキーボード:[{
"BracketRight" Yes USキーボード:]}
"Comma" Yes USキーボード:,<
"Digit0" Yes USキーボード:0)
"Digit1" Yes USキーボード:1!
"Digit2" Yes USキーボード:2@
"Digit3" Yes USキーボード:3#
"Digit4" Yes USキーボード:4$
"Digit5" Yes USキーボード:5%
"Digit6" Yes USキーボード:6^
"Digit7" Yes USキーボード:7&
"Digit8" Yes USキーボード:8*
"Digit9" Yes USキーボード:9(
"Equal" Yes USキーボード:=+
"IntlBackslash" Yes ShiftキーとZキーの間。UKではラベル\|
"IntlRo" Yes Shiftキーと/キーの間。日本語キーボードでは\ろro)。
"IntlYen" Yes =キーとBackspaceキーの間。日本語キーボードでは¥yen)、ロシア語キーボードでは\/
"KeyA" Yes USキーボード:a、AZERTY(例:仏)ではq
"KeyB" Yes USキーボード:b
"KeyC" Yes USキーボード:c
"KeyD" Yes USキーボード:d
"KeyE" Yes USキーボード:e
"KeyF" Yes USキーボード:f
"KeyG" Yes USキーボード:g
"KeyH" Yes USキーボード:h
"KeyI" Yes USキーボード:i
"KeyJ" Yes USキーボード:j
"KeyK" Yes USキーボード:k
"KeyL" Yes USキーボード:l
"KeyM" Yes USキーボード:m
"KeyN" Yes USキーボード:n
"KeyO" Yes USキーボード:o
"KeyP" Yes USキーボード:p
"KeyQ" Yes USキーボード:q、AZERTY(仏など)ではa
"KeyR" Yes USキーボード:r
"KeyS" Yes USキーボード:s
"KeyT" Yes USキーボード:t
"KeyU" Yes USキーボード:u
"KeyV" Yes USキーボード:v
"KeyW" Yes USキーボード:w、AZERTY(仏など)ではz
"KeyX" Yes USキーボード:x
"KeyY" Yes USキーボード:y、QWERTZ(独など)ではz
"KeyZ" Yes USキーボード:z、AZERTY(仏など)ではw、QWERTZ(独など)ではy
"Minus" Yes USキーボード:-_
"Period" Yes USキーボード:.>
"Quote" Yes USキーボード:'"
"Semicolon" Yes USキーボード:;:
"Slash" Yes USキーボード:/?

3.1.2. 機能キー

機能キー(後述のファンクションキーとは異なる)は、英数字セクション内で一般的な編集機能(ShiftTabEnterBackspaceなど)を提供し、ほとんどのロケールで共通です。例外的な場合を除き、レイアウトによって意味は変化しません。

標準的な機能キーセット
標準的な機能キー英数字セクション内)

"AltRight"キー(緑)は、唯一機能キーでもロケールにより生成するkey 値が異なります。一部ロケールでは"Alt"、他では"AltGraph"になります。

英数字セクションの機能キーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"AltLeft" Yes AltOption
"AltRight" Yes AltOption。多くのレイアウトではラベルAltGr
"Backspace" Yes Backspace。Apple配列ではラベルDelete
"CapsLock" Yes CapsLock
"ContextMenu" Yes アプリケーション・コンテキストメニューキー(通常、右Metaキーと右Controlキーの間)
"ControlLeft" Yes Control
"ControlRight" Yes Control
"Enter" Yes Enter。Apple配列ではラベルReturn
"MetaLeft" Yes Windows、Command他OSシンボルキー
"MetaRight" Yes Windows、Command他OSシンボルキー
"ShiftLeft" Yes Shift
"ShiftRight" Yes Shift
"Space" Yes (スペース)
"Tab" Yes Tab

一部キーボード(特に日本語・韓国語)では、スペースバーが小さくされ、その分Row A(最下行)に追加キーが設けられます。これらのキーは主に入力モードを変更します。位置が共通でも、対応するcode は日本語・韓国語で異なります。

下段機能キーの比較
各種キーボードの下段機能キー比較
日・韓キーボードで見られる機能キーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"Convert" Yes 日本語:変換henkan
"KanaMode" Yes 日本語:カタカナ/ひらがな/ローマ字katakana/hiragana/romaji
"Lang1" No 韓国語:HangulMode 한/영han/yeong
日本語(Mac):かなkana
"Lang2" No 韓国語:Hanja 한자hanja
日本語(Mac):英数eisu
"Lang3" No 日本語(ワープロ):カタカナ
"Lang4" No 日本語(ワープロ):ひらがな
"Lang5" No 日本語(ワープロ):全角/半角
"NonConvert" Yes 日本語:無変換muhenkan

Apple配列では、最下段の一部キーが除かれ、順序も異なります。

3.2. コントロールパッドセクション

コントロールパッドは、キーボード上でナビゲートや編集操作を行う(一部、通常6個)キーの集合です。例えば、HomePageUpInsertなどがあります。

標準的なコントロールパッドレイアウト
標準的なコントロールパッドレイアウト
コントロールパッドセクションに含まれるキーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"Delete" Yes 。前方削除キー。Appleキーボードでは、キーボード本体にDeleteと記載されたキーは"Backspace"として扱う。
"End" Yes Endまたは
"Help" Yes Help。標準PCキーボードには搭載されていません。
"Home" Yes Homeまたは
"Insert" Yes InsertまたはIns。Appleキーボードには搭載されていません。
"PageDown" Yes Page DownPgDn、または
"PageUp" Yes Page UpPgUp、または

Appleキーボード等に存在するFnキーのcode 値は、この後のファンクションセクションで定義します。

3.3. 矢印パッドセクション

矢印パッドには上下左右の4つの矢印キーが含まれます。キーは一般的に「逆T字型」に配置されます。

標準的な矢印パッドレイアウト
標準的な矢印パッドレイアウト
矢印パッドセクションに含まれるキーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"ArrowDown" Yes
"ArrowLeft" Yes
"ArrowRight" Yes
"ArrowUp" Yes

3.4. テンキーセクション

テンキーは、計算機や携帯電話のようなグリッド状に配置されたキーの集合です。このセクションには数値や演算キーが含まれます。しばしば、NumLockキーがあり、キーの機能が標準の数字入力からコントロールパッド矢印パッドの模倣に切り替わります。ノートPCや省スペースキーボードでは省略されることが多いです。

キーパッドテンキーの別称です。

標準的なテンキーレイアウト
標準的なテンキーレイアウト

このセクションのcode 値は、電話機のキーパッドやリモコン機器のグリッド配置の数字キーにも使用されます。

標準的なモバイルキーパッドレイアウト
標準的なモバイルキーパッドレイアウト

標準的なテンキーには、括弧や演算子、16進数記号、計算機機能(Backspaceなど)の追加キーが存在する場合があります。代表的な追加キーは下表に記載しています。

テンキーセクションに含まれるキーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"NumLock" Yes Macでは、"NumLock"コードはテンキーClearキーに使用する。
"Numpad0" Yes キーボード:0 Ins
電話機・リモコン:0
"Numpad1" Yes キーボード:1 End
電話機・リモコン:1または1 QZ
"Numpad2" Yes キーボード:2 ↓
電話機・リモコン:2 ABC
"Numpad3" Yes キーボード:3 PgDn
電話機・リモコン:3 DEF
"Numpad4" Yes キーボード:4 ←
電話機・リモコン:4 GHI
"Numpad5" Yes キーボード:5
電話機・リモコン:5 JKL
"Numpad6" Yes キーボード:6 →
電話機・リモコン:6 MNO
"Numpad7" Yes キーボード:7 Home
電話機・リモコン:7 PQRSまたは7 PRS
"Numpad8" Yes キーボード:8 ↑
電話機・リモコン:8 TUV
"Numpad9" Yes キーボード:9 PgUp
電話機・リモコン:9 WXYZまたは9 WXY
"NumpadAdd" Yes +
"NumpadBackspace" No Microsoft Natural Keyboardに搭載。
"NumpadClear" No CまたはAC(All Clear)。テンキーClearNumLockキーと別々に存在する場合にも使用。MacではClearキーは常に"NumLock"として扱う。
"NumpadClearEntry" No CE(Clear Entry)
"NumpadComma" No ,(千の区切り記号)。ロケールによっては区切りが「.」(例:ブラジル)となり、このキーが.を生成する場合あり。
"NumpadDecimal" Yes . Del。ロケールによっては区切りが「,」(例:ブラジル)となり、このキーが,を生成する場合あり。
"NumpadDivide" Yes /
"NumpadEnter" Yes
"NumpadEqual" No =
"NumpadHash" No 電話機・リモコン:#。通常は9キーの下、0キーの右。
"NumpadMemoryAdd" No M+ 現在のエントリをメモリ値に加算。
"NumpadMemoryClear" No MC メモリ値の消去。
"NumpadMemoryRecall" No MR メモリ値で現在のエントリを置換。
"NumpadMemoryStore" No MS 現在のエントリでメモリ値を置換。
"NumpadMemorySubtract" No M- メモリ値から現在のエントリを減算。
"NumpadMultiply" Yes キーボード:*。演算専用のテンキー+-*/)で使用。
電話機・リモコンの*には"NumpadStar"を用いる。
"NumpadParenLeft" No (。Microsoft Natural Keyboard搭載。
"NumpadParenRight" No )。Microsoft Natural Keyboard搭載。
"NumpadStar" No 電話機・リモコン:*。通常は7キーの下、0キーの左。
テンキーの演算子としては"NumpadMultiply"を使用。
"NumpadSubtract" Yes -

テンキーがここに掲載されていない追加キーを持つ場合は、"Numpad"で始めてキーの機能を付加したcode 値文字列を作成してください。

3.5. ファンクションセクション

ファンクションセクションはキーボード上部(英数字セクションの上)にあり、ファンクションキーや特殊キー(例: EscPrint Screen)が含まれます。

ファンクションキーF1F12などで、アプリケーションやOSが任意の機能や動作を割り当てることができます。

一部キーボード(特にノートPC等)ではF1F12に他の主機能(画面輝度や音量など)が割り当てられており、その場合ファンクションキーとして動作させるにはFnキーの同時押しが必要です。主機能はメーカーごとに異なるためcode は常にファンクションキー名に設定されます。

ファンクションセクションに含まれるキーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"Escape" Yes Escまたは
"F1" Yes F1
"F2" Yes F2
"F3" Yes F3
"F4" Yes F4
"F5" Yes F5
"F6" Yes F6
"F7" Yes F7
"F8" Yes F8
"F9" Yes F9
"F10" Yes F10
"F11" Yes F11
"F12" Yes F12
"Fn" No Fn。多くの場合ハードウェアキーで独立したコードは発生しません。通常ファンクションセクションに配置されませんが、関連のため表に記載しています。
"FnLock" No FLockまたはFnLock。ファンクションロックキー。Microsoft Natural Keyboard搭載。
"PrintScreen" Yes PrtScr SysRqまたはPrint Screen
"ScrollLock" Yes Scroll Lock
"Pause" Yes Pause Break

12を超えるファンクションキーがあるキーボードでは、code 値は「F」+番号("F13""F14""F15"…)のパターンに従います。

AppleキーボードではファンクションセクションEjectPowerキーが含まれる場合があります。これらのcode 値は§ 3.6 メディアキーで定義されています。

3.6. メディアキー

メディアキーはキーボードに追加された、メディア関連の機能(再生、停止、音量調整など)を提供する追加キーです。これらのキーはキーボード上に標準的な配置がないため、製造元によってキーの並びやセットが大きく異なります。

メディアキーは通常の入力キーと外観が異なり、キーボード上に窪んで配置されている場合があります。

ノートPCのキーボードでは、これらのキーがファンクションキーと統合されていることが多く、メディアキー機能が主機能、Fnキーを同時に押すことでファンクションキーとして動作します。このような場合、code の値は、ファンクションキー"F1""F12")の値に合わせるべきです。

メディアキーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"BrowserBack" No 一部ノートPCでは、キーの左側に配置
"BrowserFavorites" No
"BrowserForward" No 一部ノートPCでは、キーの右側に配置
"BrowserHome" No
"BrowserRefresh" No
"BrowserSearch" No
"BrowserStop" No
"Eject" No Ejectまたは。一部Appleキーボードではファンクションセクションに配置。
"LaunchApp1" No キーボード上ではMy Computerとラベルされている場合がある
"LaunchApp2" No キーボード上ではCalculatorとラベルされている場合がある
"LaunchMail" No
"MediaPlayPause" No
"MediaSelect" No
"MediaStop" No
"MediaTrackNext" No
"MediaTrackPrevious" No
"Power" No 一部Appleキーボードではファンクションセクション上でEjectキーの代わりとして配置
"Sleep" No
"AudioVolumeDown" No
"AudioVolumeMute" No
"AudioVolumeUp" No
"WakeUp" No

3.7. レガシー・非標準および特殊キー

これらのキーは現代の標準キーボードには含まれていません。参考として示します。

レガシー修飾キーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"Hyper" No
"Super" No
"Turbo" No

レガシープロセス制御キーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"Abort" No
"Resume" No
"Suspend" No

レガシー編集キーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"Again" No SunのUSBキーボードに搭載
"Copy" No SunのUSBキーボードに搭載
"Cut" No SunのUSBキーボードに搭載
"Find" No SunのUSBキーボードに搭載
"Open" No SunのUSBキーボードに搭載
"Paste" No SunのUSBキーボードに搭載
"Props" No SunのUSBキーボードに搭載
"Select" No SunのUSBキーボードに搭載
"Undo" No SunのUSBキーボードに搭載

以下のキーは非標準の国際キーボードで見られる場合があります。

国際キーボードで見られるキーのcode値一覧
KeyboardEvent code 必須 備考(参考情報)
"Hiragana" No 一部日本語ワープロキーボード専用のひらがなキー用
"Katakana" No 一部日本語ワープロキーボード専用のカタカナキー用

また、次のcode 値は他に該当するcode がない場合のみ使用してください。仮想キーボード等、物理キーボード配置に対応しない場合に適しています。

特殊code値一覧
KeyboardEvent code 必須 備考(参考情報)
"Unidentified" Yes この値は他に適切な値がない場合に使用してください。

準拠実装は、キーコードを判定できない場合のみ"Unidentified"を使用する必要があります。この値のみ露出する場合、準拠実装とはみなされません。

4. アクセシビリティ

この仕様は単に、code 属性で有効となる値の集合を定義するものであり、アクセシビリティの懸念を生じさせる要素はありません。

FAST checklistは完了しており、本仕様に該当する項目はありません。

FAST checklistの項目「If technology provides internationalization support」に関する注記: この仕様は本質的にキーボード用のcode 値を定義しており、 "ShiftLeft"、"ControlRight"、"AltGr"、"KeyQ"など人が読める名称を提供します。

これら特殊キー値は人が読める文字列として定義されているため、特別キー検出コードが分かりやすくなります。これらの値はユーザー向けに直接表示する意図はありませんが、表示を妨げるわけではありません。表示する場合は、必要に応じて翻訳や適切な表現への置換検討が必要です(例:"Backspace"→フランス語ユーザー向けに"Suppr. arrière"など)。

5. 国際化(I18n)

short I18n checklistは完了しており、次の項目にコメントが必要です:

6. セキュリティに関する考慮事項

Security and Privacy Self-Review Questionairreは完了しており、以下のメモがあります:

code 属性に関するセキュリティ懸念は[UIEvents]仕様で取り扱っています。

7. プライバシーに関する考慮事項

Security and Privacy Self-Review Questionairreは完了しており、以下のメモがあります:

code 属性に関するプライバシー懸念は[UIEvents]仕様で取り扱っています。

8. 謝辞

この仕様策定にあたり、多大な貢献をしてくださったWebAppsワーキンググループの以下の参加者に深く感謝します。

Gary Kacmarcik (Google), Masayuki Nakano (Mozilla)

適合性

文書規則

適合要件は、記述的な断定とRFC 2119の用語を組み合わせて表現されます。 重要語句 “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, “OPTIONAL” は文書の規定部分においてはRFC 2119の定義通りに解釈されます。 ただし可読性のため、この仕様書ではこれらの語句はすべて大文字では記載されていません。

この仕様書の本文は、明示的に非規定・例・注記が記載されたセクションを除き、すべて規定です。[RFC2119]

本仕様の例は “for example” の語句で導入されるか、 規定記述から区別するため class="example" のように このように示されます:

これは情報的な例の一例です。

情報的な注記は “Note” で開始され、 規定記述から区別するため class="note" のように このように示されます:

Note, これは情報的な注記です。

適合アルゴリズム

アルゴリズムとして命令形で表現される要件 (例: "strip any leading space characters" や "return false and abort these steps" など) は導入文で使われているキーワード ("must", "should", "may" など) の意味で解釈されます。

アルゴリズムあるいは手順として表現された適合要件は、最終的な結果が同等であれば、実装方法は問われません。 特に本仕様のアルゴリズムは理解しやすさを重視して設計されており、性能を意図したものではありません。 実装者は最適化することが推奨されます。

索引

この仕様書で定義された用語

参考定義用語

参考文献

標準参考文献

[INFRA]
Anne van Kesteren; Domenic Denicola. Infra Standard. Living Standard. URL: https://infra.spec.whatwg.org/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[UIEvents]
Gary Kacmarcik; Travis Leithead. UI Events. 2024年9月7日. WD. URL: https://www.w3.org/TR/uievents/
[UIEvents-key]
Travis Leithead; Gary Kacmarcik. UI Events KeyboardEvent key Values. 2023年5月30日. CR. URL: https://www.w3.org/TR/uievents-key/

参考情報文献

[ISO9995-1]
ISO/IEC 9995-1:2009 情報技術 -- テキスト及び事務システム用キーボードのレイアウト -- 第1部: キーボードレイアウトの一般原則. URL: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=51645
[ISO9995-8]
ISO/IEC 9995-8:2009 情報技術 -- テキスト及び事務システム用キーボードのレイアウト -- 第8部: テンキーへの文字割当. URL: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=51641
[USB-HID]
USB HID Usage Tables 1.12. URL: https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf