1. 引言
本文档规定了必须用于
KeyboardEvent
的
key
属性中,用来编码按键
含义的一组有效 key
属性值。请注意,某个特定按键的 key
值会因用户当前的区域设置而异。对于仅基于按键在键盘上的
物理位置且不随区域设置变化的值,请参见
[UIEvents-Code] 中描述的 code。
1.1. 样式约定
本规范使用以下约定:
-
印在按键上的键帽标识显示为
↓、=或Q。这用于 从用户角度指代一个 按键,而不考虑所生成KeyboardEvent中的key和code值。 -
表示字符的字形显示为:
"a"、"é"、"ر"、"字"。 -
Unicode [Unicode] 码点显示为:
U+003D。 -
有效的 key 属性值(即
KeyboardEvent的key属性的值)显示为:"ArrowDown"、"="、"q"或"Q"。 -
有效的 key code 属性值(即
KeyboardEvent的code属性的值)显示为:"ArrowDown"、"Equal"或"KeyQ"。
2. 键盘事件 key
属性值
key 属性
值被定义为一个 DOMString,其中
包含以下之一:
-
一个与用户键入的字符相对应的 key 字符串,同时考虑用户当前的区域 设置、修饰键状态,以及任何正在 生效的系统级键盘映射覆盖。
-
一个具名 key 属性值,如本文档中的表所定义。
key 属性
值必须始终包含一个属于这
两类之一的值(即使该值是 "Unidentified")。
键盘上的多个按键生成相同的 key
属性值是可接受的。例如,在
EN-US 键盘布局上,数字小键盘上的按键
(例如小键盘 1 键)会生成与其非小键盘对应键
(例如键盘主体部分的 1 键)相同的 key 属性
值。KeyboardEvent
的
location
属性可用于确定某个按键是否
来自数字小键盘。
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 字符。
-
"a","A","b","B", ...,"å","é","ü","ñ" -
"@","%","$","*", ...,"0","1","2" -
"あ","日","中", ...,"一","二","三" -
"ا","ب","ة","ت", ...,"١","٢","٣" -
"а","б","в","г" -
"±","ʶ","϶","൹","℉"
Tab 和
Enter(参见 § 2.1.1 控制字符)之外,
所有非控制空白 Unicode 字符均被视为
有效的 key 字符串。
-
" "=U+0020空格 -
" "=U+00A0不换行空格 -
" "=U+2009细空格 -
" "=U+3000表意空格
-
"ô"=U+00F4(不是 "o" + " ̂"(U+006FU+0302), 因为如果可用,必须使用预组合字符) -
"ḍ̇"=U+1E0D+U+0307(不是 "d" + " ̣" + " ̇"(U+0064U+0323U+0307), 因为如果可用,必须使用预组合字符, 并且也不是 "ḋ" + " ̣"(U+1E0BU+0323), 因为在替换为预组合版本之前,必须先对重音符号排序)
2.1.1. 控制字符
Unicode “Cc”通用类别中的少量字符被支持为 具名 key 属性值。这些具名值 如下:
2.2.
选择 key
属性值
字形修饰键
是以下任意修饰键:Shift、CapsLock 或 AltGr。
2.2.1. 选择适当的 key 属性 值
要选择适当的 key 属性值以 存储到KeyboardEvent
的
key
属性中,运行以下步骤:
-
令 key 为一个 DOMString,初始设置为
"Unidentified"。 -
如果存在适合此按键事件的 具名 key 属性值,则
-
将 key 设置为该 具名 key 属性值。
-
-
否则,如果该按键事件生成了一个有效的 key 字符串,则
-
将 key 设置为该 key 字符串值。
-
-
否则,如果该按键事件具有除字形修饰键以外的任何修饰键,则
-
返回 key 作为此按键事件的 key 属性值。
在标准美式
键盘上,标记为 Q 的按键的 key
属性值是 "q"(如果同时按住 Shift
修饰
键,则为 "Q")。
在标准美式
键盘上,Control + Q 的 key
属性值是 "q"。
在采用右手 Dvorak
键映射的美式键盘上,标记为 Q 的按键的 key 属性值是 "5"(使用 Shift 修饰键时为 "%")。
在与前一示例相同的
美式 Dvorak 键盘布局上,Control +
Q 的 key 属性值是 "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(AltGr 或 AltGraph)键。此键用于启用 ISO Level 3 shift 修饰键
(标准 Shift 键是 level 2 修饰键)。
参见 [ISO9995-1]。
|
"CapsLock"
| 是 | Caps Lock(Capital)键。切换大写字符锁定功能,
用于解释后续键盘输入事件。
|
"Control"
| 是 | Control 或 Ctrl 键,用于启用
控制修饰功能,以解释同时发生或随后发生的键盘输入。
|
"Fn"
| 否 | Function switch Fn 键。同时激活此键 和另一个键会将该键的值更改为备用字符或功能。 此键通常直接由键盘硬件处理,通常不会生成 key 事件。 |
"FnLock"
| 否 | Function-Lock(FnLock 或 F-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"
| 是 | 打开帮助对话框或切换帮助信息的显示。(, )
|
"Pause"
| 是 |
暂停当前状态或应用程序(视情况而定)。
不要将此值用于媒体控制器上的 |
"Play"
| 否 |
播放或恢复当前状态或应用程序(视情况而定)。
不要将此值用于媒体控制器上的 |
"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 Screen 或 SnapShot 键,用于
发起屏幕打印功能。
|
"Hibernate"
| 否 | Hibernate 键。此键将计算机的当前状态保存到磁盘, 以便恢复。随后计算机将关机。 |
"Standby"
| 否 | Standby 键。此键关闭显示器并将计算机置于低功耗模式,
而不是完全关机。
它有时标记为 Suspend 或 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"
| 否 | 选择下一个(按数字或逻辑顺序)较低的频道。(,
)
|
"ChannelUp"
| 否 | 选择下一个(按数字或逻辑顺序)较高的频道。(, )
|
"Close"
| 否 | 关闭当前文档或消息(注:这不会关闭应用程序)。(APPCOMMAND_CLOSE)
|
"MailForward"
| 否 | 打开编辑器以转发当前消息。(APPCOMMAND_FORWARD_MAIL)
|
"MailReply"
| 否 | 打开编辑器以回复当前消息。(APPCOMMAND_REPLY_TO_MAIL)
|
"MailSend"
| 否 | 发送当前消息。(APPCOMMAND_SEND_MAIL)
|
"MediaClose"
| 否 | 关闭当前媒体,例如关闭 CD 或 DVD 托盘。(KEYCODE_MEDIA_CLOSE)
|
"MediaFastForward"
| 否 | 发起或继续以快于正常速度的向前播放,或者在已快进时
提高速度。(,
)
|
"MediaPause"
| 否 |
暂停当前正在播放的媒体。(, )
媒体控制器设备应将此值用于其暂停键,而不是 |
"MediaPlay"
| 否 | 如果当前未以正常速度播放,则发起或继续以正常速度播放媒体。
(, )
|
"MediaPlayPause"
| 否 | 在播放和暂停状态之间切换媒体。(, )
|
"MediaRecord"
| 否 | 发起或恢复当前选定媒体的录制。(, )
|
"MediaRewind"
| 否 | 发起或继续以快于正常速度的反向播放,或者在已倒带时
提高速度。(,
)
|
"MediaStop"
| 否 | 停止媒体播放、暂停、快进、倒带或录制(如果尚未停止)。(, )
|
"MediaTrackNext"
| 否 | 跳转到下一个媒体或节目轨道。(, )
|
"MediaTrackPrevious"
| 否 | 跳转到上一个媒体或节目轨道。(,
)
|
"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。
注:如果受支持,10 或 10 /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"
| 否 | 降低音频低音增强,或向下循环低音增强状态。(, )
|
"AudioBassBoostToggle"
| 否 | 切换低音增强开/关。(APPCOMMAND_BASS_BOOST)
|
"AudioBassBoostUp"
| 否 | 提高音频低音增强,或向上循环低音增强状态。(, )
|
"AudioFaderFront"
| 否 | 向前方调整音频 fader。(VK_FADER_FRONT)
|
"AudioFaderRear"
| 否 | 向后方调整音频 fader。(VK_FADER_REAR)
|
"AudioSurroundModeNext"
| 否 | 将环绕声音频模式前进到下一个可用模式。(VK_SURROUND_MODE_NEXT)
|
"AudioTrebleDown"
| 否 | 降低高音。(APPCOMMAND_TREBLE_DOWN)
|
"AudioTrebleUp"
| 否 | 提高高音。(APPCOMMAND_TREBLE_UP)
|
"AudioVolumeDown"
| 否 | 降低音频音量。(,
)
|
"AudioVolumeUp"
| 否 | 提高音频音量。(,
)
|
"AudioVolumeMute"
| 否 | 在静音状态和先前音量级别之间切换。(, )
|
"MicrophoneToggle"
| 否 | 切换麦克风开/关。(APPCOMMAND_MIC_ON_OFF_TOGGLE)
|
"MicrophoneVolumeDown"
| 否 | 降低麦克风音量。(APPCOMMAND_MICROPHONE_VOLUME_DOWN)
|
"MicrophoneVolumeUp"
| 否 | 提高麦克风音量。(APPCOMMAND_MICROPHONE_VOLUME_UP)
|
"MicrophoneVolumeMute"
| 否 | 将麦克风静音。(,
)
|
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" 相关联,并且按键上可能有计算器符号。(, )
|
"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 属性 值部分源自 消费电子技术规范:
-
DTV Application Software Environment [DASE]
-
Open Cable Application Platform 1.1.3 [OCAP]
-
ANSI/CTA-2014-B,基于 Web 的协议和框架,用于 UPnP 网络和互联网中的远程用户 界面 [WEB4CE]
-
Android KeyEvent KEYCODEs [AndroidKeycode]
| key 属性值 | 必需 | 典型用途(非规范性) |
|---|---|---|
"AVRInput"
| 否 | 切换外部 AVR(音频/视频接收器)上的输入模式。(KEYCODE_AVR_INPUT)
|
"AVRPower"
| 否 | 切换外部 AVR(音频/视频接收器)的电源。(KEYCODE_AVR_POWER)
|
"ColorF0Red"
| 否 | 通用彩色编码媒体功能键,索引为 0(红色)。(, )
|
"ColorF1Green"
| 否 | 通用彩色编码媒体功能键,索引为 1(绿色)。(, )
|
"ColorF2Yellow"
| 否 | 通用彩色编码媒体功能键,索引为 2(黄色)。(, )
|
"ColorF3Blue"
| 否 | 通用彩色编码媒体功能键,索引为 3(蓝色)。(, )
|
"ColorF4Grey"
| 否 | 通用彩色编码媒体功能键,索引为 4(灰色)。(VK_COLORED_KEY_4)
|
"ColorF5Brown"
| 否 | 通用彩色编码媒体功能键,索引为 5(棕色)。(VK_COLORED_KEY_5)
|
"ClosedCaptionToggle"
| 否 | 切换隐藏字幕的显示。(,
)
|
"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"
| 否 | 切换节目或内容指南的显示。(, )
|
"GuideNextDay"
| 否 | 如果指南处于活动状态并已显示,则显示下一天的内容。(VK_NEXT_DAY)
|
"GuidePreviousDay"
| 否 | 如果指南处于活动状态并已显示,则显示前一天的内容。(VK_PREV_DAY)
|
"Info"
| 否 | 切换关于当前选中上下文或媒体的信息显示。(, )
|
"InstantReplay"
| 否 | 切换即时重放。(VK_INSTANT_REPLAY)
|
"Link"
| 否 | 在可用且适当时启动链接内容。(VK_LINK)
|
"ListProgram"
| 否 | 列出当前节目。(VK_LIST)
|
"LiveContent"
| 否 | 切换当前可用直播内容或节目的列表显示。(VK_LIVE)
|
"Lock"
| 否 | 锁定或解锁当前内容或节目。(VK_LOCK)
|
"MediaApps"
| 否 |
显示媒体应用程序列表:音频/视频播放器和图像查看器。(VK_APPS)
不要将此键值与 Windows 的 |
"MediaAudioTrack"
| 否 | Audio track 键。(KEYCODE_MEDIA_AUDIO_TRACK)
|
"MediaLast"
| 否 | 选择上一次选中的频道或媒体。(, )
|
"MediaSkipBackward"
| 否 | 向后跳到下一个内容或节目。(KEYCODE_MEDIA_SKIP_BACKWARD)
|
"MediaSkipForward"
| 否 | 向前跳到下一个内容或节目。(, )
|
"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"
| 否 | 切换设备设置屏幕的显示。(, )
|
"SplitScreenToggle"
| 否 | 切换分屏模式。(VK_SPLIT_SCREEN_TOGGLE)
|
"STBInput"
| 否 | 切换外部 STB(机顶盒)上的输入模式。(KEYCODE_STB_INPUT)
|
"STBPower"
| 否 | 切换外部 STB(机顶盒)的电源。(KEYCODE_STB_POWER)
|
"Subtitle"
| 否 | 切换字幕显示(如果可用)。(VK_SUBTITLE)
|
"Teletext"
| 否 | 切换图文电视显示(如果可用)(, )。
|
"VideoModeNext"
| 否 | 将视频模式前进到下一个可用模式。(VK_VIDEO_MODE_NEXT)
|
"Wink"
| 否 | 使设备以某种方式标识自身,例如以声音或视觉方式。(VK_WINK)
|
"ZoomToggle"
| 否 | 在全屏和缩放内容之间切换,或改变放大级别。(, )
|
媒体控制器标准中定义的一些按键已经在本规范其他章节中 定义了适当的键。下表总结了在支持这些键时 必须使用的键值:
| 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. 安全考量
安全与隐私自审 问卷已经完成,并附有以下说明:
-
2.1 此特性可能向 Web 站点或其他方公开哪些信息,以及这种 公开为何必要?: 本规范定义了各种 key 事件的
key属性的一组有效值。这是必要的,以便用户可以键入文本。 -
2.17 你的特性如何处理非“完全活动”的文档?: 此属性只与 key 事件相关联,如果文档 不是完全活动的,则不会发送事件。
与 key
属性相关的安全顾虑在 [UIEvents] 规范中处理。
7. 隐私考量
安全与隐私自审 问卷已经完成,并附有以下说明:
-
2.6 你的规范中的特性是否会向来源公开有关底层平台的信息?:
key属性包含用户按下的按键的值。 这可用于推断用户正在使用启用了特定区域设置(或 IME)的键盘。 -
3.5 合法误用: 站点可以捕获所有按键,并建立键盘生成值的映射。如果 用户键入了足够多的值(并且没有更换键盘),则站点可以尝试将这些 值与已知键盘布局数据库进行匹配,以猜测用户当前的键盘布局。不过, 这是
key属性本身(在 [UIEvents] 规范中定义)的问题,而不是 本文档中定义的值所特有的问题
与 key
属性相关的隐私顾虑在 [UIEvents] 规范中处理。
8. 致谢
多年来,许多人为 DOM KeyboardEvent
规范作出了贡献,其中包括 DOM Working Group 和
WebApps Working Group 的许多参与者。当前这一组 key
值是
在此期间对许多提案和变体进行迭代的结果。
我们特别感谢以下参与者的贡献:
Gary Kacmarcik (Google), Masayuki Nakano (Mozilla) 和 Travis Leithead (Microsoft)。