1. 简介
本文档概述了各种键盘布局,并指定了每个键应使用的 code
值。
与 [UIEvents-key] 中描述的 key
值不同, code
值仅基于键在键盘上的物理位置,
不会因用户的当前区域设置而变化。
此规范以前的规范标题为 DOM Level 3 code
Values 。
1.1. 格式规约
本规范遵循以下规约:
-
打印在 键帽 上的键显示为
↓
,=
或Q
。这用于从用户的角度引用键,而不考虑生成的KeyboardEvent
事件中的key
(键) 和code
(键码)。 -
代表字符的字形(Glyphs)显示为:
"𣧂"
。 -
Unicode 码点( code points ) 显示为:
U+003D
。
在 UIEvents 规范本体的格式规约中,也对键帽,字符,码点和键(key), 码(code)的属性值进行了说明,但是渲染显示不一样,本规范中的渲染会更显眼。
key
而一个是 code
,在 [UIEvents-key] 中也经常出现
"键值"的说法,也就是按键的值,现在需要明确一点: "键值"表示的是 key
的属性值 ,在 [UIEvents] 系列规范中都是如此。如果在翻译时要指代 code
,会说明成 code
值,键码值,按键码属性值等。 2. 键盘布局
本节不是规范的。
字母数字键盘是用户生成键盘事件的最常见方式。本节概述了标准键盘及其物理布局。
键盘布局(keyboard layout)是指以按键、或键上图例来表示任何特定之机械、
视觉或功能的键盘布局方式; 或则是在计算机、
打字机或其它字体排版键盘等之类似设备、
以其键之关系含义结构在键盘上表现的布局方式
—— zh.wikipedia.org
2.1. 标准键盘布局
本节介绍了常见键盘上的物理布局。
2.1.1. 键盘分区
在讨论键盘布局时,将标准键盘划分为不同的区域并标记每一行会更方便讨论布局。
注意,如果包括功能相同的按键(如 ControlLeft
和 ControlRight
),上图共有 104
个物理按键。
这些键盘区域包括:
-
字母数字区域 是键盘的主要部分, 也是大多数键盘变化发生的地方。当用户选择一种键盘布局时, 受影响最大的是此区域中的物理按键。
为了更容易识别按键,键盘上的行的名称从最下面一行的 "A" 开始, 到最上面一排的 "E" 。 功能区域 中的键行被认为在 "K" 行中。这些行名称与 [ISO9995-1] 规范中给出的行名称一致。
请注意,许多键盘(包括现代键盘和传统键盘)都有多余的键, 这些键没有整齐地放入上面的区域。其中一些键包含在§ 3.6 多媒体按键。
2.1.2. 标准 "101" 键盘布局
标准的 "101" 键盘(通常称为"US 布局")是唯一一种在单行 Enter
(字面数字区域上的 Enter
)键上方有 "Backslash"
键(键帽标签为 \|
)的布局。所有其他布局都省略了此键,并展开 Enter
键以占据两行。
现代标准的 "101" 布局键盘实际上包含 104 个键: 字母数字区域 有 61
个按键, 数字板 、 控制板 、 箭头板 和 功能区域 有 43
个键。这个键盘布局的 "101" 名称可以追溯到这个标准键盘实际上包含 101
个键的时候。两个 Meta
按键(通常被赋予为特定于操作系统的标签)和 Menu
键是后来被添加,使按键总数达到了 104 个。
左边的 Meta
按键的键帽标签通常有两种,一种是微软的 Windows
操作系统的 ⊞
( Windows
),一种是苹果操作系统的 ⌘
( Command
)。现代键盘上的 Menu
键的键帽标签通常为 ≣
(见 应用程序键 )。
2.1.3. 备用 "101" 键盘布局
备用 "101" 键盘有一个大的 Enter
键,并缩小了 Backspace
键,为 "IntlYen"
键腾出空间(它取代了标准 101 键盘布局中的 "Backslash"
键)。 "IntlYen"
名称来自日式键盘布局,表示 ¥
(也就是日元 yen 的符号)键——同样,
俄式键盘布局和日式键盘布局类似,只不过这个 ¥
键,映射了 \/
键,如下图像所示:
现代的备用 "101" 布局的键盘包含104个键: 字母数字区域 有 61 个按键, 数字板 、控制板 、 箭头板 和 功能区域 有 43 个键。
维基百科 上有关于日文假名键盘和韩文键盘的 字母数字区域 的图示,但是它们不属于备用 "101"
键盘布局,因为除了和俄式键盘一样多了一个 "IntlYen"
键之外,
修饰符按键还有区别,继续阅读下面的章节了解更多。
2.1.4. 标准 "102" 键盘布局
标准的 "102" 键盘在整个欧洲都很常见,它在 "101"
键盘布局中添加了一个不存在的键: 在左移键( Shift
)旁边添加了 "IntlBackslash"
键(在英式键盘上键帽标签为 \|
)。
还添加了第二个键(在英式键盘上键帽标签为 #~
),该键部分藏在 Enter
键下。该键被编码为 "Backslash"
,使用与 "101"
键盘布局中的 \|
键相同的编码。根据 [USB-HID] 规范,美式的 \|
和英式的 #~
实际上是两个独立的键(分别命名为"键盘
\ 和 |"以及"键盘非美式的 # 和 ~”),
但由于这两个键从未同时出现在同一键盘上,大多数平台对两个键使用相同的扫描码
(scancode),因此很难区分。正是由于这个原因,这两个键都使用了码值 "Backslash"
。
现代 "102"布局的键盘包含105个键: 字母数字区域 有 62 个按键, 数字板 、 控制板 、 箭头板 和 功能区域 有 43 个键。
按照 code
属性值进行区分,美式 "101" 键盘布局在占用单行 Enter
上方的 \|
键,和 英式 "102" 键盘布局在占用双行的 Enter
下方的 #~
键实际上指代同一个 code
值,
即 "Backslash"
。英式 "102" 多出来的那个位于 ShiftLeft
和 Z
之间的按键,虽然键帽是 \|
(和美式的占用单行 Enter
上方的 \|
键键帽相同),但是 code
属性值却是 "IntlBackslash"
。
上述图示中的 #~
按键和 \|
按键没有显示完整键帽
(实际上其它按键也没有,主要显示了 code
值),
下面是源于维基百科的一个英式 "102" 字母数字区域( 字母数字区域 )键盘布局图示:
2.1.5. 韩式 "103" 键盘布局
韩语 "103" 键盘基于备用 "101" 键盘布局,并添加了两个额外的键
(空格键两侧各一个)来处理韩语特定的输入模式。这两个按键是 "Lang2"
("Hanja",键帽为 한자
,发音为 hanja )和 "Lang1"
("HangulMode",键帽为 한/영
,发音为 han/yeong ) 。
实际上 한자
(Hanja) 也就是汉字的意思,这里表示朝鲜汉字,而 한/영
(HangulMode) 也就是韩/英,
这里表示韩文模式和英文模式切换使用。
现代 "103" 布局的键盘包含106个键: 字母数字区域 有66个按键, 数字板 、 控制板 、 箭头板 和 功能区域 有 43 个键。
2.1.6. 巴西 "104" 键盘布局
巴西使用的 "104" 布局增加了4个新键: "102" 布局中的两个键("Backslash"
和 "IntlBackslash"
)加上 "IntlRo"
键(右移键 "ShiftRight"
旁边)和 数字板 上的一个额外键。这个 数字板 上的新按键被称为 "NumpadComma"
(数字键盘逗号),因为它代表千位分隔符。
在巴西键布局上,这个按键键帽标签为 .
,并且 "NumpadDecimal"
键被键帽标签为 ,
。
现代 "104" 布局的键盘包含107个键: 字母数字区域 有63个按键, 数字板 、 控制板 、 箭头板 和 功能区域 有 44 个键。 一些巴西键盘的 小键盘 上( 数字板 )没有额外的按键,只有106个键。
巴西的键盘以 "102" 键盘布局为基础,从 code
值上看,和 "102"
键盘布局相同 code
值的两个按键(位于大 Enter
下方的 "Backslash"
和在 ShiftLeft
和 Z
之间的 "IntlBackslash"
)具有异同的键帽标签,前者( "Backslash"
)的键帽在巴西键盘和英式 "102" 键盘分别是 ]}
和 #~
,
后者( "IntlBackslash"
)的键帽在巴西键盘和英式 "102" 键盘 都是 \|
。除此之外,code
值为 "IntlRo"
的额外按键的键帽标签为 /?
,
下面的日式键盘中也包含这个键。
最后,在 数字板 上可能多的一个额外按键表示千位分隔符,它的 code
值为 "NumpadComma"
,要理解这个额外按键的意义,需要理解的背景是:
不同国家的数字写法不同,常见的就是小数点使用 .
,千位分隔符使用 ,
,但是国际化标准组织表示小数点是可以使用实心点或者逗号,
所以有些地区小数点使用 ,
,而千位分隔符使用 .
(正好颠倒了)。以葡萄牙和葡萄牙语地区为例,
中文数字四千五百六十七点八九使用阿拉伯数字和分隔符号表示为 4.567,89 或
4 567,89 (手写可能是 4·567,89 ),而美国地区为 4,567.89 或旧写法 4,567·89 。
所以在巴西键盘(葡萄牙语地区)的 "NumpadComma"
按键的键帽标签为 .
,而原本作为小数点分隔符号的 "NumpadDecimal"
按键的键帽标签也从 . Del
变成了 ,
,
并且在巴西键盘实际输入当地语言的时候,
按下这两个按键生成的字符和键帽是对应的。
规范给出的巴西 "104" 键盘未显示完整的键帽(上图主要显示 code
值),下面是来自维基百科的巴西葡萄牙字母数字键盘的图示:
2.1.7. 日式 "106" 键盘布局
日语 "106" 键盘布局在标准 "101" 键盘布局的基础上修改了一个按键:
-
如标准 "102" 键盘布局描述的那样,占用一行的
Enter
键上方的code
值为"Backslash"
的按键被移动到了占用两行的Enter
键下方的]む
;
增加了5个新键:
-
如备用 "101" 键盘布局的描述那样,
code
值为"Backspace"
的按键缩小,为"IntlYen"
(键帽标签为¥_
) 腾出空间; -
如巴西 "104" 键盘布局的描述那样,
code
值为"ShiftRight"
的按键缩小,为"IntlRo"
(键帽标签为\ろ
) 腾出空间; -
如韩式 "103" 键盘布局的描述那样,空格键(键帽标签为
code
值为"Space"
)被缩小,为三个输入模式(input mode) 按键腾出空间:-
code
值为"NonConvert"
, 键帽标签为無変換
,发音为 muhenkan 的按键。"無変換"
的意思就是无变换,无变换键的功能是转换假名。 在光标闪烁的状态下按无变换键可以把输入模式(默认上屏的假名类型) 从全角平假名切换到全角片假名,再按则切换到半角片假名 (全角かな→全角カナ→半角カナ)。除了切换模式以外, 也可以实现输入中的内容的假名转换。关于日语的假名及其输入,请自行查阅 维基百科 。 -
code
值为"Convert"
, 键帽标签为変換
,发音为 henkan 的按键。"変換"
的意思就是变换,变换键的功能是把输入的假名转汉字。 这一点和空格键的功能是一样的(因此平常都习惯按空格)。 所不同的是变换键还有重新转换("再変換"
)的功能。 写文章的时候如果你发现有打错同音字词("誤変換"
) 的时候用光标选定文字,然后再按一下变换键就可以重新选词修改。 非日语键盘(如中国普遍采用的美式键盘)默认可以用Windows
+/
("MetaLeft"
+"Slash"
)来代替变换键。 -
変換
右边是code
值为"KanaMode"
,键帽标签为カタカナ/ひらがな/ローマ字
,发音为 katakana/hiragana/romaji 的按键。"カタカナ/ひらがな/ローマ字"
的意思就是 片假名/平假名/罗马字, 需要配合Shift
和Alt
键来使用:
① 单独按这个键,切换回默认的平假名输入模式;
②Shift
+カタカナ/ひらがな/ローマ字
, 切换回片假名输入模式;
③Alt
+カタカナ/ひらがな/ローマ字
, 切换回罗马字输入模式;
-
现代 "106" 布局的键盘包含109个键: 字母数字区域 有66个按键, 数字板 、 控制板 、 箭头板 和 功能区域 有 43 个键。
上面的图示虽然完整显示了按键 code
值,
但是字母数字区域没有显示每个按键的完整键帽。
日本国内多使用JIS标准的键盘布局,也称为日文假名键盘,
源自维基百科的图示如下:
2.1.8. 苹果键盘布局
一般来说,苹果键盘的布局与 PC 键盘相同,但如下图所示,存在一些差异。
在此图中,绿色键表示已移动到新位置的键,而蓝色键表示已添加的键。
本节没有讨论很多关于苹果标准键盘的内容,可以参考维基百科- Apple_keyboards 查阅更多内容。下面是在苹果标准键盘上, 一些键帽显示为特殊符号并与 PC 键盘进行对比的 非规范表格:
code 值 | Mac 特殊符号 | Mac 键帽 | PC 特殊符号或键帽 |
---|---|---|---|
"MetaLeft" / "MetaRight"
| ⌘
| Command
| ⊞
|
"ControlLeft" / "ControlRight"
| ⌃
| Control
| Ctrl
|
"AltLeft" / "AltRight"
| ⌥
| Option
| Alt
|
"ShiftLeft" / "ShiftRight"
| ⇧
| Shift
| Shift
|
"CapsLock"
| ⇪
| CapsLock
| CapsLk
|
"Escape"
| ⎋
| Esc
| Esc
|
"Backspace"
| ⌫
| Delete
| Backspace
|
2.1.9. 笔记本电脑键盘布局
笔记本电脑键盘上可用的空间有限, 这通常意味着需要调整物理按键布局以适应所有所需的键。 字母数字区域 中的 书写系统键 往往保持完整, 但其他键盘区域通常与其他键组合或被完全移除。
在这个苹果笔记本电脑键盘中,右侧的控制键( "ControlRight"
)被移除,
为半行高箭头键腾出了空间,左侧增加了一个 Fn
键。
右上方增加了一个电源按键。
PC 笔记本电脑键盘差异很大,但这个示例键盘展示了一些常见的键盘布局。 控制板 区域按键沿右侧添加, 箭头板 区域按键沿底部插入。右 Shift
键通常会收缩,为向上箭头键( ↑
)腾出空间,而右 Meta
键通常会被完全移除。
2.1.10. 其它地区的键盘布局
本规范中没有明确描述其它地区的键盘布局, 因为它们通常从一个现有键盘布局出发,并通过更改键帽和键映射对其进行调整。
因为这些键盘不引入新的物理键,所以它们不需要明确的文档进行描述。
这些键盘通常基于 "101" (标准或备用) 或 "102" 布局。例如,常见的阿拉伯语、 西里尔语、希腊语、印地语、高棉语和泰语键盘都基于 "101" 或 "102" 键盘布局。
2.1.11. 中文键盘
本节不是规范的,并且不属于源英文原档规范。
中国大陆由于以基于拉丁字母的汉语拼音为主要输入法,故不使用专用的中文键盘,
而使用美式标准键盘布局,少部分键盘会在键帽上加印五笔字根。
—— 维基百科
而在使用注音或其它非拼音输入法的地区(台湾、香港及澳门等地),
使用一种叫做中文"四合一"键盘,它同样基于美式标准 "101" 键盘,
只不过在字母数字区域的按键键帽上有四个表示不同意思的字符标签:
-
每个键的左上角是美式标准布局键盘键帽标签;
-
每个键的右上角是注音符号;
-
每个键的左下角是仓颉输入法字符;
-
每个键的右下角是大易输入法字符;
下图是源于维基百科的一个中文"四合一"键盘:
2.2. 移动设备键盘
在内容作者希望依赖一个移动设备键盘(mobile keypad)的机械布局的情况下,
本规范建议使用 [ISO9995-8] 标准中指定的键盘配置,
该标准定义了一种数字键盘布局(numeric keypad layout)和在 U+0061
... U+007A
( "a"
- "z"
) 到数字按键 2
- 9
范围内的 Unicode 字符的二次分派,(该布局)常作为一种适用于某些国际用途的布局。
这种键盘布局,尤其是字母的分布,适用于英语设备, 与许多(非英语)用户的键盘或配置不匹配。 内容作者不能依赖任何特定的配置,并且应该以国际化和本地化的方式创建内容。
现代的移动设备多为智能手机,不再具有上图所示的物理键盘,而是使用触摸屏幕, 通过虚拟键盘( § 2.4 虚拟键盘和和弦键盘 )进行文本输入。下图是苹果公司发布的 IPhone 14 智能手机:
2.3. 媒体遥控器
许多键盘包含控制媒体功能的特殊键。越来越多的媒体设备,尤其是电视, 都支持网络。混合键盘/遥控设备(Hybrid keyboard/remote-control devices) 越来越普遍。为了满足这些混合 Web/媒体 设备的需求, 本规范定义了除传统键盘键外,常见的遥控器按钮(remote control buttons)。
由于尺寸较小,遥控器上的按键(或按钮)通常是模态的,
一个按键根据屏幕内容的上下文执行不同的功能。此外,
许多键用作切换键(toggles),在两个或多个状态之间来回切换(请参见切换按键)。
这些遥控器按钮通常没有修饰符状态,因此每个按钮都被分配了一个功能
(如 Play
、 Pause
、 Up
、 Menu
或 Exit
)。
2.4. 虚拟键盘和和弦键盘
虚拟键盘(virtual keyboards)是一组基于软件的按键集合,有各种不同的排列方式,
通常出现在触摸屏设备上。它们通常是模态的(modal),
能够在不同的动态键集之间切换,例如字母键、数字键或符号键。由于缺乏物理限制,
这些键盘 可以 呈现最广泛的字符,
包括表情符号和其他符号。然而,在可能的情况下,虚拟键盘 应当 生成正常范围的键盘事件和 code
值,以便于开发并与现有内容兼容。
关于模态的解释,参考 AI 的回答,但不保证准确:
如果你说键盘按键是 模态的 ,
那么通常是指这些按键的行为和反应是由软件程序控制的,而不是物理结构本身。
在模态键盘中,按键的行为和反应是根据用户的输入来决定的,
而不是按键本身的物理结构。
—— 文心一言 。
模态键盘通常被设计为可以响应不同类型的输入,例如按压、轻触、点击等,
以提供更自然、直观的输入体验。模态键盘中的按键可以根据用户的输入来变化,
例如在按下一个按键时,按键的状态会从“松开”变为“按下”,
并且可能会产生轻微的震动或声音反馈,以增强用户的操作感受。
因此,将键盘按键视为模态的,主要是基于其行为和反馈的变化,
而不是按键物理结构本身。
虚拟键盘依靠的软件也就是输入法编辑器(input method editor),详情参见 [UIEvents] 中的 输入法编辑器 。下图是一个拼音输入法编辑器软件(微软操作系统自带的):
和弦键盘(Chording keyboards),也称为弦键组(chorded keysets)或和弦键盘 (chord keyboards),是一种键输入设备,通过组合或顺序按下几个键来产生值, 通常是为了在一组缩小的键上模拟全范围的字符或命令,并且可以单手使用。 和弦键盘 可以 有额外的模式键来在键值之间切换, 并且键按下时产生的键值的数量和类型会有所不同, 但这种键盘最终产生的键值 应当 与本规范中描述的键值范围相匹配。
对于这些和其他备用模态键盘,在不同模式之间进行切换的并被 推荐的 的按键的 key
值: "Alphanumeric"
, "CapsLock"
, "NumLock"
和 "SymbolLock"
。
更多关于和弦键盘的内容,参阅英文维基百科的 Chorded keyboard 。
2.5. 非标准键盘分区
本节不是规范的,并且不属于源英文原档规范。
本规范在键盘分区时,将标准键盘分为 5 个通用区域, 这种分类方式主要基于按键的位置。
对于一般的标准计算机的键盘(也称 PC/AT 键盘, QWEWRTY 键盘) 维基百科介绍了一种基于按键的用途进行分类的方式,包括 § 2.5.1 功能键 、 § 2.5.2 字母数字键或字符键 、 § 2.5.3 回车键和编辑键 、 § 2.5.4 系统和 GUI 键 、 § 2.5.5 小键盘数字按键 、 § 2.5.6 锁定按键 、 § 2.5.7 导航按键 、 § 2.5.8 修饰符按键 。 如下美式标准 "101" 键盘布局按功能分区的图示:
2.5.1. 功能键
功能键(Function keys) —— F1
~ F12
。功能键是计算机或终端键盘上的一种键,可以对其进行编程,
以使操作系统命令解释器或应用程序执行某些操作,这是软键的一种形式。
在一些键盘/计算机上,功能键可能具有默认操作,可在开机时访问。
在微软操作系统中,
每个应用程序可以自定义决定每个功能键对应用程序本身意味着什么,
并且在功能键被按下时执行应用程序想要的操作,例如在一般的浏览器中, F5
表示刷新浏览器的当前页面。
2.5.2. 字母数字键或字符键
字母数字键或字符键(Alphanumeric 或 Character
keys) —— ~`
, 1!
, 2@
~ 9(
, 0)
, -_
, =+
, aA
~ zZ
, [{
, ]}
, \|
, ;:
, '"
, ,<
,.>
, /?
,
(空格键)。这些按键都用于键入字母和其它字符(typing)。
2.5.3. 回车键和编辑键
回车键和编辑键(Enter and editing keys) ——Enter/↵
, "NumpadEnter"
, Backspace
, Delete
,Insert
。在文本模式下,
-
"回车(Enter)"键可以终止一段文本,并将编辑光标移动到下一行的开头;
-
"回退(Backspace)" 键可以将编辑光标向后移动一个位置,并删除该位置的字符;
-
"删除(Delete)"键可以删除编辑光标前面或下面的字符,或删除当前选择的对象;
-
"插入(Insert)"键可以切换输入模式。在插入模式(insert mode ,默认)下, 光标在当前位置插入一个字符,原来的字相应后移。在覆盖模式(overtype mode) 下,光标位置新输入字会替代原来的字。这一按键常在计算机终端中使用, 微软的 word 编辑器也有效果,其它可输入框可能无效。下面是在 word 编辑器中使用插入键的一个例子,
2.5.4. 系统和 GUI 键
系统和 GUI 键(System and GUI keys) ——Meta
属于系统命令键(system command keys),GUI 按键包括 Esc
, PrtScr SysRq
, Pause Break
:
-
系统命令按键也就是
Meta
键,它实际上也是一种修饰符按键, 在不同的操作系统上有不同的键帽。Meta
这个单词有变化之意, 在微软的 Windows 操作系统也常用于配合其它按键调用许多常见系统功能;Meta 键是以前 MIT 计算机键盘上的的一个特殊键,例如 Symbolics Space-cadet keyboard 就是 MIT Lisp 计算机上的由 Tom knight 设计的键盘, 后来 Sun 的键盘上也包含有此键,只不过标示为 Sun 的菱形徽标。现代, 这个按键发展到和操作系统相关联,在 Linux 和 BSD 操作系统上,它是Super
键,在 Windows 操作系统上,它是⊞Win
键,在 MacOS 操作系统上 它是⌘Cmd
,虽然键帽不同,但是这个按键的code
值都是"MetaLeft"
或"MetaRight"
。
查阅更多的按键信息,可以在维基百科上搜索 Meta Key , Super Key , Command Key 或 Windows Key 。 -
Esc
键的code
值是"Escape"
, 位于标准键盘布局的左上角。escape
本身有逃离,摆脱的意思, 现代常称其为退出键,中断键, 在应用程序中也常使用这个按键执行程序的退出和中断功能;在 以前 的计算机键盘上,Esc
键是一个用于生成转义字符( Escape character )的键。但是现在的计算机用户不再需要关心转义序列,"Escape"
键被应用程序程序员挪用,通常是指 停止 ,用于 "否"、"退出"、"取消" 或 "中止" 对话框中的快捷键, 也是许多 Web 浏览器中 停止 按钮的常用快捷键, 并用于取消拖放操作。
除此之外,不同操作系统对"Escape"
键也有许多不同的快捷键使用方式。 在 Windows 操作系统上,按住Ctrl
和Esc
可以调出开始菜单,相当于按下了⊞Win
键。在 MacOS 中,Esc
通常会关闭或取消对话框或工作表,⌘Command
+⌥ Option
+Esc
组合会打开强制退出对话框, 允许用户结束无响应的应用程序。
在维基百科的 Esc key 上查阅更多"Escape"
键信息。 -
PrtScr SysRq
按键的code
值是"PrintScreen"
, 它的键帽也可以是Print Screen
,除此之外还有 Print Scrn ,Prnt Scrn , Prnt Scr , Prt Scrn , Prt Scn , Prt Scr , Prt Sc , Pr Sc 或 PS 缩写,它在(标准键盘布局) 功能键F12
的右边,锁定按键Scroll Lock
的左边,表示打印屏幕, 通俗而言就是截图的意思。在 以前 基于命令行的操作系统(如 MS-DOS )下, 此键会将当前文本模式屏幕内存缓冲区的内容复制到标准打印机端口。 现在使用图形界面的新一代操作系统倾向于将当前屏幕的位图图像或屏幕截图 (screenshot)保存到剪贴板(clipboard)或类似的存储区域。例如在 Windows 操作系统中按下PrtScr SysRq
按键,然后通过⊞Win
+V
调出剪贴板 GUI 程序,会发现包含刚才屏幕截图, 如下图。除此之外,按下⊞Win
+PrtScr SysRq
组合按键, 会将屏幕截图保存在默认的图片文件夹中。 -
Pause Break
按键的code
值是"Pause"
, 称为中断键,暂停键,它也可以使用符号 ⎉ 表示。Pause Break
键最大的用处在于能快速调出电脑的系统属性, 按下组合键⊞ Win
+ EYCAP{Pause Break} ,即可看到。 除此之外,在开机和处于 DOS 模式的时候,按下Pause Break
来暂停进程,之后按下任意键便可继续。有些 IDE (基础开发环境) 在调试程序时可能也会使用Pause Break
作为暂停程序的快捷键, 并且提供Ctrl
+Pause Break
组合键结束调试。
2.5.5. 小键盘数字按键
小键盘数字按键(Numeric keypad) ——0 Ins
,1 End
,2 ↓
, 3 PgDn
, 4 ←
, 5
, 6 →
,7 Home
, 8 ↑
, 9 PgUp
, /
, *
, -
,-
, . Del
。这些数字按键便于输入数学数字和运算符号,它们的 code
值和 字母数字键或字符键 的数字键不同,
前者以"Numpad"为前缀,后者以"Digit"为前缀,例如 "Numpad0"
和 "Digit0"
。除此之外,小键盘数字按键组合 Shift
按键可以实现其它区域按键的功能,例如 Shift
+ 1 End
就相当于导航按键 End
。小键盘上的数字键功能会被 锁定按键 影响。
2.5.6. 锁定按键
锁定按键(Lock keys) —— CapsLock
, ScrollLock
, Num Lock
。 LOCK 是一种功能,根据所选的锁定设置,将键盘的部分键锁定到不同的操作模式。
标准键盘上右上方会有三个指示灯指示三个锁定按键的锁定模式是否被启用,
一般是两种状态,灯亮表示锁定键控制的按键的锁定模式启用,
灯暗表示锁定按键控制的按键的锁定模式没有启用。默认情况下,只有 Number Lock
指示灯亮,表示它控制的小键盘数字按键(Numeric keypad)处于锁定模式下。
-
数字锁定(Num Lock)或数字锁定(Numeric Lock ,
⇭
) 是大多数计算机键盘的小键盘(Numeric keypad)上的一个键 (在位置区域划分上,这个锁定键肯定是属于小键盘的)。 它的状态会影响位于主键盘右侧的 小键盘数字按键 的功能, 并且状态值由内置在键盘中的 LED 显示,按下Num Lock
就能切换锁定状态。需要知晓的是/
,*
,-
,-
的功能不受数字锁定键的状态影响, 受影响的主要是小键盘上的0 End
~9 PgUp
以及. Del
,后面说的数字按键指代的就是这11个按键。在锁定情况下(灯亮),数字按键就如同 小键盘数字按键 描述的那样, 可以输入数学数字(以及小数点),并且能组合
Shift
按键实现其它区域按键的功能; 在未锁定的情况下(灯暗), 数字按键就无法输入数学数字(以及小数点),但是单独按下会执行在锁定状态下的Shift
+Numpad
功能,也就是说, 数字锁定键的未锁定状态相当于让数字按键的功能, 默认是键帽下方的标签对应按键的功能。
数字按键(键帽) | 锁定(灯亮) | 未锁定(灯暗)后的等同的功能按键 |
---|---|---|
0 Ins
| 0 | Ins 插入键,参阅 回车键和编辑键
|
1 End
| 1 | End 结束键,参阅 回车键和编辑键
|
2 ↓
| 2 | ↓ 下箭头键,参阅 导航按键
|
3 PgDn
| 3 | PgDn 向下翻页键,参阅 导航按键
|
4 ←
| 4 | ← 左箭头键,参阅 导航按键
|
5
| 5 | 通常什么都不做 |
6 →
| 6 | → 右箭头键,参阅 导航按键
|
7 Home
| 7 | Home 起始键,参阅 导航按键
|
8 ↑
| 8 | ↑ 上箭头键,参阅 导航按键
|
9 PgUp
| 9 | PgUp 向上翻页键,参阅 导航按键
|
. Del
| . 或 , | Del 删除键,参阅 回车键和编辑键
|
-
滚动锁定(Scroll Lock ,
⤓
或⇳
) 是大多数 IBM 兼容计算机键盘上的锁定键(通常带有相关的状态指示灯)。根据操作系统的不同, 改键具有不同的使用目的。这个按键不常使用,所以有些键盘精简了这个按键。在 Windows 操作系统下,
ScrLk
是一种切换锁定按键, 旨在修改箭头按键的行为。当滚动锁定模式打开时(灯亮), 箭头键将滚动文本窗口内容,而不是移动光标; 当滚动锁定模式关闭时(默认, 灯灭),箭头键将移动光标; 并且这种锁定模式切换只在有限的应用程序中有效果, 如微软的 Excel ,下图是展示滚动锁定按键功能的动图:浏览器都不支持通过
ScrLk
切换滚动锁定模式, 但是支持光标模式(Caret browsing)的浏览器(谷歌,火狐, IE 等)都支持使用 功能键 的F7
来切换用户的浏览模式。默认情况下, 浏览器禁用了光标导航,箭头键将滚动文本窗口内容,这和滚动锁定模式打开时类似 。在启用了关闭模式后(按下F7
),浏览器会在文档内容区域移动光标, 和滚动锁定模式关闭时类似。大多数 GUI 环境都忽略了
ScrLk
按键的功能, 而有些则是使用其他组合按键实现了内容滚动和光标移动之间的切换。例如 一些文本编辑器(如Notepad++、Microsoft Visual Studio), 默认情况下按箭头按键会移动文本编辑区域的光标(相当于滚动锁定模式开启), 但是当按下Ctrl
键,组合箭头按键一起使用时, 就能滚动文本编辑器窗口内容了。 -
大写锁定键(Caps Lock ,
Caps Lock
,⇪
或CapsLk
),位于 C 行左边第一个,它能控制字母的输入模式, 按下它就会在打字的时候转换到大写模式,打出来的英文字母都默认为大写。 这种状态会一直保持下去直至你再按一次大写锁定键,标准 "101" 键盘上右上角包含对应的大写锁定的 LED 灯以显示大写锁定键的启用状态。 在一些电脑上,Shift
+Alpha
组合键 可以 键入当前输入字母对应的 相反 的大写或小写字母,也就是说,在大写锁定键启用(灯亮)时 ,使用改组合键会键入小写字母。
2.5.7. 导航按键
导航按键(Navigation keys) —— ↑
, ↓
,←
,→
,Home
/ ↖
, End
/ ↘
, PgDn
/ ⇟
, PgUp
/ ⇞
。
导航按键主要用于在屏幕上移动文本光标,特别是在文本编辑器中,
箭头按键能很好的将光标进行上下左右的移动。除此之外,导航按键结合不同的 修饰符按键 也能实现很多快捷操作,例如在 锁定按键 中提到的 Ctrl
+ Arrow
组合键能模拟滚动锁定模式开启的状态,
实现滚动窗口内容的效果。
-
起始键(Home Keys),其标准符号为
⇱
,在现代 Microsoft Windows 文本编辑应用程序中,起始键主要用于将光标返回到移动所在行的开头。 当文本不可编辑时,起始键键用于返回到文档的开头; 如果Ctrl
+Home
一起按下,也可以在可编辑文本中将光标返回到文档开头; 如果⇧ Shfit
+Home
一起按下, 可以选择光标所在行中光标之前的所有字符。在 MacOS 和 Linux 操作系统中起始键会有类似的作用,以及在非 GUI 操作系统中会有不同的效果,在维基百科 Home key 中查阅更多信息。 -
终点键(End Keys),其标准符号为
⇲
,该键的效果与Home
按键相反,在现代 Microsoft Windows 文本编辑应用程序中,KYECAP{End} 键主要用于将光标移动到光标所在行的末尾。当文本不可编辑时,KYECAP{End} 键用于将光标滚动到文档的末尾; 如果Ctrl
+End
一起按下, 也可以在可编辑文本中将光标移动到文档末尾; 如果⇧ Shfit
+Home
一起按下,可以选择光标所在行中光标之后的所有字符。在 MacOS 和 Linux 操作系统中End
键会有类似的作用,以及在非 GUI 操作系统中会有不同的效果,在维基百科 End key 中查阅更多信息。 -
箭头键(Arrow keys),又称为光标移动键(cursor movement keys), 设计它的目的是沿着指定方向移动光标。术语"光标移动键"与"箭头键"的区别在于, 前者可以指计算机键盘上指定用于光标移动的各种键中的任何一个, 而"箭头键"通常指四个特定键中的一个,通常用箭头标记。除了移动光标的功能外, 箭头键还有滚动网页内容,在文件资源管理器中更改当前选定文件/文件夹, 在图形软件中移动选定对象的位置,在 Windows 操作系统中与
⊞
(详见 系统和 GUI 键 中的Meta
) 按键组合能将当前应用程序按照箭头方向进行分区。不同的应用程序中,箭头键会有不同的作用, 并且会有完全不同的备用按键 可以 有箭头按键的相同功能(如 锁定按键 中的Num Lock
未锁定后, 小键盘数字按键 里的2
,4
,6
,8
能作为光标移动键)。在维基百科 Arrow keys 中查阅更多信息。 -
向上翻页和向下翻页键(Page Up and Page Down keys), 这两个键主要用于在文档中向上或向下滚动,但不同应用程序之间的滚动距离不同。 例如,在文本编辑器中,它们可以通过模拟实际的翻页进行跳转, 也可以通过屏幕视图进行跳转,在文档短于显示区域时,
PgUp
和PgDn
通常看不到效果。在维基百科 Page Up and Page Down keys 中查阅更多信息。
2.5.8. 修饰符按键
修饰符按键(Modifier keys) —— "ShiftLeft"
, "ShiftRight"
, "ControlLeft"
, "ControlRight"
, "AltLeft"
, "AltRight"
。还有 系统和 GUI 键 中的 Meta
也是修饰符键,
只不过它与操作系统有关,是比较特殊的修饰符键。在计算中,
修饰符按键是计算机键盘上的一种特殊键(或组合键),当按下时,
它会临时修改另一个键的正常功能。修饰符键本身通常不起任何作用; 也就是说,
单独按下 ⇧ Shift
、 Alt
或 Ctrl
键 (通常)
不会触发计算机的任何操作。查阅维基百科 Modifier key 获取更多信息。
-
Shift
键,也可以使用⇧
符号表示, 用于键入大写字母和其他备用的"大写(upper)"字符,中文称为"换档键"或"上档键"。 这里的备用"大写"字符将大写含义扩大到了其它字符, 大多数符号键和数字键都有两个符号,键帽上会具体显示, 其中在下面的键帽标签可以直接键入,在上面的键帽标签要先按住Shift
键不放后才能按下键入。通常有两个换档键,分别位于 B 行的左侧和右侧。 除了键入同一按键表示的不同字符外,这个修饰符也有其它功能,详情见维基百科 换档键 。 -
Ctrl
键,全称Control
,中文名称为"控制键", 它作为修饰符键与其它按键组合会执行特殊操作,与Shift
类似, 单独按下Ctrl
很少执行功能。控制键最常见的两个组合按键就是复制(Ctrl
+C
)和粘贴(Ctrl
+V
)。 不同的应用程序也会利用Ctrl
修饰符键组合自己的功能, 更多的快捷组合按键查阅维基百科 Control key 。 -
Alt
键,全称Alternate
,中文名称为"转换键", 它通常与其他键组合发挥作用。它与其他按键组合工作时,通常用于切换窗口、 关闭当前应用程序、选择菜单、命令和选项等功能。例如Alt
+Tab ↹
组合键能在大多数窗口系统上,在当前打开的窗口之间切换, 这些窗口被认为是 alt选项卡(alt-tabbing)。需要注意的是,有些计算机键盘的
"AltRight"
的键帽标签为AltGr
(AltGraph),这个时候这个按键就具有了不同的功能,用于键入不常见的字符, 如货币符号、预组字元等,并且与Shift
按键功能类似,例如:AltGr
+C
会键入字符"©"
。
它是电脑键盘或打字机上一种特殊的快捷键。 它们通常用来对原始的拉丁字母加上附加符号。死键并不会输出一个完整的字母, 而是改变下一个按下的键的输出结果。 因此不需要为每一个字母与每一个标音的组合都对应一个单独的键; 只要为每一个标音对应一个死键便足够。举例来说,若键盘上有一个重音符(—— 维基百科 死键 。`
)的死键,要输出法文字母 à 只需要先按下`
,再按下A
。如果是 è 则是先按下`
再按下E.而通常来说,通过键入`
与"Space"
可以产生一个单独的标音符号。
基本上,美式标准键盘没有任何死键, 所以沿用这种键盘的中国大陆地区使用的键盘也没有死键, 但是世界上大多数地区销售的键盘都有一个
AltGr
(Alternative graphic)键,
它可以直接修改一些字母,并将其他字母变成死键(取决于键盘设置)。 旧的计算机系统,如 MSX ,通常有一个标记为死键的特殊键,它与—— 维基百科 Dead keyCtrl
键和Shift
键相结合,可以用来将西欧语言中常见的一些变音符号(´
、`
、ˆ
和¨
)添加到随后键入的元音中。
2.5.9. 应用程序键
应用程序键(Menu key 或 Application key)
—— "ContextMenu"
,或称"菜单键",是微软 Windows
操作系统计算机键盘上的一个按键。这个按键一般位于键盘右侧,在 "ControlRight"
和 Meta
键(或位于 "ControlRight"
和 "AltRight"
)之间,主要功能为通过键盘,而不是鼠标右键,弹出相关菜单。
菜单键和 ⊞
(Windows)键是同时发明的,
它的标志是一个鼠标光标悬停在其上方的菜单,用符号 ≣
表示。
2.5.10. 其它补充
每个按键都有其自身的发展历史,每个按键也可能因为操作系统,区域,
硬件等环境不同而具有不同的功能,因此键盘的分区会有不同的方式,
本章节的分区方式仅提供一种参考。
按照原文档的通过位置进行分区的方法可能更好理解,
但是理解每个按键的功能也很重要,故而提出了按照大致的功能进行划分的方式,
但是按键之间可能会有交叉或特殊的功能,所以不要把这种划分看"死",例如 系统和 GUI 键 中的 Meta
按键实际上也可以是 修饰符按键 。
3. 键盘事件 code
值表格
本节定义了一个适用于作 code
值的值列表。
按键码属性值(key code attribute value)
可以是本规范的本节中,所有表的 "KeyboardEvent.code
"
列中给定的任何值。
本节中的每个表都有一个"必需(Required)"列, 用于指示符合规范的实现是否必须实现改值。"必需(Required)"列为"否(No)" 的单元格表示(改值)是可选的,实现可以用这个值支持特殊键盘(如多媒体或遗留键盘)。
注意: 本规范中列出的某些 "必需(Required)" 值可能不适用于所有平台或设备。例如,
Mac 键盘没有 Insert
键,而标准 PC 键盘没有 Help
键。
对于本规范中列为 "必需(Required)" 的每个按键,只要该按键在该平台上可用,
符合规范的实现的 KeyboardEvent
接口就 必须 返回正确的值。
注意: 虽然已经尽一切努力使按键码值列表尽可能完整,但随着新输入设备的引入, 需要定期定义新值。与其允许用户代理定义自己的 按键码属性值 (这些属性值很难在多个用户代理机构之间统一), 应当 提供一种归档方法来更新这个规范, 以便可以检测到这些漏洞(bugs)。
3.1. 字母数字区域
字母数字区域(alphanumeric section)是键盘的主要部分。 它包含的键分为两大类: 书写系统键 (writing system keys) 和 功能键② (functional keys),前者的含义根据当前键盘布局而变化, 后者(大部分)对所有布局都是相同的。
3.1.1. 书写系统键
书写系统键 是那些根据当前语言环境和键盘布局改变含义(即,它们产生不同的 key
)的键。
此图显示了一个虚构的键盘,它将可以在各种键盘上找到的所有 书写系统键 (以蓝色和绿色显示)合并在起义。所有标准键盘上都有蓝色的键, 而绿色键仅在某些键盘上存在。
每个按键上显示的名称是分配给该按键的 code
。
在可能的情况下, code
名称基于该位置的美国键的名称(即,
它们基于美式 "101" 标准键盘布局),这遵循 [USB-HID] 中的命名约定。
对于美式键盘上不存在的键,则使用英式或日式键盘布局的名称。
请注意,此图中有两个 "Backslash"
键: 大的那一个键位于标准 "101"
键盘布局的 D 行末尾,另一个小的位于 "102" 、 "104" 和 "106" 键盘布局的
C 行的 "Quote"
和 "Enter"
之间。键盘布局上只能有一个 "Backslash"
键。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"Backquote"
| 是 | 在美式键盘上键帽标签是 `~ (反引号 波浪号)。 在日式键盘上是 半角/全角/漢字 (hankaku/zenkaku/汉字)键。
|
"Backslash"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 \| (反斜杠 竖线),如果 102 、 104 、 106 键盘布局上的该键位于 C
行的 " 和 Enter 之间则拥有同样的键帽标签。
在标准英式 102 键盘布局上的键帽标签是 #~ (井号 波浪号)。
|
"BracketLeft"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 [{ (左方括号 左花括号)。
|
"BracketRight"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 ]} (右方括号 右花括号)。
|
"Comma"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 ,< (逗号 左角括号)。
|
"Digit0"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 0) (零 右括号)。
|
"Digit1"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 1! (一 叹号)。
|
"Digit2"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 2@ (二 艾特号)。
|
"Digit3"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 3# (三 井号)。
|
"Digit4"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 4$ (四 金钱符号)。
|
"Digit5"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 5% (五 百分号)。
|
"Digit6"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 6^ (六 ^ 有多种含义: 插入符号、脱字符号、逻辑异或符号、
幂等)。
|
"Digit7"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 7& (七 与号、和号)。
|
"Digit8"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 8* (八 星号)。
|
"Digit9"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 9( (九 左括号)。
|
"Equal"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 =+ (等号 加号)。
|
"IntlBackslash"
| 是 | 位于左 Shift 键和 Z 键之间。 在标准英式键盘上的键帽标签是 \| (反斜杠 竖线)。
|
"IntlRo"
| 是 | 位于/ ( "Slash" )和右 Shift 键之间。 在标准日式键盘上的键帽标签是 \ろ (反斜杠 ろ,发音 ro )。
|
"IntlYen"
| 是 | 位于 = 和 Backspace 键之间。 在标准日式键盘上的键帽标签是 ¥ (日元符号)。
在标准俄式键盘上的键帽标签是 \/ (反斜杠 斜杠)。
|
"KeyA"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 a 。 在 AZERTY (例如法语)键盘上的键帽标签是 q 。
|
"KeyB"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 b 。
|
"KeyC"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 c 。
|
"KeyD"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 d 。
|
"KeyE"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 e 。
|
"KeyF"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 f 。
|
"KeyG"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 g 。
|
"KeyH"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 h 。
|
"KeyI"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 i 。
|
"KeyJ"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 j 。
|
"KeyK"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 k 。
|
"KeyL"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 l 。
|
"KeyM"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 m 。
|
"KeyN"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 n 。
|
"KeyO"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 o 。
|
"KeyP"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 p 。
|
"KeyQ"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 q 。 在 AZERTY (例如法语)键盘上的键帽标签是 a 。
|
"KeyR"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 r 。
|
"KeyS"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 s 。
|
"KeyT"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 t 。
|
"KeyU"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 u 。
|
"KeyV"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 v 。
|
"KeyW"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 w 。 在 AZERTY (例如法语)键盘上的键帽标签是 z 。
|
"KeyX"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 x 。
|
"KeyY"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 y 。 在 QWERTZ (例如德语)键盘上的键帽标签是 z 。
|
"KeyZ"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 z 。 在 AZERTY (例如法语)键盘上的键帽标签是 w 。
在 QWERTZ (例如德语)键盘上的键帽标签是 y 。
|
"Minus"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 -_ (连字暨减号 下划线)。
|
"Period"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 .> (句号 右角括号)。
|
"Quote"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 '" (单引号 双引号)。
|
"Semicolon"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 ;: (分号 冒号)。
|
"Slash"
| 是 | 在标准美式 101 键盘布局上的键帽标签是 /? (斜杠 问号)。
|
尽管有大量的键盘布局用拉丁字母书写的语言, 但这些布局中的大多数都非常相似。根据A、M、Q、W、Y和Z键在键盘上的位置, 它们可以分为三个主要类别。这些布局通常以 D 行的前六个字母命名: AZERTY 、 QWERTY 、 QWERTZ 、 QZERTY 及其其它国家变体。—— 维基百科 Keyboard layout
需要注意的是,上表中的按键的
code
值大部分基于美式标准键盘,
美式标准键盘属于 QWERTY 布局,code
值和键帽是一一对应的。
但在其它键盘布局下,在浏览器中触发的 KeyboardEvent 事件对象的 code
属性值通常与键帽标签对应,但 不一定完全相同 。上表就指出了在 AZERTY 键盘布局下, "KeyW"
和 "KeyZ"
的按键键帽标签分别对应 z
和 w
, "KeyA"
和 "KeyQ"
的按键键帽标签分别对应 q
和 a
;
在 QWERTZ 键盘布局下, "KeyY"
和 "KeyZ"
的按键键帽标签分别对应 z
和 y
。在实际输入过程中,输入的字符基本上以键帽为准。 3.1.2. 功能键
功能键② (functional keys , 不要与前面描述的 功能键 和后面描述的 功能键③ 混淆),
这里指 字母数字区域 中的那些功能按键,
它们提供所有语言环境通用的编辑功能(如 Shift
, Tab
, Enter
和 Backspace
)。除了少数例外,
这些键不会根据当前键盘布局更改含义。
"AltRight"
键(以绿色突出显示)是唯一不会为每个区域设置生成相同的 key
值的 功能键② 。在某些地区,它会生成 "Alt"
,而在其他地区,它生成 "AltGraph"
。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"AltLeft"
| 是 | Alt ,Option 或 ⌥ 。
|
"AltRight"
| 是 | Alt ,Option 或 ⌥ 。 在许多键盘布局中,该按键键帽标签为 AltGr 。
|
"Backspace"
| 是 | Backspace 或 ⌫ 。 在苹果键盘布局中,该按键键帽标签为 Delete 。
|
"CapsLock"
| 是 | CapsLock 或 ⇪
|
"ContextMenu"
| 是 | 应用程序上下文菜单键,通常位于右侧 Meta 键和右侧 Control 之间。(非规范补充: 常用 ≣ 表示,见 应用程序键 。)
|
"ControlLeft"
| 是 | Control 或 ⌃
|
"ControlRight"
| 是 | Control 或 ⌃
|
"Enter"
| 是 | Enter 或 ↵ 。 在苹果键盘布局中,该按键键帽标签为 Return 。
|
"MetaLeft"
| 是 | Windows 操作系统下键帽标签是 ⊞ ; 在苹果键盘布局中,该按键键帽标签为 ⌘ , Command ; 或其它操作系统定义的操作系统符号键。
(非规范补充: 参阅 系统和 GUI 键 获取更多信息)
|
"MetaRight"
| 是 | Windows 操作系统下键帽标签是 ⊞ ; 在苹果键盘布局中,该按键键帽标签为 ⌘ , Command ; 或其它操作系统定义的操作系统符号键。
(非规范补充: 参阅 系统和 GUI 键 获取更多信息)
|
"ShiftLeft"
| 是 | Shift 或 ⇧
|
"ShiftRight"
| 是 | Shift 或 ⇧
|
"Space"
| 是 | (空格)
|
"Tab"
| 是 | Tab 或 ⇥
|
在一些键盘(尤其是日语和韩语)上,空格键的尺寸减小了,以便为底部一行( A
行)的额外按键腾出空间。这些键通常允许用户改变当前的输入模式。请注意,
尽管这些日语和韩语键中的一些键在键盘上占据相同的物理位置,但它们使用不同的 code
值。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"NonConvert"
| 是 | 日语: 無変換 ( muhenkan )
|
"Convert"
| 是 | 日语: 変換 ( henkan )
|
"KanaMode"
| 是 | 日语: カタカナ/ひらがな/ローマ字 ( katakana/hiragana/romaji )
|
"Lang1"
| 否 | 韩语: HangulMode 한/영 ( han/yeong ) 日语 (Mac 键盘): かな ( kana )
|
"Lang2"
| 否 | 韩语: Hanja 한자 ( hanja )日语(Mac keyboard): 英数 ( eisu )
|
"Lang3"
| 否 | 日语(文字处理器键盘): Katakana |
"Lang4"
| 否 | 日语(文字处理器键盘): Hiragana |
"Lang5"
| 否 | 日语(文字处理器键盘): Zenkaku/Hankaku |
在苹果键盘上,底部一行的一些键被省略, 未被省略的键则按(和上图)不同的顺序排列。
"Lang3"
~ "Lang5"
属于文字处理器的键盘上的按键,"Lang1"
~ "Lang5"
是可选的,实现可以用这个值支持特殊键盘。更多信息请查阅维基百科 word processor 。 3.2. 控制板区域
键盘的 控制板 (control pad)区域是一组(通常有
6 个键)用于执行导航和编辑操作的按键,例如 Home
, PageUp
和 Insert
。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"Delete"
| 是 | ⌦ 。 前向删除键。请注意,在苹果键盘上, 键盘的字母数字区域按键标签为 Delete 的键应编码为 "Backspace" 。
|
"End"
| 是 | End 或 ↘
|
"Help"
| 是 | Help 。 标准 PC 键盘上不存在。
|
"Home"
| 是 | Home 或 ↖
|
"Insert"
| 是 | Insert 或 Ins 。 Not present on Apple keyboards.
|
"PageDown"
| 是 | Page Down ,PgDn 或 ⇟
|
"PageUp"
| 是 | Page Up ,PgUp 或 ⇞
|
Fn
(常见于苹果标准键盘)键的 code
定义在下面的 功能区域 。
3.3. 箭头板区域
箭头板 (arrow pad)区域包含4个箭头键。 按键通常以"倒置 T"的配置进行排列。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"ArrowDown"
| 是 | ↓
|
"ArrowLeft"
| 是 | ←
|
"ArrowRight"
| 是 | →
|
"ArrowUp"
| 是 | ↑
|
3.4. 数字板区域
在键盘上的 数字板 (numpad) 区域是一组按键,
排列成网格状,就像计算器或手机那样。本节包含数字和数学运算符键。通常,
数字板区域会包含 NumLock
键,该键可使数字板中的按键的功能,
在标准数字功能和模拟 控制板 与 箭头板 中按键的功能之间进行切换。
笔记本电脑和紧凑型键盘通常会省略这些键以节省空间。
NumLock
的功能可以参阅 § 2.5.6 锁定按键 中的数字锁定键。 小键盘 (keypad)是 数字板 的备用术语。
本节中的 code
值也应用于手机小键盘和遥控设备中在网格上排列的数字键。
标准 数字板 有时包含括号(parentheses)、运算符(operators)、
十六进制符号(hexadecimal symbols)或计算器函数键(calculator functions,如 Backspace
)这些附加键以扩展。下表列出了一些常用的附加键。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"NumLock"
| 是 | 在 Mac 中,"NumLock" 码应当用于数字板中的 Clear 键。
|
"Numpad0"
| 是 | 在标准键盘上的按键键帽标签是 0 Ins 在移动设备或遥控器上的按键键帽标签是 0
|
"Numpad1"
| 是 | 在标准键盘上的按键键帽标签是 1 End 在移动设备或遥控器上的按键键帽标签是 1 或 1 QZ
|
"Numpad2"
| 是 | 在标准键盘上的按键键帽标签是 2 ↓ 在移动设备或遥控器上的按键键帽标签是 2 ABC
|
"Numpad3"
| 是 | 在标准键盘上的按键键帽标签是 3 PgDn 在移动设备或遥控器上的按键键帽标签是 3 DEF
|
"Numpad4"
| 是 | 在标准键盘上的按键键帽标签是 4 ← 在移动设备或遥控器上的按键键帽标签是 4 GHI
|
"Numpad5"
| 是 | 在标准键盘上的按键键帽标签是 5 在移动设备或遥控器上的按键键帽标签是 5 JKL
|
"Numpad6"
| 是 | 在标准键盘上的按键键帽标签是 6 → 在移动设备或遥控器上的按键键帽标签是 6 MNO
|
"Numpad7"
| 是 | 在标准键盘上的按键键帽标签是 7 Home 在移动设备或遥控器上的按键键帽标签是 7 PQRS 或 7 PRS
|
"Numpad8"
| 是 | 在标准键盘上的按键键帽标签是 8 ↑ 在移动设备或遥控器上的按键键帽标签是 8 TUV
|
"Numpad9"
| 是 | 在标准键盘上的按键键帽标签是 9 PgUp 在移动设备或遥控器上的按键键帽标签是 9 WXYZ 或 9 WXY
|
"NumpadAdd"
| 是 | +
|
"NumpadBackspace"
| 否 | 出现在微软自然键盘(Microsoft Natural Keyboard)中。 |
"NumpadClear"
| 否 | C 或 AC (All Clear,全部清除)。 用于在 数字板 中已有一个 NumLock 键的情况下,
还需要有一个 Clear 时,使用 "NumpadClear" 进行区分。因为在 Mac 中,"NumLock" 码总是用于 数字板 中的 Clear 键。
|
"NumpadClearEntry"
| 否 | CE (Clear Entry,清除输入)
|
"NumpadComma"
| 否 | , (千位分隔符). 对于千位分隔符是 "."的地区 (例如,巴西),这个按键键帽标签是 . 。(非规范补充:
与键入字符对应,见 巴西 "104"
键盘的非规范注释 )
|
"NumpadDecimal"
| 是 | . Del 。 对于小数点分隔符是 "."的地区 (例如,巴西),这个按键键帽标签是 , 。(非规范补充:
与键入字符对应,见 巴西 "104"
键盘的非规范注释 )
|
"NumpadDivide"
| 是 | /
|
"NumpadEnter"
| 是 | |
"NumpadEqual"
| 否 | =
|
"NumpadHash"
| 否 | 在标准键盘上的按键键帽标签是 # 。 此按键通常位于 9 键的下方和 0 键右侧。
(非规范补充: 见 通用移动键盘的图形描述 )
|
"NumpadMemoryAdd"
| 否 | M+ 将当前计算结果(current entry )添加到存储在内存的一个值中。
|
"NumpadMemoryClear"
| 否 | MC 清除存储在内存中的 (那个保存计算结果的)值。
|
"NumpadMemoryRecall"
| 否 | MR 将当前计算结果(current entry )替换成存储在内存中的那个值(存储好的上一次计算结果)。
|
"NumpadMemoryStore"
| 否 | MS 将存储在内存中的那个值替换成当前计算结果(current entry)。
|
"NumpadMemorySubtract"
| 否 | M- 让存储在内存中的那个值 (存储好的上一次计算结果)中减去当前计算结果(current entry)。
|
"NumpadMultiply"
| 是 | 在标准键盘上的按键键帽标签是 * 。 包含数学运算功能( + , - , * 和 / )的 数字板 拥有此按键。 在移动设备或遥控器上,拥有相同键帽标签( * )的按键的 code 值是 "NumpadStar" 。
|
"NumpadParenLeft"
| 否 | ( 出现在微软自然键盘(Microsoft Natural Keyboard)中。
|
"NumpadParenRight"
| 否 | ) 出现在微软自然键盘(Microsoft Natural Keyboard)中。
|
"NumpadStar"
| 否 | 在移动设备或遥控器上的按键键帽标签是 * 。 此按键通常位于 7 键的下方和 0 键左侧。
(非规范补充: 见 通用移动键盘的图形描述 ) 在标准键盘的数字键盘上,拥有相同键帽标签( * )的按键的 code 值是 "NumpadMultiply" 。
|
"NumpadSubtract"
| 是 | -
|
对于 数字板 提供的,没有列在此处的按键,应通过以"Numpad"
开头并附加按键的适当描述来创建 code
值字符串。
3.5. 功能区域
功能区域 (function section)靠着键盘顶部(在 字母数字区域 之上) 并包含有 功能键③ 以及一些附加的特殊键(例如Esc
和 Print Screen
)。
功能键③ 是键帽标签为 F1
... F12
的键,应用程序或操作系统可以利用这些按键关联自定义功能或操作。
在一些键盘上(尤其是笔记本电脑或其他便携式计算机上的键盘),功能键③
( F1
... F12
)会被定义为具有其他调节功能
(primary functions ,例如控制显示亮度或音频音量),并且在使用这些主要功能
(primary functions)时需要组合按下 Fn
键。不幸的是,
这些按键的主要功能因制造商而异。因此, code
值总是设置为 功能键③ 名称(即键帽标签名称和 code
值对应)。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"Escape"
| 是 | Esc 或 ⎋ (非规范补充: 详见 系统和 GUI 键 中的退出键)
|
"F1"
| 是 | F1
|
"F2"
| 是 | F2
|
"F3"
| 是 | F3
|
"F4"
| 是 | F4
|
"F5"
| 是 | F5
|
"F6"
| 是 | F6
|
"F7"
| 是 | F7
|
"F8"
| 是 | F8
|
"F9"
| 是 | F9
|
"F10"
| 是 | F10
|
"F11"
| 是 | F11
|
"F12"
| 是 | F12
|
"Fn"
| 否 | Fn 这通常是一个硬件按键(hardware key), 它不会生成单独的码值。大多数键盘不会将此键放置在 功能区域 ,
但它在此表中展示是为了将其与其关联的按键一起归类。(非规范补充:
见本节下面的 非规范注释 )
|
"FnLock"
| 否 | FLock 或 FnLock 。功能锁定键 (Function Lock key)。出现在微软自然键盘(Microsoft Natural
Keyboard)中。
|
"PrintScreen"
| 是 | PrtScr SysRq 或 Print Screen (非规范补充: 详见 系统和 GUI 键 中的截屏键)
|
"ScrollLock"
| 是 | Scroll Lock (非规范补充: 详见 锁定按键 中的滚动锁定按键)
|
"Pause"
| 是 | Pause Break (非规范补充: 详见 系统和 GUI 键 中的暂停键)
|
对于提供12个以上的 功能键③ 的键盘, code
值遵循表中显示的模式,"F"后面跟着 功能键③ 数字 —— "F13"
、 "F14"
、 "F15"
,依此类推。
苹果键盘的 功能区域 可能有 Eject
(弹出)键或 Power
(电源)键. 这些键的 code
值在 § 3.6 多媒体按键 中有定义。
—— 维基百科 Fn key 。Fn
键是 功能(function) 的缩写,是许多键盘上 (尤其是笔记本电脑上)的一个修饰键,它经常用在紧凑的布局组合其他独立的键( 功能键③ )一起使用。由于键盘尺寸的限制,它通常出现在笔记本电脑上。 作为FLock
键,它也出现在许多全尺寸的"多媒体"键盘上。 它主要用于快速更改显示设置或音频设置,如亮度、对比度或音量, 使用时需要与相应的键( 功能键③ )一起按下以更改设置。
中国大陆地区的沿用的美式键盘上的
Fn
按键通常会覆盖替换在一个 ⊞
( Meta
) 上,即键盘上只包含一个系统命令按键,
而另一个位置使用 "Fn"
代替。 3.6. 多媒体按键
多媒体按键 是添加到键盘上的额外按键键, 可提供播放、暂停或音量控制等与 媒体 相关的功能。 这些键在键盘上没有标准位置,因此不同制造商的键盘可能有不同的按键排列 (arrangement)或一套完全不同的按键集合。
多媒体按键 在外观上通常与普通的键入按键不同, 它可能嵌入(recessed)到键盘中。
在笔记本电脑键盘上,这些键通常与 功能键③ 结合(merged),
也就是说 多媒体按键 可被理解成这些键的主要功能(primary function),
并且 功能键③ 可被理解成需要同时按下Fn键。在此配置下, code
应该设置地与 功能键③ ( "F1"
... "F12"
)匹配。当键以这种方式合并时, code
值取自 功能键③ 值,
因为 多媒体按键 值在键盘之间不一致。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"BrowserBack"
| 否 | 一些笔记本电脑将此键放在 ↑ 键左边。
|
"BrowserFavorites"
| 否 | |
"BrowserForward"
| 否 | 一些笔记本电脑将此键放在 ↑ 键右边。
|
"BrowserHome"
| 否 | |
"BrowserRefresh"
| 否 | |
"BrowserSearch"
| 否 | |
"BrowserStop"
| 否 | |
"Eject"
| 否 | Eject 或 ⏏ 。 在一些苹果键盘上,此按键位于 功能区域 。
|
"LaunchApp1"
| 否 | 有时候在键盘上的键帽标签为 My Computer
|
"LaunchApp2"
| 否 | 有时候在键盘上的键帽标签为 Calculator
|
"LaunchMail"
| 否 | |
"MediaPlayPause"
| 否 | |
"MediaSelect"
| 否 | |
"MediaStop"
| 否 | |
"MediaTrackNext"
| 否 | |
"MediaTrackPrevious"
| 否 | |
"Power"
| 否 | 在一些苹果键盘上,此按键位于 功能区域 并代替 Eject 键。
|
"Sleep"
| 否 | |
"AudioVolumeDown"
| 否 | |
"AudioVolumeMute"
| 否 | |
"AudioVolumeUp"
| 否 | |
"WakeUp"
| 否 |
3.7. 遗留的、非标准的和特殊的按键
这些键在现代标准键盘上找不到。此处列出的内容仅供参考。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"Hyper"
| 否 | |
"Super"
| 否 | |
"Turbo"
| 否 |
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"Abort"
| 否 | |
"Resume"
| 否 | |
"Suspend"
| 否 |
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"Again"
| 否 | 出现在 Sun 公司的 USB 键盘上。 |
"Copy"
| 否 | 出现在 Sun 公司的 USB 键盘上。 |
"Cut"
| 否 | 出现在 Sun 公司的 USB 键盘上。 |
"Find"
| 否 | 出现在 Sun 公司的 USB 键盘上。 |
"Open"
| 否 | 出现在 Sun 公司的 USB 键盘上。 |
"Paste"
| 否 | 出现在 Sun 公司的 USB 键盘上。 |
"Props"
| 否 | 出现在 Sun 公司的 USB 键盘上。 |
"Select"
| 否 | 出现在 Sun 公司的 USB 键盘上。 |
"Undo"
| 否 | 出现在 Sun 公司的 USB 键盘上。 |
以下按键出现在非标准国际键盘上。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"Hiragana"
| 否 | 出现在日语文字处理器键盘上,专用 ひらがな 按键
|
"Katakana"
| 否 | 出现在日语文字处理器键盘上,专用 カタカナ 按键。
|
ひらがな
和 カタカナ
中的日文的意思: 前者表示平假名,
后者表示片假名。这两个按键 可能 用于切换输入模式,它们是从 カタカナ/ひらがな/ローマ字
( "KanaMode"
)键中分离出来的专用按键。 最后,只有当相应的键与本规范其他地方给出的任何代 code
值都不对应时,才应使用以下 code
值。
这个值适合虚拟键盘使用,
因为多数虚拟键盘没有以与物理键盘上的键相对应的方式排列按键。
KeyboardEvent .code
| 必需的 | 备注 (非规范性的) |
---|---|---|
"Unidentified"
| 是 | 当本规范中没有给出合适的其他码值时,应使用此码值。 |
当实现无法确定按键码值时,符合本规范的实现 必须 只能使用 "Unidentified"
作为按键码值。
但仅使用(Exposing)该值 不得 表明实现符合本规范。
4. 无障碍
这个规范简单地定义了一组可在 code
属性中使用的有效值。
因此,它没有引入任何具有无障碍问题的特性(feature)。
FAST 清单 已完成, 本规范不适用其中任何内容。
FAST的目标是描述网络技术应提供的特性, 以确保能够创建残疾用户可以访问的内容。完整的框架引入了对用户需求的分析, 描述了技术、内容创作和用户代理如何协同工作以满足这些需求, 并为技术开发人员提供了全面的指导。本清单(checklist)从高层次上提取这些信息, 以帮助技术进行自我审查。 规范开发人员可以利用本清单(checklist) 来帮助自己: 确保技术能够解决无障碍倡导者在横向审查期间可能提出的特性。—— FAST Checklist。
FAST清单的一个条目是: "如果技术提供国际化支持"。此条目与本规范相关:
本规范本质上为键盘定义了 code
值,并提供了人类可读
(human-readable)的名称(如"ShiftLeft"、"ControlRight"、"AltGr"或"KeyQ")。
一些特殊按键的值被定义为人类可读(human-readable)的字符串, 以便检测特殊键的代码更容易理解。虽然这些值并不打算直接暴露给用户 (没有在键帽上显示),但想要公开这些值无可厚非。 选择公开这些值的应用程序需要确定: 为了显示而翻译这些字符串是否合适 (例如: 为法国用户将"Backspace"显示为"Suppr.arrière")。
5. 国际化(i18n)
简版的 I18n 清单 已完成,清单中有一个条目需要进行说明:
-
"描述一种格式或可能需要本地化的数据": 本规范定义了不打算向用户显示的值,尽管没有什么可以阻止网站公开这些值。
在计算中,国际化和本地化( internationalization and localization,美国英语) 或国际化和本地化(internationalisation and localisation,英国英语),通常缩写为 i18n 和 L10n,是使计算机软件适应不同语言、 区域特性和目标地区的技术要求的方法。—— I18n
code
值的可读性与公开性。
本规范定义的按键码值都是人类可读的英文,在应用程序不公开这些按键码值时,
不需要进行额外的国际化或无障碍适配,如果将这些按键码值暴露给用户,
则需要对此进行翻译(国际化)和无障碍适配了。 6. 安全注意事项
安全和隐私的自我审查问卷 已完成,以下是对其中一些有关本规范条目的备注:
-
2.1 此特性可能会向网站或其他方公开哪些信息,出于什么目的需要公开? : 本规范为各种按键事件的
code
属性定义了一组有效值。 这提供一种平台独立的(platform-independent)方式来识别(通过位置) 按下了哪个物理键(例如,游戏中的 WASD 键),非常有必要。 -
2.17 您的功能是如何处理非"完全活动(fully active)"文档的?: 此属性仅与按键事件关联,如果文档未完全激活,则不会派发事件。
[UIEvents] 规范中解决了与 code
属性相关的安全问题。
7. 隐私注意事项
安全和隐私的自我审查问卷 已完成,以下是对其中一些有关本规范条目的备注:
-
2.6 规范中的特性是否向源(origins)公开了有关底层平台的信息?:
code
属性包含用户按下的键的平台独立的"扫描码(scancode)"值。 有一些特殊的 `码(code)` 值可以用来识别特定的键盘。例如, `IntlBackslash` 、 `IntlRo` 和 `IntlYen` 。用户必须键入这些特性按键才能获取键信息。 -
3.5 合法滥用(Legitimate Misuse): 一个站点可以捕获所有按键响应, 并构建键盘生成的按键码值的映射。如果用户键入了足够的按键码值 (并且没有更改键盘),那么网站可以尝试将这些值与已知键盘布局的数据库进行匹配, 以猜测用户当前的键盘布局。然而,这是对
key
属性本身 (在[UIEvents]规范中定义)的关注,而不是对本文档中定义的值(code
)的关注。
[UIEvents] 规范中解决了与 code
属性相关的隐私问题。
8. 致谢
非常感谢 WebApps 工作组的以下参与者在制定本规范的过程中提供了大量实质性贡献。
Gary Kacmarcik (Google), Masayuki Nakano (Mozilla)