UI 事件 KeyboardEvent key 值

W3C 推荐标准,

关于本文档的更多详细信息
此版本:
https://www.w3.org/TR/2025/REC-uievents-key-20250422/
最新发布版本:
https://www.w3.org/TR/uievents-key/
编辑者草案:
https://w3c.github.io/uievents-key/
历史:
https://www.w3.org/standards/history/uievents-key/
反馈:
GitHub
编辑者:
(Google)
(受邀专家)
实现报告:
https://w3c.github.io/uievents-key/impl-report.html
勘误:
存在勘误.

另见翻译.


摘要

本规范定义了必须用于 KeyboardEventkey 属性的 key 属性值,该属性作为 UI Events 规范 [UIEvents] 的一部分而定义。

本文档状态

本节描述本文档在发布时的状态。当前 W3C 出版物列表以及本技术报告的最新修订版可在 W3C 技术 报告索引中找到,地址为 https://www.w3.org/TR/。

本文档由 Web Applications Working Group 使用 推荐标准轨道 作为推荐标准发布。

W3C 建议将本规范作为 Web 的标准广泛部署。

W3C 推荐标准是一份规范,它在经过广泛的共识 建立之后,得到 W3C 及其成员的认可,并且 工作组成员承诺为实现提供 免版税许可

本文档由一个在 W3C 专利 政策下运作的工作组产出。 W3C 维护着一个 任何专利 披露的公开列表, 这些披露与该组的交付成果有关;该页面还包含 披露专利的说明。实际 知晓某项专利,且个人认为该专利包含 必要权利要求的个人, 必须按照 W3C 专利政策第 6 节披露相关信息。

本文档受 2023 年 11 月 03 日 W3C 流程文档约束。

1. 引言

本文档规定了必须用于 KeyboardEventkey 属性中,用来编码按键 含义的一组有效 key 属性值。请注意,某个特定按键的 key 值会因用户当前的区域设置而异。对于仅基于按键在键盘上的 物理位置且不随区域设置变化的值,请参见 [UIEvents-Code] 中描述的 code

1.1. 样式约定

本规范使用以下约定:

2. 键盘事件 key 属性值

key 属性 值被定义为一个 DOMString,其中 包含以下之一:

key 属性 值必须始终包含一个属于这 两类之一的值(即使该值是 "Unidentified")。

键盘上的多个按键生成相同的 key 属性值是可接受的。例如,在 EN-US 键盘布局上,数字小键盘上的按键 (例如小键盘 1 键)会生成与其非小键盘对应键 (例如键盘主体部分的 1 键)相同的 key 属性 值KeyboardEventlocation 属性可用于确定某个按键是否 来自数字小键盘。

2.1. Unicode 值

几乎每个 Unicode 字符都可以用作有效的 key 属性值,但有一小组 Unicode 字符不得使用。 我们引入 key 字符串的概念,以识别 适合用作 key 属性值的一组 Unicode 字符串。

key 字符串是一个字符串, 包含 0 个或 1 个非控制字符(“基”字符),后跟 0 个或多个 组合 字符。该字符串必须 采用 [UAX15] 中描述的规范化形式 C(NFC)。

非控制 字符是指除属于“Other, Control”(“Cc”)通用类别的字符之外的 任何有效 Unicode 字符。

组合 字符是指位于 “Mark, Spacing Combining”(“Mc”)通用类别中,或具有非零 组合类的任何有效 Unicode 字符。

以下是一些简单 key 字符串的示例:
TabEnter(参见 § 2.1.1 控制字符)之外, 所有非控制空白 Unicode 字符均被视为 有效的 key 字符串
以下是一些包含组合 字符key 字符串示例:

2.1.1. 控制字符

Unicode “Cc”通用类别中的少量字符被支持为 具名 key 属性值。这些具名值 如下:

2.2. 选择 key 属性值

字形修饰键 是以下任意修饰键:ShiftCapsLockAltGr

2.2.1. 选择适当的 key 属性 值

选择适当的 key 属性值以 存储到 KeyboardEventkey 属性中,运行以下步骤:
  1. key 为一个 DOMString,初始设置为 "Unidentified"

  2. 如果存在适合此按键事件的 具名 key 属性值,则

    1. key 设置为该 具名 key 属性值

  3. 否则,如果该按键事件生成了一个有效的 key 字符串,则

    1. key 设置为该 key 字符串值。

  4. 否则,如果该按键事件具有除字形修饰键以外的任何修饰键,则

    1. key 设置为这样一个 key 字符串:如果此事件在移除所有修饰键 (除字形修饰键之外)的情况下被键入, 将会生成该字符串。

  5. 返回 key 作为此按键事件的 key 属性值

在标准美式 键盘上,标记为 Q 的按键的 key 属性值"q"(如果同时按住 Shift 修饰 键,则为 "Q")。

在标准美式 键盘上,Control + Qkey 属性值"q"

在采用右手 Dvorak 键映射的美式键盘上,标记为 Q 的按键的 key 属性值"5"(使用 Shift 修饰键时为 "%")。

在与前一示例相同的 美式 Dvorak 键盘布局上,Control + Qkey 属性值"5"

在 Bolnagri 键盘布局上,标记为 Q 的 按键的 key 属性值是一个包含单个 Unicode 字符 U+200C(ZWNJ 或零宽不连字空格)的字符串。

在采用标准法语映射的 法式 PC 键盘上,^ 键充当组合抑扬符号的 死 键。 此键盘事件的 key 属性 值"Dead"

同样在采用标准法语映射的 法式键盘上,é 键 (对应于美式键盘上的 2 键)的 key 属性值"é"U+00E9)。

在采用标准韩语映射的 韩式 PC 键盘上,Ha/En 键的主要 功能是在韩文和英文输入之间切换。该键作为 具名 key 属性值有一个条目,即 "HangulMode",因此应将其用作 key 属性 值

3. 具名 key 属性值

