用户界面事件键盘事件 code 属性值(UI Events KeyboardEvent code Values)

翻译草案,

More details about this document
本版本:
https://mangwu.github.io/uievents-code-cn/
最新提案:
https://w3c.github.io/uievents-code/
上个版本:
https://www.w3.org/TR/2016/WD-uievents-code-20161024/
历史记录:
https://www.w3.org/standards/history/uievents-code
规范反馈:
GitHub-w3c-uievents-code-issues
翻译反馈:
GitHub-mangwu-uievents-code-cn-issues
实现报告:
https://mangwu.github.io/uievents-code-cn/impl-report.html
编辑者:
(Google)
(Invited Expert)
翻译者:

Abstract

摘要

本规范定义了 KeyboardEvent.code 属性的值,并且是用户界面事件规范的一部分 [UIEvents]code 值包含有关按键事件的信息, 可用于识别用户按下的物理按键。

文档状态

本节介绍了本文件发布时的状态。 当前 W3C 出版物列表和本技术报告的最新修订版可在 W3C 技术报告索引 中找到,网址为 https://www.w3.org/TR/ 。

本文件由 网络应用程序工作组 作为 编辑草稿 (Editors Draft)发布。 本文档旨在成为W3C推荐标准

本文件由 网络应用程序工作组 作为 工作草案 (Working Draft)发布。 欢迎对本规范提出反馈和意见。请使用 GitHub issues 对源文档进行问题讨论; 请使用 GitHub issues 对翻译文档进行问题讨论; 官方的问题存档地址为 public-webapps@w3.org archives

作为编辑草案出版并不意味着 W3C 及其成员的认可。 这是一份草案文档,可以随时被其他文档更新、替换或作废。 本文档不适合被其它正在编写的规范作为引用。

本文档由一个根据 W3C 专利政策 运作的小组编写。 W3C 保留了一份与该小组可交付成果相关的 所有可披露专利的公开列表 ; 该页面还包括公开一份专利的说明。 对认为包含 基本权利要求 (Essential Claim(s))的专利有实际了解的个人必须根据 W3C专利政策第6节 公开信息。

本文件受 2021 11月2日 W3C处理文档 规范管理。

Status of this document

1. 简介

本文档概述了各种键盘布局,并指定了每个键应使用的 code 值。 与 [UIEvents-key] 中描述的 key 值不同, code 值仅基于键在键盘上的物理位置, 不会因用户的当前区域设置而变化。

此规范以前的规范标题为 DOM Level 3 code Values

1.1. 格式规约

本规范遵循以下规约:

UIEvents 规范本体的格式规约中,也对键帽,字符,码点和键(key), 码(code)的属性值进行了说明,但是渲染显示不一样,本规范中的渲染会更显眼。

关于 "键值" 的说明: 键盘事件上包含两个与按下的物理按键有关的属性,一个是 key 而一个是 code ,在 [UIEvents-key] 中也经常出现 "键值"的说法,也就是按键的值,现在需要明确一点: "键值"表示的是 key 的属性值 ,在 [UIEvents] 系列规范中都是如此。如果在翻译时要指代 code ,会说明成 code 值,键码值,按键码属性值等。

2. 键盘布局

本节不是规范的。

字母数字键盘是用户生成键盘事件的最常见方式。本节概述了标准键盘及其物理布局。

键盘布局(keyboard layout)是指以按键、或键上图例来表示任何特定之机械、 视觉或功能的键盘布局方式; 或则是在计算机、 打字机或其它字体排版键盘等之类似设备、 以其键之关系含义结构在键盘上表现的布局方式 —— zh.wikipedia.org

2.1. 标准键盘布局

本节介绍了常见键盘上的物理布局。

2.1.1. 键盘分区

在讨论键盘布局时,将标准键盘划分为不同的区域并标记每一行会更方便讨论布局。

汉化图
原图
标准键盘的五个通用区域
标准键盘的五个通用区域
标准键盘的五个通用区域
标准键盘的五个通用区域

注意,如果包括功能相同的按键(如 ControlLeftControlRight ),上图共有 104 个物理按键。

这些键盘区域包括:

为了更容易识别按键,键盘上的行的名称从最下面一行的 "A" 开始, 到最上面一排的 "E" 。 功能区域 中的键行被认为在 "K" 行中。这些行名称与 [ISO9995-1] 规范中给出的行名称一致。