具名 key 属性值是本规范本节任一表的 key 属性值列中给出的任何值。

此处定义的具名 key 属性值部分基于 Java Platform, Standard Edition 6 API Specification 的 java.awt.event.KeyEvent 接口中的 keycode 集合 [KeyEventJava], 以及 Microsoft .NET Framework 4.0 Class Library 的 System.Windows.Forms.Keys 键枚举 [KeysNet]。本规范中的其他信息 来自 Microsoft 的 WM_APPCOMMAND 消息 [WmAppCommand],以及本文档中注明的 其他更专门的规范。

KeyboardEvent 接口的一致性实现必须支持 这一组用于 key 属性的值, 尽管并非所有值都可能在所有平台或设备上可用。

本规范的未来版本可能会包含此处未列出的 key 值,这些值在本规范发布后已变得常见。

注:虽然已尽一切努力使此值列表尽可能完整, 但随着新的输入设备被引入,仍需定期定义新的值。 不应允许用户代理定义自己的具名 key 属性值 (这些值不太可能在多个用户代理之间保持一致),而应提交 bug, 以便更新本规范。

3.1. 特殊键

无法识别某个按键的实现必须使用 "Unidentified" 作为 key 属性值

key 属性值 必需 典型用途(非规范性)
"Unidentified" 当实现由于硬件、 平台或软件约束而无法识别其他按键值时,使用此按键值。

一致性实现只能在实现没有办法检测按键值时, 才将 "Unidentified" 用作按键值。 对所有键盘事件仅公开此值不得表示其为一致性 实现。

3.2. 修饰键

key 属性值 必需 典型用途(非规范性)
"Alt" Alt(Alternative)键。
此键启用备用 修饰功能,用于解释同时发生或随后发生的键盘输入。
此按键值 也用于 Apple Option 键。
"AltGraph" Alternate Graphics(AltGrAltGraph)键。此键用于启用 ISO Level 3 shift 修饰键 (标准 Shift 键是 level 2 修饰键)。 参见 [ISO9995-1]
"CapsLock" Caps Lock(Capital)键。切换大写字符锁定功能, 用于解释后续键盘输入事件。
"Control" ControlCtrl 键,用于启用 控制修饰功能,以解释同时发生或随后发生的键盘输入。
"Fn" Function switch Fn 键。
同时激活此键 和另一个键会将该键的值更改为备用字符或功能。 此键通常直接由键盘硬件处理,通常不会生成 key 事件。
"FnLock" Function-Lock(FnLockF-Lock) 键。激活此键会切换键盘模式,以将某些按键的值更改为 备用字符或功能。 此键通常直接由键盘硬件处理,通常不会生成 key 事件。
"Meta" Meta 键,用于启用 meta 修饰功能,以解释 同时发生或随后发生的键盘输入。此按键值用于 Windows Logo 键 以及 Apple Command 键。
"NumLock" NumLock 或 Number Lock 键,用于切换数字小键盘模式功能, 以解释后续键盘输入。
"ScrollLock" Scroll Lock 键,用于在滚动模式和光标移动 模式之间切换。
"Shift" Shift 键,用于启用 shift 修饰功能,以解释 同时发生或随后发生的键盘输入。
"Symbol" Symbol 修饰键(用于某些虚拟键盘)。
"SymbolLock" Symbol Lock 键。

旧版修饰键:

key 属性值 必需 典型用途(非规范性)
"Hyper" Hyper 键。
"Super" Super 键。

3.3. 空白键

key 属性值 必需 典型用途(非规范性)
"Enter" Enter 键,用于激活当前 选择或接受当前输入。
此按键值也用于 Return(Macintosh 数字小键盘)键。
此按键值也用于 Android KEYCODE_DPAD_CENTER
"Tab" Horizontal Tabulation Tab 键。

space 或 spacebar 键被编码为 " "

3.4. 导航键

key 属性值 必需 典型用途(非规范性)
"ArrowDown" 向下箭头键,用于向下导航或遍历。(KEYCODE_DPAD_DOWN
"ArrowLeft" 向左箭头键,用于向左导航或遍历。(KEYCODE_DPAD_LEFT
"ArrowRight" 向右箭头键,用于向右导航或遍历。(KEYCODE_DPAD_RIGHT
"ArrowUp" 向上箭头键,用于向上导航或遍历。(KEYCODE_DPAD_UP
"End" End 键,与键盘输入一起使用,用于转到内容末尾(KEYCODE_MOVE_END)。
"Home" Home 键,与键盘输入一起使用,用于转到内容开头(KEYCODE_MOVE_HOME)。
对于移动电话的 Home 键(它转到电话主屏幕),使用 "GoHome"
"PageDown" Page Down 键,用于向下滚动或显示下一页内容。
"PageUp" Page Up 键,用于向上滚动或显示上一页内容。

3.5. 编辑键

key 属性值 必需 典型用途(非规范性)
"Backspace" Backspace 键。此按键值也用于 MacOS 键盘上标记为 Delete 的键。
"Clear" 移除当前选中的输入。
"Copy" 复制当前选区。(APPCOMMAND_COPY
"CrSel" Cursor Select(Crsel)键。
"Cut" 剪切当前选区。(APPCOMMAND_CUT
"Delete" Delete(Del)键。当使用 Fn 键修饰时,此按键值也用于 MacOS 键盘上标记为 Delete 的键。
"EraseEof" Erase to End of Field 键。此键删除从当前光标位置 到当前字段末尾的所有字符。
"ExSel" Extend Selection(Exsel)键。
"Insert" Insert(Ins)键,用于在插入和覆盖输入文本模式之间切换。(KEYCODE_INSERT
"Paste" Paste 键。(APPCOMMAND_PASTE
"Redo" 重做上一个动作。(APPCOMMAND_REDO
"Undo" 撤销上一个动作。(APPCOMMAND_UNDO

3.6. UI 键

key 属性值 必需 典型用途(非规范性)
"Accept" Accept(Commit、OK)键。接受当前选项或输入法序列转换。
"Again" Again 键,用于重做或重复某个动作。
"Attn" Attention(Attn)键。
"Cancel" Cancel 键。
"ContextMenu" 显示应用程序的上下文菜单。此键通常位于右 Meta 键和右 Control 键之间。
"Escape" Esc 键。此键最初用于发起转义 序列,但现在更通常用于退出或“逃离”当前上下文,例如 关闭对话框 或退出全屏模式。
"Execute" Execute 键。
"Find" 打开查找对话框。(APPCOMMAND_FIND
"Help" 打开帮助对话框或切换帮助信息的显示。(APPCOMMAND_HELP, KEYCODE_HELP
"Pause" 暂停当前状态或应用程序(视情况而定)。

不要将此值用于媒体控制器上的 Pause 按钮。请改用 "MediaPause"

"Play" 播放或恢复当前状态或应用程序(视情况而定)。

不要将此值用于媒体控制器上的 Play 按钮。请改用 "MediaPlay"

"Props" properties(Props)键。
"Select" Select 键。
"ZoomIn" ZoomIn 键。(KEYCODE_ZOOM_IN
"ZoomOut" ZoomOut 键。(KEYCODE_ZOOM_OUT

3.7. 设备键

key 属性值 必需 典型用途(非规范性)
"BrightnessDown" Brightness Down 键。通常控制显示亮度。(KEYCODE_BRIGHTNESS_DOWN
"BrightnessUp" Brightness Up 键。通常控制显示亮度。(KEYCODE_BRIGHTNESS_UP
"Eject" 切换可移动媒体的弹出(打开)和插入(关闭)状态。(KEYCODE_MEDIA_EJECT
"LogOff" LogOff 键。
"Power" 切换电源状态。(KEYCODE_POWER

注:某些设备可能不会向操作 环境公开此键。

"PowerOff" PowerOff 键。有时称为 PowerDown
"PrintScreen" Print ScreenSnapShot 键,用于 发起屏幕打印功能。
"Hibernate" Hibernate 键。此键将计算机的当前状态保存到磁盘, 以便恢复。随后计算机将关机。
"Standby" Standby 键。此键关闭显示器并将计算机置于低功耗模式, 而不是完全关机。 它有时标记为 SuspendSleep 键。(KEYCODE_SLEEP
"WakeUp" WakeUp 键。(KEYCODE_WAKEUP

3.8. IME 和组合键

key 属性值 必需 典型用途(非规范性)
"AllCandidates" All Candidates 键,用于启动多候选模式。
"Alphanumeric" Alphanumeric 键。
"CodeInput" Code Input 键,用于启动 Code Input 模式,以允许通过字符的 码点输入字符。
"Compose" Compose 键,在 X Window System 上也称为 Multi_key。此键的作用方式 类似于死键,会触发一种模式,在该模式中,后续按键会被组合以 产生不同的字符。
"Convert" Convert 键,用于转换当前输入法序列。
"Dead" 死键组合键。它可以是任何键盘布局中的任何组合键。例如,在 PC/AT 法式键盘上,使用法语映射且不激活任何修饰键时,这是 U+0302 COMBINING CIRCUMFLEX ACCENT 这个键值。在另一种布局中 这可能是不同的 Unicode 组合键。
对于需要区分 具体组合字符的应用程序,相关的 compositionupdate 事件的 data 属性提供 具体的键值。
"FinalMode" 某些亚洲键盘上使用的 Final Mode Final 键,用于为 IME 启用 final mode。
"GroupFirst" 切换到第一个字符组。(ISO/IEC 9995)
"GroupLast" 切换到最后一个字符组。(ISO/IEC 9995)
"GroupNext" 切换到下一个字符组。(ISO/IEC 9995)
"GroupPrevious" 切换到上一个字符组。(ISO/IEC 9995)
"ModeChange" Mode Change 键,用于在 IME 的输入模式之间切换或循环。
"NextCandidate" Next Candidate 功能键。
"NonConvert" NonConvert(“Don’t Convert”)键,用于在 IME 中接受当前输入法序列而不进行转换。
"PreviousCandidate" Previous Candidate 功能键。
"Process" Process 键。
"SingleCandidate" Single Candidate 功能键。

韩语键盘专用键:

key 属性值 必需 典型用途(非规范性)
"HangulMode" Hangul(韩语字符)Mode 键,用于在韩文和英文模式之间切换。
"HanjaMode" Hanja(韩语字符)Mode 键。
"JunjaMode" Junja(韩语字符)Mode 键。

日语键盘专用键:

key 属性值 必需 典型用途(非规范性)
"Eisu" Eisu 键。此键可能关闭 IME,但其用途由当前 IME 定义。(KEYCODE_EISU
"Hankaku" (半角)字符键。
"Hiragana" Hiragana(日语假名字符)键。
"HiraganaKatakana" Hiragana/Katakana 切换键。(KEYCODE_KATAKANA_HIRAGANA
"KanaMode" Kana Mode(Kana Lock)键。此键用于进入平假名模式(通常从罗马字 模式进入)。
"KanjiMode" Kanji(日语中对源自中文的表意字符的称呼)Mode 键。此键通常用于 切换到平假名键盘,以便 将输入转换为汉字。(KEYCODE_KANA
"Katakana" Katakana(日语假名字符)键。
"Romaji" 罗马字符功能键。
"Zenkaku" Zenkaku(全角)字符键。
"ZenkakuHankaku" Zenkaku/Hankaku(全角/半角)切换键。(KEYCODE_ZENKAKU_HANKAKU

3.9. 通用功能键

这些通用功能键的确切数量因平台而异, 此处仅显式定义了前几个。额外的 功能键名称通过递增功能键名称末尾的十进制索引而 隐式定义。因此,"F24""Soft8" 都是有效的键值。

key 属性值 必需 典型用途(非规范性)
"F1" F1 键,索引为 1 的通用功能键。
"F2" F2 键,索引为 2 的通用功能键。
"F3" F3 键,索引为 3 的通用功能键。
"F4" F4 键,索引为 4 的通用功能键。
"F5" F5 键,索引为 5 的通用功能键。
"F6" F6 键,索引为 6 的通用功能键。
"F7" F7 键,索引为 7 的通用功能键。
"F8" F8 键,索引为 8 的通用功能键。
"F9" F9 键,索引为 9 的通用功能键。
"F10" F10 键,索引为 10 的通用功能键。
"F11" F11 键,索引为 11 的通用功能键。
"F12" F12 键,索引为 12 的通用功能键。
"Soft1" 通用虚拟功能键,索引为 1。
"Soft2" 通用虚拟功能键,索引为 2。
"Soft3" 通用虚拟功能键,索引为 3。
"Soft4" 通用虚拟功能键,索引为 4。

3.10. 多媒体键

这些是在“多媒体”键盘上出现的额外按键。

key 属性值 必需 典型用途(非规范性)
"ChannelDown" 选择下一个(按数字或逻辑顺序)较低的频道。(APPCOMMAND_MEDIA_CHANNEL_DOWN, KEYCODE_CHANNEL_DOWN
"ChannelUp" 选择下一个(按数字或逻辑顺序)较高的频道。(APPCOMMAND_MEDIA_CHANNEL_UP, KEYCODE_CHANNEL_UP
"Close" 关闭当前文档或消息(注:这不会关闭应用程序)。(APPCOMMAND_CLOSE
"MailForward" 打开编辑器以转发当前消息。(APPCOMMAND_FORWARD_MAIL
"MailReply" 打开编辑器以回复当前消息。(APPCOMMAND_REPLY_TO_MAIL
"MailSend" 发送当前消息。(APPCOMMAND_SEND_MAIL
"MediaClose" 关闭当前媒体,例如关闭 CD 或 DVD 托盘。(KEYCODE_MEDIA_CLOSE
"MediaFastForward" 发起或继续以快于正常速度的向前播放,或者在已快进时 提高速度。(APPCOMMAND_MEDIA_FAST_FORWARD, KEYCODE_MEDIA_FAST_FORWARD
"MediaPause" 暂停当前正在播放的媒体。(APPCOMMAND_MEDIA_PAUSE, KEYCODE_MEDIA_PAUSE

媒体控制器设备应将此值用于其暂停键,而不是 "Pause"

"MediaPlay" 如果当前未以正常速度播放,则发起或继续以正常速度播放媒体。 (APPCOMMAND_MEDIA_PLAY, KEYCODE_MEDIA_PLAY
"MediaPlayPause" 在播放和暂停状态之间切换媒体。(APPCOMMAND_MEDIA_PLAY_PAUSE, KEYCODE_MEDIA_PLAY_PAUSE
"MediaRecord" 发起或恢复当前选定媒体的录制。(APPCOMMAND_MEDIA_RECORD, KEYCODE_MEDIA_RECORD
"MediaRewind" 发起或继续以快于正常速度的反向播放,或者在已倒带时 提高速度。(APPCOMMAND_MEDIA_REWIND, KEYCODE_MEDIA_REWIND
"MediaStop" 停止媒体播放、暂停、快进、倒带或录制(如果尚未停止)。(APPCOMMAND_MEDIA_STOP, KEYCODE_MEDIA_STOP
"MediaTrackNext" 跳转到下一个媒体或节目轨道。(APPCOMMAND_MEDIA_NEXTTRACK, KEYCODE_MEDIA_NEXT
"MediaTrackPrevious" 跳转到上一个媒体或节目轨道。(APPCOMMAND_MEDIA_PREVIOUSTRACK, KEYCODE_MEDIA_PREVIOUS
"New" 打开新文档或消息。(APPCOMMAND_NEW
"Open" 打开现有文档或消息。(APPCOMMAND_OPEN
"Print" 打印当前文档或消息。(APPCOMMAND_PRINT
"Save" 保存当前文档或消息。(APPCOMMAND_SAVE
"SpellCheck" 对当前文档或选区进行拼写检查。(APPCOMMAND_SPELL_CHECK

3.11. 多媒体数字小键盘键

普通的 0 ... 9 数字小键盘键 被编码为 "0" ... "9",但某些 多媒体小键盘具有从 1 ... 12 编号的按钮。 在这些情况下,10 键通常标记为 10 /0

注:如果受支持,1010 /0 键必须被分配一个 key"0"

key 属性值 必需 典型用途(非规范性)
"Key11" 在具有从 1 ... 12 按钮的媒体数字小键盘上找到的 11 键。
"Key12" 在具有从 1 ... 12 按钮的媒体数字小键盘上找到的 12 键。

3.12. 音频键

与音频相关的多媒体键。

key 属性值 必需 典型用途(非规范性)
"AudioBalanceLeft" 向左调整音频平衡。(VK_AUDIO_BALANCE_LEFT
"AudioBalanceRight" 向右调整音频平衡。(VK_AUDIO_BALANCE_RIGHT
"AudioBassBoostDown" 降低音频低音增强,或向下循环低音增强状态。(APPCOMMAND_BASS_DOWN, VK_BASS_BOOST_DOWN
"AudioBassBoostToggle" 切换低音增强开/关。(APPCOMMAND_BASS_BOOST
"AudioBassBoostUp" 提高音频低音增强,或向上循环低音增强状态。(APPCOMMAND_BASS_UP, VK_BASS_BOOST_UP
"AudioFaderFront" 向前方调整音频 fader。(VK_FADER_FRONT
"AudioFaderRear" 向后方调整音频 fader。(VK_FADER_REAR
"AudioSurroundModeNext" 将环绕声音频模式前进到下一个可用模式。(VK_SURROUND_MODE_NEXT
"AudioTrebleDown" 降低高音。(APPCOMMAND_TREBLE_DOWN
"AudioTrebleUp" 提高高音。(APPCOMMAND_TREBLE_UP
"AudioVolumeDown" 降低音频音量。(APPCOMMAND_VOLUME_DOWN, KEYCODE_VOLUME_DOWN
"AudioVolumeUp" 提高音频音量。(APPCOMMAND_VOLUME_UP, KEYCODE_VOLUME_UP
"AudioVolumeMute" 在静音状态和先前音量级别之间切换。(APPCOMMAND_VOLUME_MUTE, KEYCODE_VOLUME_MUTE
"MicrophoneToggle" 切换麦克风开/关。(APPCOMMAND_MIC_ON_OFF_TOGGLE
"MicrophoneVolumeDown" 降低麦克风音量。(APPCOMMAND_MICROPHONE_VOLUME_DOWN
"MicrophoneVolumeUp" 提高麦克风音量。(APPCOMMAND_MICROPHONE_VOLUME_UP
"MicrophoneVolumeMute" 将麦克风静音。(APPCOMMAND_MICROPHONE_VOLUME_MUTE, KEYCODE_MUTE

3.13. 语音键

与语音识别相关的多媒体键。

key 属性值 必需 典型用途(非规范性)
"SpeechCorrectionList" 当单词被错误识别时显示更正列表。(APPCOMMAND_CORRECTION_LIST
"SpeechInputToggle" 在听写模式和命令/控制模式之间切换。(APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE

3.14. 应用程序键

Application Keys 是被分配用于启动特定应用程序的特殊键。 可通过将 "Launch" 与应用程序名称连接来定义额外的应用程序键名称。

key 属性值 必需 典型用途(非规范性)
"LaunchApplication1" 第一个通用 "LaunchApplication" 键。这通常与启动 "My Computer" 相关联,并且按键上可能有计算机符号。(APPCOMMAND_LAUNCH_APP1
"LaunchApplication2" 第二个通用 "LaunchApplication" 键。这通常与启动 "Calculator" 相关联,并且按键上可能有计算器符号。(APPCOMMAND_LAUNCH_APP2, KEYCODE_CALCULATOR
"LaunchCalendar" "Calendar" 键。(KEYCODE_CALENDAR
"LaunchContacts" "Contacts" 键。(KEYCODE_CONTACTS
"LaunchMail" "Mail" 键。(APPCOMMAND_LAUNCH_MAIL
"LaunchMediaPlayer" "Media Player" 键。(APPCOMMAND_LAUNCH_MEDIA_SELECT
"LaunchMusicPlayer" "Music Player" 键。
"LaunchPhone" "Phone" 键。
"LaunchScreenSaver" "Screen Saver" 键。
"LaunchSpreadsheet" "Spreadsheet" 键。
"LaunchWebBrowser" "Web Browser" 键。
"LaunchWebCam" "WebCam" 键。
"LaunchWordProcessor" "Word Processor" 键。

3.15. 浏览器键

key 属性值 必需 典型用途(非规范性)
"BrowserBack" 导航到当前历史记录中的上一个内容或页面。(APPCOMMAND_BROWSER_BACKWARD
"BrowserFavorites" 打开浏览器收藏夹列表。(APPCOMMAND_BROWSER_FAVORITES
"BrowserForward" 导航到当前历史记录中的下一个内容或页面。(APPCOMMAND_BROWSER_FORWARD
"BrowserHome" 转到用户首选的主页。(APPCOMMAND_BROWSER_HOME
"BrowserRefresh" 刷新当前页面或内容。(APPCOMMAND_BROWSER_REFRESH
"BrowserSearch" 调出用户首选的搜索页。(APPCOMMAND_BROWSER_SEARCH
"BrowserStop" 停止加载当前页面或内容。(APPCOMMAND_BROWSER_STOP

3.16. 移动电话键

key 属性值 必需 典型用途(非规范性)
"AppSwitch" Application switch 键,它提供最近应用列表以便在应用之间切换。(KEYCODE_APP_SWITCH
"Call" Call 键。(KEYCODE_CALL
"Camera" Camera 键。(KEYCODE_CAMERA
"CameraFocus" Camera focus 键。(KEYCODE_FOCUS
"EndCall" End Call 键。(KEYCODE_ENDCALL
"GoBack" Back 键。(KEYCODE_BACK
"GoHome" Home 键,它转到电话主屏幕。(KEYCODE_HOME
"HeadsetHook" Headset Hook 键。(KEYCODE_HEADSETHOOK
"LastNumberRedial" Last Number Redial 键。
"Notification" Notification 键。(KEYCODE_NOTIFICATION
"MannerMode" 在情景模式状态之间切换:静音、振动、响铃,……(KEYCODE_MANNER_MODE
"VoiceDial" Voice Dial 键。

3.17. 电视键

key 属性值 必需 典型用途(非规范性)
"TV" 切换到观看电视。(KEYCODE_TV
"TV3DMode" TV 3D Mode。(KEYCODE_3D_MODE
"TVAntennaCable" 在天线和有线输入之间切换。(KEYCODE_TV_ANTENNA_CABLE
"TVAudioDescription" 音频描述。(KEYCODE_TV_AUDIO_DESCRIPTION
"TVAudioDescriptionMixDown" 降低音频描述混合音量。(KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN
"TVAudioDescriptionMixUp" 提高音频描述混合音量。(KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP
"TVContentsMenu" 内容菜单。(KEYCODE_TV_CONTENTS_MENU
"TVDataService" 内容菜单。(KEYCODE_TV_DATA_SERVICE
"TVInput" 切换外部电视上的输入模式。(KEYCODE_TV_INPUT
"TVInputComponent1" 切换到分量输入 #1。(KEYCODE_TV_INPUT_COMPONENT_1
"TVInputComponent2" 切换到分量输入 #2。(KEYCODE_TV_INPUT_COMPONENT_2
"TVInputComposite1" 切换到复合输入 #1。(KEYCODE_TV_INPUT_COMPOSITE_1
"TVInputComposite2" 切换到复合输入 #2。(KEYCODE_TV_INPUT_COMPOSITE_2
"TVInputHDMI1" 切换到 HDMI 输入 #1。(KEYCODE_TV_INPUT_HDMI_1
"TVInputHDMI2" 切换到 HDMI 输入 #2。(KEYCODE_TV_INPUT_HDMI_2
"TVInputHDMI3" 切换到 HDMI 输入 #3。(KEYCODE_TV_INPUT_HDMI_3
"TVInputHDMI4" 切换到 HDMI 输入 #4。(KEYCODE_TV_INPUT_HDMI_4
"TVInputVGA1" 切换到 VGA 输入 #1。(KEYCODE_TV_INPUT_VGA_1
"TVMediaContext" 媒体上下文菜单。(KEYCODE_TV_MEDIA_CONTEXT_MENU
"TVNetwork" 切换网络。(KEYCODE_TV_NETWORK
"TVNumberEntry" 数字输入。(KEYCODE_TV_NUMBER_ENTRY
"TVPower" 切换外部电视的电源。(KEYCODE_TV_POWER
"TVRadioService" 广播。(KEYCODE_TV_RADIO_SERVICE
"TVSatellite" 卫星。(KEYCODE_TV_SATELLITE
"TVSatelliteBS" 广播卫星。(KEYCODE_TV_SATELLITE_BS
"TVSatelliteCS" 通信卫星。(KEYCODE_TV_SATELLITE_CS
"TVSatelliteToggle" 在可用卫星之间切换。(KEYCODE_TV_SATELLITE_SERVICE
"TVTerrestrialAnalog" 模拟地面电视。(KEYCODE_TV_TERRESTRIAL_ANALOG
"TVTerrestrialDigital" 数字地面电视。(KEYCODE_TV_TERRESTRIAL_DIGITAL
"TVTimer" 定时器编程。(KEYCODE_TV_TIMER_PROGRAMMING

3.18. 媒体控制器键

媒体控制器(例如电视、音频系统和机顶盒遥控器)的 key 属性 值部分源自 消费电子技术规范:

key 属性值 必需 典型用途(非规范性)
"AVRInput" 切换外部 AVR(音频/视频接收器)上的输入模式。(KEYCODE_AVR_INPUT
"AVRPower" 切换外部 AVR(音频/视频接收器)的电源。(KEYCODE_AVR_POWER
"ColorF0Red" 通用彩色编码媒体功能键,索引为 0(红色)。(VK_COLORED_KEY_0, KEYCODE_PROG_RED
"ColorF1Green" 通用彩色编码媒体功能键,索引为 1(绿色)。(VK_COLORED_KEY_1, KEYCODE_PROG_GREEN
"ColorF2Yellow" 通用彩色编码媒体功能键,索引为 2(黄色)。(VK_COLORED_KEY_2, KEYCODE_PROG_YELLOW
"ColorF3Blue" 通用彩色编码媒体功能键,索引为 3(蓝色)。(VK_COLORED_KEY_3, KEYCODE_PROG_BLUE
"ColorF4Grey" 通用彩色编码媒体功能键,索引为 4(灰色)。(VK_COLORED_KEY_4
"ColorF5Brown" 通用彩色编码媒体功能键,索引为 5(棕色)。(VK_COLORED_KEY_5
"ClosedCaptionToggle" 切换隐藏字幕的显示。(VK_CC, KEYCODE_CAPTIONS
"Dimmer" 通过在状态之间切换或循环来调整设备亮度。(VK_DIMMER
"DisplaySwap" 交换视频源。(VK_DISPLAY_SWAP
"DVR" 选择数字录像机。(KEYCODE_DVR
"Exit" 退出当前应用程序。(VK_EXIT
"FavoriteClear0" 清除存储为收藏 0 的节目或内容。(VK_CLEAR_FAVORITE_0
"FavoriteClear1" 清除存储为收藏 1 的节目或内容。(VK_CLEAR_FAVORITE_1
"FavoriteClear2" 清除存储为收藏 2 的节目或内容。(VK_CLEAR_FAVORITE_2
"FavoriteClear3" 清除存储为收藏 3 的节目或内容。(VK_CLEAR_FAVORITE_3
"FavoriteRecall0" 选择(调出)存储为收藏 0 的节目或内容。(VK_RECALL_FAVORITE_0
"FavoriteRecall1" 选择(调出)存储为收藏 1 的节目或内容。(VK_RECALL_FAVORITE_1
"FavoriteRecall2" 选择(调出)存储为收藏 2 的节目或内容。(VK_RECALL_FAVORITE_2
"FavoriteRecall3" 选择(调出)存储为收藏 3 的节目或内容。(VK_RECALL_FAVORITE_3
"FavoriteStore0" 将当前节目或内容存储为收藏 0。(VK_STORE_FAVORITE_0
"FavoriteStore1" 将当前节目或内容存储为收藏 1。(VK_STORE_FAVORITE_1
"FavoriteStore2" 将当前节目或内容存储为收藏 2。(VK_STORE_FAVORITE_2
"FavoriteStore3" 将当前节目或内容存储为收藏 3。(VK_STORE_FAVORITE_3
"Guide" 切换节目或内容指南的显示。(VK_GUIDE, KEYCODE_GUIDE
"GuideNextDay" 如果指南处于活动状态并已显示,则显示下一天的内容。(VK_NEXT_DAY
"GuidePreviousDay" 如果指南处于活动状态并已显示,则显示前一天的内容。(VK_PREV_DAY
"Info" 切换关于当前选中上下文或媒体的信息显示。(VK_INFO, KEYCODE_INFO
"InstantReplay" 切换即时重放。(VK_INSTANT_REPLAY
"Link" 在可用且适当时启动链接内容。(VK_LINK
"ListProgram" 列出当前节目。(VK_LIST
"LiveContent" 切换当前可用直播内容或节目的列表显示。(VK_LIVE
"Lock" 锁定或解锁当前内容或节目。(VK_LOCK
"MediaApps" 显示媒体应用程序列表:音频/视频播放器和图像查看器。(VK_APPS

不要将此键值与 Windows 的 VK_APPS / VK_CONTEXT_MENU 键混淆,后者编码为 "ContextMenu"

"MediaAudioTrack" Audio track 键。(KEYCODE_MEDIA_AUDIO_TRACK
"MediaLast" 选择上一次选中的频道或媒体。(VK_LAST, KEYCODE_LAST_CHANNEL
"MediaSkipBackward" 向后跳到下一个内容或节目。(KEYCODE_MEDIA_SKIP_BACKWARD
"MediaSkipForward" 向前跳到下一个内容或节目。(VK_SKIP, KEYCODE_MEDIA_SKIP_FORWARD
"MediaStepBackward" 向后步进到下一个内容或节目。(KEYCODE_MEDIA_STEP_BACKWARD
"MediaStepForward" 向前步进到下一个内容或节目。(KEYCODE_MEDIA_STEP_FORWARD
"MediaTopMenu" 媒体顶级菜单。(KEYCODE_MEDIA_TOP_MENU
"NavigateIn" 向内导航。(KEYCODE_NAVIGATE_IN
"NavigateNext" 导航到下一个键。(KEYCODE_NAVIGATE_NEXT
"NavigateOut" 向外导航。(KEYCODE_NAVIGATE_OUT
"NavigatePrevious" 导航到上一个键。(KEYCODE_NAVIGATE_PREVIOUS
"NextFavoriteChannel" 循环到下一个收藏频道(在收藏列表中)。(VK_NEXT_FAVORITE_CHANNEL
"NextUserProfile" 循环到下一个用户资料(如果有多个用户资料)。(VK_USER
"OnDemand" 访问点播内容或节目。(VK_ON_DEMAND
"Pairing" 用于配对设备的配对键。(KEYCODE_PAIRING
"PinPDown" 向下移动画中画窗口。(VK_PINP_DOWN
"PinPMove" 移动画中画窗口。(VK_PINP_MOVE
"PinPToggle" 切换画中画窗口的显示。(VK_PINP_TOGGLE
"PinPUp" 向上移动画中画窗口。(VK_PINP_UP
"PlaySpeedDown" 降低媒体播放速度。(VK_PLAY_SPEED_DOWN
"PlaySpeedReset" 将播放重置为正常速度。(VK_PLAY_SPEED_RESET
"PlaySpeedUp" 提高媒体播放速度。(VK_PLAY_SPEED_UP
"RandomToggle" 切换随机媒体或内容随机播放模式。(VK_RANDOM_TOGGLE
"RcLowBattery" 不是物理按键,但当遥控器电池电量低时会发送此键码。(VK_RC_LOW_BATTERY
"RecordSpeedNext" 在媒体录制速度之间切换或循环。(VK_RECORD_SPEED_NEXT
"RfBypass" 切换 RF(射频)输入旁路模式(将 RF 输入直接传递到 RF 输出)。(VK_RF_BYPASS
"ScanChannelsToggle" 切换频道扫描模式。(VK_SCAN_CHANNELS_TOGGLE
"ScreenModeNext" 将显示屏幕模式前进到下一个可用模式。(VK_SCREEN_MODE_NEXT
"Settings" 切换设备设置屏幕的显示。(VK_SETTINGS, KEYCODE_SETTINGS
"SplitScreenToggle" 切换分屏模式。(VK_SPLIT_SCREEN_TOGGLE
"STBInput" 切换外部 STB(机顶盒)上的输入模式。(KEYCODE_STB_INPUT
"STBPower" 切换外部 STB(机顶盒)的电源。(KEYCODE_STB_POWER
"Subtitle" 切换字幕显示(如果可用)。(VK_SUBTITLE
"Teletext" 切换图文电视显示(如果可用)(VK_TELETEXT, KEYCODE_TV_TELETEXT)。
"VideoModeNext" 将视频模式前进到下一个可用模式。(VK_VIDEO_MODE_NEXT
"Wink" 使设备以某种方式标识自身,例如以声音或视觉方式。(VK_WINK
"ZoomToggle" 在全屏和缩放内容之间切换,或改变放大级别。(VK_ZOOM, KEYCODE_TV_ZOOM_MODE

媒体控制器标准中定义的一些按键已经在本规范其他章节中 定义了适当的键。下表总结了在支持这些键时 必须使用的键值:

key 属性值 必需 典型用途(非规范性)
"AudioVolumeDown" 降低音频音量。(VK_VOLUME_DOWN
"AudioVolumeUp" 提高音频音量。(VK_VOLUME_UP
"AudioVolumeMute" 在静音状态和先前音量级别之间切换。(VK_VOLUME_MUTE
"BrowserBack" 导航到当前历史记录中的上一个内容或页面。(VK_BACK
"BrowserForward" 导航到当前历史记录中的下一个内容或页面。(VK_FORWARD
"ChannelDown" 选择下一个(按数字或逻辑顺序)较低的频道。(VK_CHANNEL_DOWN
"ChannelUp" 选择下一个(按数字或逻辑顺序)较高的频道。(VK_CHANNEL_UP
"ContextMenu" 切换屏幕菜单的显示。(VK_MENU
"Eject" 切换可移动媒体的弹出(打开)和插入(关闭)状态。(VK_EJECT_TOGGLE
"End" End 键,与键盘输入一起使用,用于转到内容末尾。(VK_GO_TO_END
"Enter" Enter 键,用于激活当前选择或接受当前输入。(VK_SELECT
"Home" Home 键,与键盘输入一起使用,用于转到内容开头。(VK_GO_TO_START
"MediaFastForward" 发起或继续以快于正常速度的向前播放,或者在已快进时 提高速度。(VK_FAST_FWD
"MediaPlay" 如果当前未以正常速度播放,则发起或继续以正常速度播放媒体。 (VK_PLAY
"MediaPlayPause" 在播放和暂停状态之间切换媒体。(VK_PLAY_PAUSE
"MediaRecord" 发起或恢复当前选定媒体的录制。(VK_RECORD
"MediaRewind" 发起或继续以快于正常速度的反向播放,或者在已倒带时 提高速度。(VK_REWIND
"MediaStop" 停止媒体播放、暂停、快进、倒带或录制(如果尚未停止)。(VK_STOP
"MediaPause" 暂停当前正在播放的媒体。(VK_PAUSE
"MediaTrackNext" 跳转到下一个媒体或节目轨道。(VK_TRACK_NEXT
"MediaTrackPrevious" 跳转到上一个媒体或节目轨道。(VK_TRACK_PREV
"Power" 切换电源状态。(VK_POWER
"Unidentified" 当实现由于硬件、平台或软件约束而无法识别其他按键值时, 使用此按键值。(VK_UNDEFINED

4. 无障碍

本规范只是定义了一组可用于 key 属性的有效值。因此,它没有引入任何具有 无障碍顾虑的功能。

FAST 清单已经完成,并且没有任何 项目适用于本规范。

与 FAST 清单项目“如果技术提供国际化支持”相关的一条说明: 本规范本质上定义了支持国际化硬件的 key 值,例如 不同语言或布局的键盘。它还定义了许多特殊键,这些键被赋予 人类可读的名称(如 "Shift"、"Control"、"Home" 或 "ArrowLeft")。

这些特殊键值被定义为人类可读的字符串,以便检测特殊键的代码 更易理解。虽然这些值并非旨在直接暴露给用户, 但也没有任何东西阻止这样做。选择公开这些值的应用需要确定 是否适合对这些字符串进行翻译以用于呈现(例如:向 法语用户将 "Backspace" 呈现为 "Suppr. arrière")。

5. 国际化

简短 I18n 清单 已经完成,并且没有任何项目适用。

6. 安全考量

安全与隐私自审 问卷已经完成,并附有以下说明:

key 属性相关的安全顾虑在 [UIEvents] 规范中处理。

7. 隐私考量

安全与隐私自审 问卷已经完成,并附有以下说明:

key 属性相关的隐私顾虑在 [UIEvents] 规范中处理。

8. 致谢

多年来,许多人为 DOM KeyboardEvent 规范作出了贡献,其中包括 DOM Working Group 和 WebApps Working Group 的许多参与者。当前这一组 key 值是 在此期间对许多提案和变体进行迭代的结果。 我们特别感谢以下参与者的贡献:

Gary Kacmarcik (Google), Masayuki Nakano (Mozilla) 和 Travis Leithead (Microsoft)。

一致性

文档 约定

一致性要求通过 描述性断言 和 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" 与规范性文本分隔开来, 如下所示:

注:这是一个资料性注释。

一致性 算法

作为算法一部分以祈使语气表述的要求 (例如 "strip any leading space characters" 或 "return false and abort these steps") 应按引入该算法时使用的关键词 ("must"、"should"、"may" 等) 的含义来解释。

以算法或具体步骤表述的一致性要求 可以用任何方式实现, 只要最终结果等价即可。 特别是,本规范中定义的算法 旨在易于理解, 而不旨在具有高性能。 鼓励实现者进行优化。

索引

由本规范定义的术语

由引用定义的术语

参考文献

规范性参考文献

[RFC2119]
S. Bradner. 用于 RFC 中表示要求级别的关键词. 1997 年 3 月。最佳当前实践。URL: https://datatracker.ietf.org/doc/html/rfc2119
[UAX15]
Ken Whistler. Unicode 规范化 形式. 2024 年 8 月 14 日。Unicode 标准附录 #15。URL: https://www.unicode.org/reports/tr15/tr15-56.html
[UIEvents]
Gary Kacmarcik; Travis Leithead. UI Events. 2024 年 9 月 7 日。WD。URL: https://www.w3.org/TR/uievents/
[UIEvents-Code]
Travis Leithead; Gary Kacmarcik. UI Events KeyboardEvent code 值. 2023 年 5 月 30 日。CR。URL: https://www.w3.org/TR/uievents-code/
[Unicode]
Unicode 标准. URL: https://www.unicode.org/versions/latest/

资料性参考文献

[AndroidKeycode]
Android KeyEvent. URL: http://developer.android.com/reference/android/view/KeyEvent.html
[DASE]
ATSC A/100-2,DTV 应用软件环境 Level 1(DASE-1)第 2 部分:声明式应用程序和 环境. 2003 年 3 月 09 日。URL: http://atsc.org/standard/a100-dtv-application-software-environment-level-1-dase-1/
[ISO9995-1]
ISO/IEC 9995-1:2009 信息技术 -- 文本和办公系统的键盘布局 -- 第 1 部分: 键盘布局的一般原则. URL: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=51645
[KeyEventJava]
Java™ Platform, Standard Edition 6 API Specification,java.awt.events.KeyEvent 类. URL: http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html
[KeysNet]
.NET Framework 4.5 Class Library,Keys 枚举. URL: http://msdn.microsoft.com/en-us/library/system.windows.forms.keys.aspx
[OCAP]
Open Cable Application Platform 1.1.3. 2010 年 6 月 03 日。URL: https://apps.cablelabs.com/specification/opencable-application-platform-ocap/
[WEB4CE]
ANSI/CTA-2014-B, 用于 UPnP 网络和互联网中远程用户界面的基于 Web 的协议和框架 (Web4CE). 2011 年 1 月。URL: https://shop.cta.tech/products/web-based-protocol-and-framework-for-remote-user-interface-on-upnp-networks-and-the-internet
[WmAppCommand]
MSDN WM_APPCOMMAND 消息. URL: https://msdn.microsoft.com/en-us/library/windows/desktop/ms646275(v=vs.85).aspx