请注意,许多键盘(包括现代键盘和传统键盘)都有多余的键, 这些键没有整齐地放入上面的区域。其中一些键包含在§ 3.6 多媒体按键

2.1.2. 标准 "101" 键盘布局

标准的 "101" 键盘(通常称为"US 布局")是唯一一种在单行 Enter (字面数字区域上的 Enter )键上方有 "Backslash" 键(键帽标签为 \|)的布局。所有其他布局都省略了此键,并展开 Enter 键以占据两行。

标准 '101' 键盘布局
标准 "101" 键盘布局,展示未修改过的美式按键值

现代标准的 "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' 键盘布局
备用 "101" 键盘布局,展示未修改过的俄式按键值

现代的备用 "101" 布局的键盘包含104个键: 字母数字区域 有 61 个按键, 数字板控制板箭头板功能区域 有 43 个键。

维基百科 上有关于日文假名键盘和韩文键盘的 字母数字区域 的图示,但是它们不属于备用 "101" 键盘布局,因为除了和俄式键盘一样多了一个 "IntlYen" 键之外, 修饰符按键还有区别,继续阅读下面的章节了解更多。

2.1.4. 标准 "102" 键盘布局

标准的 "102" 键盘在整个欧洲都很常见,它在 "101" 键盘布局中添加了一个不存在的键: 在左移键( Shift )旁边添加了 "IntlBackslash" 键(在英式键盘上键帽标签为 \| )。

还添加了第二个键(在英式键盘上键帽标签为 #~ ),该键部分藏在 Enter 键下。该键被编码为 "Backslash" ,使用与 "101" 键盘布局中的 \| 键相同的编码。根据 [USB-HID] 规范,美式的 \| 和英式的 #~ 实际上是两个独立的键(分别命名为"键盘 \ 和 |"以及"键盘非美式的 # 和 ~”), 但由于这两个键从未同时出现在同一键盘上,大多数平台对两个键使用相同的扫描码 (scancode),因此很难区分。正是由于这个原因,这两个键都使用了码值 "Backslash"

标准 '102' 键盘布局
标准 "102" 键盘布局,展示未修改过的英式按键值

现代 "102"布局的键盘包含105个键: 字母数字区域 有 62 个按键, 数字板控制板箭头板功能区域 有 43 个键。

按照 code 属性值进行区分,美式 "101" 键盘布局在占用单行 Enter 上方的 \| 键,和 英式 "102" 键盘布局在占用双行的 Enter 下方的 #~ 键实际上指代同一个 code 值, 即 "Backslash"。英式 "102" 多出来的那个位于 ShiftLeftZ 之间的按键,虽然键帽是 \| (和美式的占用单行 Enter 上方的 \| 键键帽相同),但是 code 属性值却是 "IntlBackslash"
上述图示中的 #~ 按键和 \| 按键没有显示完整键帽 (实际上其它按键也没有,主要显示了 code 值), 下面是源于维基百科的一个英式 "102" 字母数字区域( 字母数字区域 )键盘布局图示:

标准 '102' 字母数字区域键盘布局
英式标准 "102" 字母数字区域键盘布局, 展示未修改过的英式键帽值

2.1.5. 韩式 "103" 键盘布局

韩语 "103" 键盘基于备用 "101" 键盘布局,并添加了两个额外的键 (空格键两侧各一个)来处理韩语特定的输入模式。这两个按键是 "Lang2" ("Hanja",键帽为 한자 ,发音为 hanja )和 "Lang1" ("HangulMode",键帽为 한/영 ,发音为 han/yeong ) 。

实际上 한자 (Hanja) 也就是汉字的意思,这里表示朝鲜汉字,而 한/영 (HangulMode) 也就是韩/英, 这里表示韩文模式和英文模式切换使用。

韩式 '103' 键盘布局
韩式 "103" 键盘布局,展示未修改过的韩式按键值

现代 "103" 布局的键盘包含106个键: 字母数字区域 有66个按键, 数字板控制板箭头板功能区域 有 43 个键。

2.1.6. 巴西 "104" 键盘布局

巴西使用的 "104" 布局增加了4个新键: "102" 布局中的两个键( "Backslash""IntlBackslash" )加上 "IntlRo" 键(右移键 "ShiftRight" 旁边)和 数字板 上的一个额外键。这个 数字板 上的新按键被称为 "NumpadComma" (数字键盘逗号),因为它代表千位分隔符。 在巴西键布局上,这个按键键帽标签为 . ,并且 "NumpadDecimal" 键被键帽标签为 ,
标准 '104' 键盘布局
标准 "104" 键盘布局,展示未修改过的巴西按键值

现代 "104" 布局的键盘包含107个键: 字母数字区域 有63个按键, 数字板控制板箭头板功能区域 有 44 个键。 一些巴西键盘的 小键盘 上( 数字板 )没有额外的按键,只有106个键。

巴西的键盘以 "102" 键盘布局为基础,从 code 值上看,和 "102" 键盘布局相同 code 值的两个按键(位于大 Enter 下方的 "Backslash" 和在 ShiftLeftZ 之间的 "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 值),下面是来自维基百科的巴西葡萄牙字母数字键盘的图示:

巴西 '104' 字母数字区域键盘布局
巴西 "104" 字母数字区域键盘布局, 展示未修改过的巴西键帽值

2.1.7. 日式 "106" 键盘布局

日语 "106" 键盘布局在标准 "101" 键盘布局的基础上修改了一个按键:

增加了5个新键:

标准 '106' 键盘布局
标准 "106" 键盘布局,展示未修改的日语键值

现代 "106" 布局的键盘包含109个键: 字母数字区域 有66个按键, 数字板控制板箭头板功能区域 有 43 个键。

上面的图示虽然完整显示了按键 code 值, 但是字母数字区域没有显示每个按键的完整键帽。 日本国内多使用JIS标准的键盘布局,也称为日文假名键盘, 源自维基百科的图示如下:

日式 '106' 字母数字区域键盘布局
日式 "104" 字母数字区域键盘布局, 展示未修改过的日本键帽值

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 笔记本电脑键盘布局示例
PC 笔记本电脑键盘布局示例

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 智能手机:

IPhone14 正面图
IPhone14 正面图,灰色区域为触摸屏, 不包含物理键盘,上方"刘海" 包含前置摄像头

2.3. 媒体遥控器

许多键盘包含控制媒体功能的特殊键。越来越多的媒体设备,尤其是电视, 都支持网络。混合键盘/遥控设备(Hybrid keyboard/remote-control devices) 越来越普遍。为了满足这些混合 Web/媒体 设备的需求, 本规范定义了除传统键盘键外,常见的遥控器按钮(remote control buttons)。

由于尺寸较小,遥控器上的按键(或按钮)通常是模态的, 一个按键根据屏幕内容的上下文执行不同的功能。此外, 许多键用作切换键(toggles),在两个或多个状态之间来回切换(请参见切换按键)。 这些遥控器按钮通常没有修饰符状态,因此每个按钮都被分配了一个功能 (如 PlayPauseUpMenuExit )。

媒体遥控器示例
媒体遥控器的图形描述

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"BackspaceDeleteInsert 。在文本模式下,

2.5.4. 系统和 GUI 键

系统和 GUI 键(System and GUI keys) ——左右两个 Meta 属于系统命令键(system command keys),GUI 按键包括 EscPrtScr SysRqPause Break :

2.5.5. 小键盘数字按键

小键盘数字按键(Numeric keypad) ——0 Ins1 End2 ↓3 PgDn4 ←56 →7 Home8 ↑9 PgUp/*--. Del 。这些数字按键便于输入数学数字和运算符号,它们的 code 值和 字母数字键或字符键 的数字键不同, 前者以"Numpad"为前缀,后者以"Digit"为前缀,例如 "Numpad0""Digit0" 。除此之外,小键盘数字按键组合 Shift 按键可以实现其它区域按键的功能,例如 Shift + 1 End 就相当于导航按键 End。小键盘上的数字键功能会被 锁定按键 影响。

2.5.6. 锁定按键

锁定按键(Lock keys) —— CapsLockScrollLockNum LockLOCK 是一种功能,根据所选的锁定设置,将键盘的部分键锁定到不同的操作模式。 标准键盘上右上方会有三个指示灯指示三个锁定按键的锁定模式是否被启用, 一般是两种状态,灯亮表示锁定键控制的按键的锁定模式启用, 灯暗表示锁定按键控制的按键的锁定模式没有启用。默认情况下,只有 Number Lock 指示灯亮,表示它控制的小键盘数字按键(Numeric keypad)处于锁定模式下。

数字按键(键帽) 锁定(灯亮) 未锁定(灯暗)后的等同的功能按键
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 删除键,参阅 回车键和编辑键

2.5.7. 导航按键

导航按键(Navigation keys) —— Home / End / PgDn / PgUp / 。 导航按键主要用于在屏幕上移动文本光标,特别是在文本编辑器中, 箭头按键能很好的将光标进行上下左右的移动。除此之外,导航按键结合不同的 修饰符按键 也能实现很多快捷操作,例如在 锁定按键 中提到的 Ctrl + Arrow 组合键能模拟滚动锁定模式开启的状态, 实现滚动窗口内容的效果。

2.5.8. 修饰符按键

修饰符按键(Modifier keys) —— "ShiftLeft""ShiftRight""ControlLeft""ControlRight""AltLeft""AltRight" 。还有 系统和 GUI 键 中的 Meta 也是修饰符键, 只不过它与操作系统有关,是比较特殊的修饰符键。在计算中, 修饰符按键是计算机键盘上的一种特殊键(或组合键),当按下时, 它会临时修改另一个键的正常功能。修饰符键本身通常不起任何作用; 也就是说, 单独按下 ⇧ ShiftAltCtrl 键 (通常) 不会触发计算机的任何操作。查阅维基百科 Modifier key 获取更多信息。

除了上述的通用按键外,还有一个死键(dead key)属于修饰符按键, 它是电脑键盘或打字机上一种特殊的快捷键。 它们通常用来对原始的拉丁字母加上附加符号。死键并不会输出一个完整的字母, 而是改变下一个按下的键的输出结果。 因此不需要为每一个字母与每一个标音的组合都对应一个单独的键; 只要为每一个标音对应一个死键便足够。举例来说,若键盘上有一个重音符( ` )的死键,要输出法文字母 à 只需要先按下 ` ,再按下 A 。如果是 è 则是先按下 ` 再按下E.而通常来说,通过键入 `"Space" 可以产生一个单独的标音符号。 —— 维基百科 死键
基本上,美式标准键盘没有任何死键, 所以沿用这种键盘的中国大陆地区使用的键盘也没有死键, 但是世界上大多数地区销售的键盘都有一个 AltGr (Alternative graphic)键, 它可以直接修改一些字母,并将其他字母变成死键(取决于键盘设置)。 旧的计算机系统,如 MSX ,通常有一个标记为死键的特殊键,它与 Ctrl 键和 Shift 键相结合,可以用来将西欧语言中常见的一些变音符号( ´`ˆ¨ )添加到随后键入的元音中。 —— 维基百科 Dead key

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 )的键。

The 书写系统键
字母数字区域书写系统键

此图显示了一个虚构的键盘,它将可以在各种键盘上找到的所有 书写系统键 (以蓝色和绿色显示)合并在起义。所有标准键盘上都有蓝色的键, 而绿色键仅在某些键盘上存在。

"Digit2""KeyQ" 键为 书写系统键 ,当前语言环境为美国时, 按下会生成 "2""q" ,而当语言环境为法国时, 则生成 "é""a"

每个按键上显示的名称是分配给该按键的 code 。 在可能的情况下, code 名称基于该位置的美国键的名称(即, 它们基于美式 "101" 标准键盘布局),这遵循 [USB-HID] 中的命名约定。 对于美式键盘上不存在的键,则使用英式或日式键盘布局的名称。

请注意,此图中有两个 "Backslash" 键: 大的那一个键位于标准 "101" 键盘布局的 D 行末尾,另一个小的位于 "102" 、 "104" 和 "106" 键盘布局的 C 行的 "Quote""Enter" 之间。键盘布局上只能有一个 "Backslash" 键。

在字母数字区域的书写系统键的 code 值表。
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 键盘布局上的键帽标签是 /? (斜杠 问号)。
上表中的 "AZERTY" ,"QWERTZ" 表示的是以某种字母排序方向进行排列的键盘布局。 尽管有大量的键盘布局用拉丁字母书写的语言, 但这些布局中的大多数都非常相似。根据A、M、Q、W、Y和Z键在键盘上的位置, 它们可以分为三个主要类别。这些布局通常以 D 行的前六个字母命名: AZERTY 、 QWERTY 、 QWERTZ 、 QZERTY 及其其它国家变体。 —— 维基百科 Keyboard layout
需要注意的是,上表中的按键的 code 值大部分基于美式标准键盘, 美式标准键盘属于 QWERTY 布局,code 值和键帽是一一对应的。 但在其它键盘布局下,在浏览器中触发的 KeyboardEvent 事件对象的 code 属性值通常与键帽标签对应,但 不一定完全相同 。上表就指出了在 AZERTY 键盘布局下, "KeyW""KeyZ" 的按键键帽标签分别对应 zw"KeyA""KeyQ" 的按键键帽标签分别对应 qa ; 在 QWERTZ 键盘布局下, "KeyY""KeyZ" 的按键键帽标签分别对应 zy 。在实际输入过程中,输入的字符基本上以键帽为准。

3.1.2. 功能键

功能键② (functional keys , 不要与前面描述的 功能键 和后面描述的 功能键③ 混淆), 这里指 字母数字区域 中的那些功能按键, 它们提供所有语言环境通用的编辑功能(如 ShiftTabEnterBackspace)。除了少数例外, 这些键不会根据当前键盘布局更改含义。

标准 [=功能键②=] 集合
字母数字区域 中的标准 功能键② 集合

"AltRight" 键(以绿色突出显示)是唯一不会为每个区域设置生成相同的 key 值的 功能键② 。在某些地区,它会生成 "Alt" ,而在其他地区,它生成 "AltGraph"

在字母数字区域的功能键的 code 值表。
KeyboardEvent.code 必需的 备注 (非规范性的)
"AltLeft" AltOption
"AltRight" AltOption 。 在许多键盘布局中,该按键键帽标签为 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 值。

汉化图
原图
在不同的键盘上底部一行的 [=功能键②=] 对比
在不同的键盘上底部一行的 功能键② 对比
在不同的键盘上底部一行的 [=功能键②=] 对比
在不同的键盘上底部一行的 功能键② 对比
在日式和韩式键盘的额外功能键的 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

在苹果键盘上,底部一行的一些键被省略, 未被省略的键则按(和上图)不同的顺序排列。

这些按键主要用于切换输入模式,查阅 § 2.1.7 日式 "106" 键盘布局 获取更多信息。其中, "Lang3" ~ "Lang5" 属于文字处理器的键盘上的按键,"Lang1" ~ "Lang5" 是可选的,实现可以用这个值支持特殊键盘。更多信息请查阅维基百科 word processor

3.2. 控制板区域

键盘的 控制板 (control pad)区域是一组(通常有 6 个键)用于执行导航和编辑操作的按键,例如 HomePageUpInsert

汉化图
原图
标准控制板布局
标准 控制板 布局
标准控制板布局
标准 控制板 布局
在控制板区域的按键的 code 值表。
KeyboardEvent.code 必需的 备注 (非规范性的)
"Delete" 。 前向删除键。请注意,在苹果键盘上, 键盘的字母数字区域按键标签为 Delete 的键应编码为 "Backspace"
"End" End
"Help" Help 。 标准 PC 键盘上不存在。
"Home" Home
"Insert" InsertIns 。 Not present on Apple keyboards.
"PageDown" Page DownPgDn
"PageUp" Page UpPgUp

Fn (常见于苹果标准键盘)键的 code 定义在下面的 功能区域

3.3. 箭头板区域

箭头板 (arrow pad)区域包含4个箭头键。 按键通常以"倒置 T"的配置进行排列。

标准箭头板布局
标准 箭头板 布局
在箭头板区域的按键的 code 值表。
KeyboardEvent.code 必需的 备注 (非规范性的)
"ArrowDown"
"ArrowLeft"
"ArrowRight"
"ArrowUp"

3.4. 数字板区域

在键盘上的 数字板 (numpad) 区域是一组按键, 排列成网格状,就像计算器或手机那样。本节包含数字和数学运算符键。通常, 数字板区域会包含 NumLock 键,该键可使数字板中的按键的功能, 在标准数字功能和模拟 控制板箭头板 中按键的功能之间进行切换。 笔记本电脑和紧凑型键盘通常会省略这些键以节省空间。

关于 NumLock 的功能可以参阅 § 2.5.6 锁定按键 中的数字锁定键。

小键盘 (keypad)是 数字板 的备用术语。

汉化图
原图
标准数字板布局
标准 数字板 布局
标准数字板布局
标准 数字板 布局

本节中的 code 值也应用于手机小键盘和遥控设备中在网格上排列的数字键。

标准移动设备小键盘布局
标准移动设备小键盘布局

标准 数字板 有时包含括号(parentheses)、运算符(operators)、 十六进制符号(hexadecimal symbols)或计算器函数键(calculator functions,如 Backspace )这些附加键以扩展。下表列出了一些常用的附加键。

在数字板区域的按键的 code 值表。
KeyboardEvent.code 必需的 备注 (非规范性的)
"NumLock" 在 Mac 中,"NumLock" 码应当用于数字板中的 Clear 键。
"Numpad0" 在标准键盘上的按键键帽标签是 0 Ins
在移动设备或遥控器上的按键键帽标签是 0
"Numpad1" 在标准键盘上的按键键帽标签是 1 End
在移动设备或遥控器上的按键键帽标签是 11 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 PQRS7 PRS
"Numpad8" 在标准键盘上的按键键帽标签是 8 ↑
在移动设备或遥控器上的按键键帽标签是 8 TUV
"Numpad9" 在标准键盘上的按键键帽标签是 9 PgUp
在移动设备或遥控器上的按键键帽标签是 9 WXYZ9 WXY
"NumpadAdd" +
"NumpadBackspace" 出现在微软自然键盘(Microsoft Natural Keyboard)中。
"NumpadClear" CAC (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)靠着键盘顶部(在 字母数字区域 之上) 并包含有 功能键③ 以及一些附加的特殊键(例如 EscPrint Screen )。

功能键③ 是键帽标签为 F1 ... F12 的键,应用程序或操作系统可以利用这些按键关联自定义功能或操作。

在一些键盘上(尤其是笔记本电脑或其他便携式计算机上的键盘),功能键③ ( F1 ... F12 )会被定义为具有其他调节功能 (primary functions ,例如控制显示亮度或音频音量),并且在使用这些主要功能 (primary functions)时需要组合按下 Fn 键。不幸的是, 这些按键的主要功能因制造商而异。因此, code 值总是设置为 功能键③ 名称(即键帽标签名称和 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" FLockFnLock 。功能锁定键 (Function Lock key)。出现在微软自然键盘(Microsoft Natural Keyboard)中。
"PrintScreen" PrtScr SysRqPrint Screen (非规范补充: 详见 系统和 GUI 键 中的截屏键)
"ScrollLock" Scroll Lock (非规范补充: 详见 锁定按键 中的滚动锁定按键)
"Pause" Pause Break (非规范补充: 详见 系统和 GUI 键 中的暂停键)

对于提供12个以上的 功能键③ 的键盘, code 值遵循表中显示的模式,"F"后面跟着 功能键③ 数字 —— "F13""F14""F15",依此类推。

苹果键盘的 功能区域 可能有 Eject (弹出)键或 Power (电源)键. 这些键的 code 值在 § 3.6 多媒体按键 中有定义。


Fn 键是 功能(function) 的缩写,是许多键盘上 (尤其是笔记本电脑上)的一个修饰键,它经常用在紧凑的布局组合其他独立的键( 功能键③ )一起使用。由于键盘尺寸的限制,它通常出现在笔记本电脑上。 作为 FLock 键,它也出现在许多全尺寸的"多媒体"键盘上。 它主要用于快速更改显示设置或音频设置,如亮度、对比度或音量, 使用时需要与相应的键( 功能键③ )一起按下以更改设置。 —— 维基百科 Fn key
中国大陆地区的沿用的美式键盘上的 Fn 按键通常会覆盖替换在一个 ( Meta ) 上,即键盘上只包含一个系统命令按键, 而另一个位置使用 "Fn" 代替。

3.6. 多媒体按键

多媒体按键 是添加到键盘上的额外按键键, 可提供播放、暂停或音量控制等与 媒体 相关的功能。 这些键在键盘上没有标准位置,因此不同制造商的键盘可能有不同的按键排列 (arrangement)或一套完全不同的按键集合。

多媒体按键 在外观上通常与普通的键入按键不同, 它可能嵌入(recessed)到键盘中。

在笔记本电脑键盘上,这些键通常与 功能键③ 结合(merged), 也就是说 多媒体按键 可被理解成这些键的主要功能(primary function), 并且 功能键③ 可被理解成需要同时按下Fn键。在此配置下, code 应该设置地与 功能键③ ( "F1" ... "F12" )匹配。当键以这种方式合并时, code 值取自 功能键③ 值, 因为 多媒体按键 值在键盘之间不一致。

多媒体按键的 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. 遗留的、非标准的和特殊的按键

这些键在现代标准键盘上找不到。此处列出的内容仅供参考。

遗留的修饰符按键的 code 值表。
KeyboardEvent.code 必需的 备注 (非规范性的)
"Hyper"
"Super"
"Turbo"

遗留的程序控制按键的 code 值表。
KeyboardEvent.code 必需的 备注 (非规范性的)
"Abort"
"Resume"
"Suspend"

遗留的编辑按键的 code 值表。
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 键盘上。

以下按键出现在非标准国际键盘上。

出现在非标准国际键盘上的按键的 code 值表。
KeyboardEvent.code 必需的 备注 (非规范性的)
"Hiragana" 出现在日语文字处理器键盘上,专用 ひらがな 按键
"Katakana" 出现在日语文字处理器键盘上,专用 カタカナ 按键。
ひらがなカタカナ 中的日文的意思: 前者表示平假名, 后者表示片假名。这两个按键 可能 用于切换输入模式,它们是从 カタカナ/ひらがな/ローマ字 ( "KanaMode" )键中分离出来的专用按键。

最后,只有当相应的键与本规范其他地方给出的任何代 code 值都不对应时,才应使用以下 code 值。 这个值适合虚拟键盘使用, 因为多数虚拟键盘没有以与物理键盘上的键相对应的方式排列按键。

特殊按键的 code 值表。
KeyboardEvent.code 必需的 备注 (非规范性的)
"Unidentified" 当本规范中没有给出合适的其他码值时,应使用此码值。

当实现无法确定按键码值时,符合本规范的实现 必须 只能使用 "Unidentified" 作为按键码值。 但仅使用(Exposing)该值 不得 表明实现符合本规范。

4. 无障碍

这个规范简单地定义了一组可在 code 属性中使用的有效值。 因此,它没有引入任何具有无障碍问题的特性(feature)。

FAST 清单 已完成, 本规范不适用其中任何内容。

FAST: Framework for Accessibility in the Specification of Technologies, 技术文档的无障碍框架。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,英国英语),通常缩写为 i18nL10n,是使计算机软件适应不同语言、 区域特性和目标地区的技术要求的方法。 —— I18n
无论是上面的无障碍还是本节的国际化,在说明时都包含对一个角度的解释: code 值的可读性与公开性。 本规范定义的按键码值都是人类可读的英文,在应用程序不公开这些按键码值时, 不需要进行额外的国际化或无障碍适配,如果将这些按键码值暴露给用户, 则需要对此进行翻译(国际化)和无障碍适配了。

6. 安全注意事项

安全和隐私的自我审查问卷 已完成,以下是对其中一些有关本规范条目的备注:

[UIEvents] 规范中解决了与 code 属性相关的安全问题。

7. 隐私注意事项

安全和隐私的自我审查问卷 已完成,以下是对其中一些有关本规范条目的备注:

[UIEvents] 规范中解决了与 code 属性相关的隐私问题。

8. 致谢

非常感谢 WebApps 工作组的以下参与者在制定本规范的过程中提供了大量实质性贡献。

Gary Kacmarcik (Google), Masayuki Nakano (Mozilla)

Conformance

Document conventions

Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.

All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes. [RFC2119]

Examples in this specification are introduced with the words “for example” or are set apart from the normative text with class="example", like this:

This is an example of an informative example.

Informative notes begin with the word “Note” and are set apart from the normative text with class="note", like this:

Note, this is an informative note.

Conformant Algorithms

Requirements phrased in the imperative as part of algorithms (such as "strip any leading space characters" or "return false and abort these steps") are to be interpreted with the meaning of the key word ("must", "should", "may", etc) used in introducing the algorithm.

Conformance requirements phrased as algorithms or specific steps can be implemented in any manner, so long as the end result is equivalent. In particular, the algorithms defined in this specification are intended to be easy to understand and are not intended to be performant. Implementers are encouraged to optimize.

Index

Terms defined by this specification

Terms defined by reference

References

Normative References

[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. URL: https://w3c.github.io/uievents/
[UIEvents-key]
Gary Kacmarcik; Travis Leithead. UI Events KeyboardEvent key Values. URL: https://w3c.github.io/uievents-key/

Informative References

[ISO9995-1]
ISO/IEC 9995-1:2009 Information technology -- Keyboard layouts for text and office systems -- Part 1: General principles governing keyboard layouts. URL: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=51645
[ISO9995-8]
ISO/IEC 9995-8:2009 Information technology -- Keyboard layouts for text and office systems -- Part 8: Allocation of letters to the keys of a numeric keypad. 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