Значения клавиш - Интерфейсы веб API

Значения клавиш
===============

В таблицах ниже перечислены стандартные значения различных категорий клавиш с объяснением того, для чего этот клавиша обычно используется. Соответствующие виртуальные коды клавиш для распространённых платформ включены там, где они доступны.

Узнайте, как использовать эти пары "ключ-значение" в JavaScript с помощью KeyboardEvent.key

Special Values | Modifier Keys | Whitespace Keys | Navigation Keys | Editing Keys | UI Keys | Device Keys | IME and Composition Keys | Function Keys | Phone Keys | Multimedia Keys | Audio Control Keys | TV Control Keys | Media Controller Keys | Speech Recognition Keys | Document Keys | Application Selector Keys | Browser Control Keys | Numeric Keypad Keys

Специальные значения
--------------------

Значения клавиш имеющих особое значение, кроме идентификации определённой клавиши или символа.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"Unidentified"` |
 Пользовательский агент не смог сопоставить виртуальный клавиатурный
 код события с определённым значением клавиши.

 Это может произойти из-за аппаратных или программных ограничений или
 из-за ограничений платформы, на которой работает пользовательский
 агент.
  | *разное* | *разное* | *разное* | *разное* |

Клавиши-модификаторы
--------------------

Специальные клавиши-модификаторы, которые используются для генерации специальных символов или вызывают особые действия при использовании в сочетании с другими клавишами. Например: `Shift` и `Control` , или lock-клавиши, такие как `Caps Lock` и `NumLock`.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"Alt"` [5] | `Клавиша Alt` (Alternative) . | `VK_MENU` (0x12)`VK_LMENU` (0xA4)`VK_RMENU`
 (0xA5)
  | `kVK_Option` (0x3A)`kVK_RightOption` (0x3D) | `GDK_KEY_Alt_L` (0xFFE9)`GDK_KEY_Alt_R`
 (0xFFEA)`Qt::Key_Alt` (0x01000023)
  | `KEYCODE_ALT_LEFT` (57)`KEYCODE_ALT_RIGHT`
 (58)
  |
| `"AltGraph"` [5] |
 Клавиша`AltGr` или `AltGraph` (Альтернативная
 графика). Enables the ISO Level 3 shift modifier (where
 `Shift` is the level 2 modifier).
  |  |  | `GDK_KEY_Mode_switch` (0xFF7E)`GDK_KEY_ISO_Level3_Shift`
 (0xFE03)`GDK_KEY_ISO_Level3_Latch` (0xFE04)`GDK_KEY_ISO_Level3_Lock`
 (0xFE05)`GDK_KEY_ISO_Level5_Shift` (0xFE11)`GDK_KEY_ISO_Level5_Latch`
 (0xFE12)`GDK_KEY_ISO_Level5_Lock` (0xFE13)`Qt::Key_AltGr`
 (0x01001103`Qt::Key_Mode_switch` (0x0100117E)
  |  |
| `"CapsLock"` |
 Клавиша `Caps Lock` . Включает и выключает блокировку заглавных
 букв для последующего ввода.
  | `VK_CAPITAL` (0x14) | `kVK_CapsLock` (0x39) | `GDK_KEY_Caps_Lock` (0xFFE5)`Qt::Key_CapsLock`
 (0x01000024)
  | `KEYCODE_CAPS_LOCK` (115) |
| `"Control"` |
 Клавиша `Control`, `Ctrl`, или `Ctl` .
 Позволяет вводить управляющие символы.
  | `VK_CONTROL` (0x11)`VK_LCONTROL`
 (0xA2)`VK_RCONTROL` (0xA3)
  | `kVK_Control` (0x3B)`kVK_RightControl`
 (0x3E)
  | `GDK_KEY_Control_L` (0xFFE3)`GDK_KEY_Control_R`
 (0xFFE4)`Qt::Key_Control` (0x01000021)
  | `KEYCODE_CTRL_LEFT` (113)`KEYCODE_CTRL_RIGHT`
 (114)
  |
| `"Fn"` | `Fn` (Function modifier) key. Используется для создания
 функциональной клавиши (`F1`–`F15`, например) символы
 на клавиатуре без выделенной области функциональных клавиш.Часто
 обрабатывается аппаратно, поэтому для этой клавиши не создаются события.
  |  | `kVK_Function` (0x3F) |  | `KEYCODE_FUNCTION` (119) |
| `"FnLock"` |
 Клавиша `FnLock` или `F-Lock` (Function Lock)
 .Переключает режим функциональных клавиш, описанный`"Fn"`
 вкл. и выкл. Часто обрабатывается аппаратно, поэтому для этой клавиши не
 создаются события.
  |  |  |  |  |
| `"Hyper"` [4] | Клавиша `Hyper` . |  |  | `GDK_KEY_Hyper_L` (0xFFED)`GDK_KEY_Hyper_R`
 (0xFFEE)`Qt::Key_Hyper_L` (0x01000056)`Qt::Key_Hyper_R`
 (0x01000057)
  |  |
| `"Meta"` [1] |
 Клавиша `Meta` . Позволяет вводить специальные команды. Это
 клавиши с лого `Windows` , или`Command` или
 `⌘` на клавиатуре Mac .
  | `VK_LWIN` (0x5B)`VK_RWIN` (0x5C) | `kVK_Command` (0x37)`kVK_RightCommand`
 (0x36)
  | `GDK_KEY_Meta_L` (0xFFE7)`GDK_KEY_Meta_R`
 (0xFFE8)`Qt::Key_Meta` (0x01000022)
  | `KEYCODE_META_LEFT` (117)`KEYCODE_META_RIGHT`
 (118)
  |
| `"NumLock"` |
 Клавиша `NumLock` (Number Lock). Переключает цифровую
 клавиатуру между вводом номера и другим режимом (часто стрелки
 направления).
  | `VK_NUMLOCK` (0x90) |  | `GDK_KEY_Num_Lock` (0xFF7F)`Qt::Key_NumLock`
 (0x01000025)
  | `KEYCODE_NUM_LOCK` (143) |
| `"ScrollLock"` [2] |
 Клавиша`Scroll Lock` Переключает между режимами прокрутки и
 перемещения курсора.
  | `VK_SCROLL` (0x91) |  | `GDK_KEY_Scroll_Lock` (0xFF14)`Qt::Key_ScrollLock`
 (0x01000026)
  | `KEYCODE_SCROLL_LOCK` (116) |
| `"Shift"` |
 Клавиша `Shift`. Изменяет нажатия клавиш, чтобы разрешить ввод
 букв в верхнем (или другом) регистре, а также для поддержки ввода знаков
 препинания и других специальных символов.
  | `VK_SHIFT` (0x10)`VK_LSHIFT`
 (0xA0)`VK_RSHIFT` (0xA1)
  | `kVK_Shift` (0x38)`kVK_RightShift` (0x3C) | `GDK_KEY_Shift_L` (0xFFE1)`GDK_KEY_Shift_R`
 (0xFFE2)`Qt::Key_Shift` (0x01000020)
  | `KEYCODE_SHIFT_LEFT` (59)`KEYCODE_SHIFT_RIGHT`
 (60)
  |
| `"Super"` [4] | Клавиша `Super`. |  |  | `GDK_KEY_Super_L` (0xFFEB)`GDK_KEY_Super_R`
 (0xFFEC)`Qt::Key_Super_L` (0x01000053)`Qt::Key_Super_R`
 (0x01000054)
  |  |
| `"Symbol"` |
 Клавиша-модификатор `Symbol` (есть на некоторых виртуальных
 клавиатурах).
  |  |  |  | `KEYCODE_SYM` (63) [3] |
| `"SymbolLock"` | Клавиша `Symbol Lock` |  |  |  |  |

[1] В Internet Explorer (проверено на релизах 9 и 11), а также во всех версиях Firefox, клавиша `Windows` сообщается как `"OS"` а не `"Meta"`. Это будет изменено в Firefox в Firefox bug 1232918. Пока это не будет исправлено, эти ключи возвращаются как `"OS"` в Firefox: `VK_LWIN` (0x5B) и `VK_RWIN` (0x5C) в Windows, и `GDK_KEY_Super_L (0xFFEB)`, `GDK_KEY_Super_R (0xFFEC)`, `GDK_KEY_Hyper_L (0xFFED)`, и `GDK_KEY_Hyper_R (0xFFEE)` в Linux.

[2] Internet Explorer (проверено на релизах 9 и 11) сообщает `"Scroll"` вместо `"ScrollLock"` для клавиши `Scroll Lock`.

[3] Firefox не поддерживает клавишу `Symbol` до версии Firefox 37.

[4] Firefox генерирует значение ключа `"OS`" для клавиш `Super` и `Hyper` вместо `"Super"` и `"Hyper"`.

[5] Chrome 67 и Firefox 63 теперь правильно интерпретируют правую клавишу `Alt` для раскладок клавиатуры, которые сопоставляют эту клавишу с `AltGr`. См. Дополнительные сведения об ошибке Firefox bug 900750 и Chrome bug 25503 для подробных деталей.

Пробельные клавиши
------------------

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"Enter"` |
 Клавиша `Enter` или`↵` (иногда помечается как
 `Return`).
  | `VK_RETURN` (0x0D) | `kVK_Return` (0x24)`kVK_ANSI_KeypadEnter`
 (0x4C)`kVK_Powerbook_KeypadEnter` (0x34)
  | ``GDK_KEY_Return` (0xFF0D)```GDK_KEY_KP_Enter` (0xFF8D)```GDK_KEY_ISO_Enter` (0xFE34)```GDK_KEY_3270_Enter` (0xFD1E)``Qt::Key_Return` (0x01000004)`Qt::Key_Enter`
 (0x01000005)
  | `KEYCODE_ENTER` (66)`KEYCODE_NUMPAD_ENTER`
 (160)`KEYCODE_DPAD_CENTER` (23)
  |
| `"Tab"` | Горизонтальная табуляция, `Tab`. | `VK_TAB` (0x09) | `kVK_Tab` (0x30) | ``GDK_KEY_Tab` (0xFF09)```GDK_KEY_KP_Tab` (0xFF89)GDK_KEY_ISO_Left_Tab`
 (0xFE20)`Qt::Key_Tab` (0x01000001)
  | `KEYCODE_TAB` (61) |
| `" "` [1] | Пробел, `Space Bar`. | `VK_SPACE` (0x20) | `kVK_Space` (0x31) |
`GDK_KEY_space` (0x20)`GDK_KEY_KP_Space`
 (0xFF80)`Qt::Key_Space` (0x20)
  | `KEYCODE_SPACE` (62) |

[1] Старые браузеры могут вернуть `"Spacebar"` вместо `" "` для клавиши `Space Bar` . Firefox делал это до версии 37, как в Internet Explorer 9, 10, и 11.

Навигационные клавиши
---------------------

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"ArrowDown"` [1] | Клавиша со стрелкой "вниз". | `VK_DOWN` (0x28) | `kVK_DownArrow` (0x7D) | `GDK_KEY_Down` (0xFF54)`GDK_KEY_KP_Down`
 (0xFF99)`Qt::Key_Down` (0x01000015)
  | `KEYCODE_DPAD_DOWN` (20) |
| `"ArrowLeft"` [1] | Клавиша со стрелкой "влево" . | `VK_LEFT` (0x25) | `kVK_LeftArrow` (0x7B) | `GDK_KEY_Left` (0xFF51)`GDK_KEY_KP_Left`
 (0xFF96)`Qt::Key_Left` (0x01000012)
  | `KEYCODE_DPAD_LEFT` (21) |
| `"ArrowRight"` [1] | Клавиша со стрелкой "вправо". | `VK_RIGHT` (0x27) | `kVK_RightArrow` (0x7C) | `GDK_KEY_Right` (0xFF53)`GDK_KEY_KP_Right`
 (0xFF98)`Qt::Key_Right` (0x01000014)
  | `KEYCODE_DPAD_RIGHT` (22) |
| `"ArrowUp"` [1] | Клавиша со стрелкой "вверх". | `VK_UP` `(0x26)` | `kVK_UpArrow` (0x7E) | `GDK_KEY_Up` (0xFF52)`GDK_KEY_KP_Up`
 (0xFF97)`Qt::Key_Up` (0x01000013)
  | `KEYCODE_DPAD_UP` (19) |
| `"End"` | Клавиша `End` . Перемещает в конец контента. | `VK_END` (0x23) | `kVK_End` (0x77) | `GDK_KEY_End` (0xFF57)`GDK_KEY_KP_End`
 (0xFF9C)`Qt::Key_End` (0x01000011)
  | `KEYCODE_MOVE_END` (123) |
| `"Home"` | Клавиша `Home` . В начало контента. | `VK_HOME` (0x24) | `kVK_Home` (0x73) | `GDK_KEY_Home` (0xFF50)`GDK_KEY_KP_Home`
 (0xFF95)`Qt::Key_Home` (0x01000010)
  | `KEYCODE_MOVE_HOME` (122) |
| `"PageDown"` |
 Клавиша `Page Down` (или `PgDn`). Прокручивает вниз
 или отображает следующую страницу содержимого.
  | `VK_NEXT` (0x22) | `kVK_PageDown` `(0x79)` | `GDK_KEY_Page_Down` (0xFF56)`GDK_KEY_KP_Page_Down`
 (0xFF9B)`Qt::Key_PageDown` (0x01000017)
  | `KEYCODE_PAGE_DOWN` (93) |
| `"PageUp"` |
 Клавиша `Page Up` (или `PgUp`). Прокручивает вверх или
 отображает предыдущую страницу содержимого.
  | `VK_PRIOR` (0x21) | `kVK_PageUp` (0x74) | `GDK_KEY_Page_Up` (0xFF55)`GDK_KEY_KP_Page_Up`
 (0xFF9A)`Qt::Key_PageUp` (0x01000016)
  | `KEYCODE_PAGE_UP` (92) |

[1] Internet Explorer, Edge (16 и ранее), и Firefox (36 и ранее) используют `"Left"`, `"Right"`, `"Up"`, и `"Down"` вместо `"ArrowLeft"`, `"ArrowRight"`, `"ArrowUp"`, и `"ArrowDown"`.

Клавиши редактирования
----------------------

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"Backspace"` |
 The `Backspace` key. This key is labeled `Delete` on
 Mac keyboards.
  | `VK_BACK` (0x08) | `kVK_Delete` (0x33) | `GDK_KEY_BackSpace` (0xFF08)`Qt::Key_Backspace`
 (0x01000003)
  | `KEYCODE_DEL` (67) |
| `"Clear"` | The `Clear` key. Removes the currently selected input. | `VK_CLEAR` (0x0C)`VK_OEM_CLEAR` (0xFE) | `kVK_ANSI_KeypadClear` (0x47) | `GDK_KEY_Clear` (0xFF0B)`Qt::Key_Clear`
 (0x0100000B)
  | `KEYCODE_CLEAR` (28) |
| `"Copy"` | The `Copy` key (on certain extended keyboards). | `APPCOMMAND_COPY` |  | `GDK_KEY_Copy` (0x1008FF57)`Qt::Key_Copy`
 (0x010000CF)
  |  |
| `"CrSel"` [3] | The Cursor Select key, `CrSel`. | `VK_CRSEL` (0xF7) |  | `GDK_KEY_3270_CursorSelect` (0xFD1C) |  |
| `"Cut"` | The `Cut` key (on certain extended keyboards). | `APPCOMMAND_CUT` |  | `GDK_KEY_Cut` (0x1008FF58)`Qt::Key_Cut`
 (0x010000D0)
  |  |
| `"Delete"` [2] | Клавиша Delete, `Del`. | `VK_DELETE` (0x2E) | `kVK_ForwardDelete` (0x75) [1] | `GDK_KEY_Delete` (0xFFFF)`GDK_KEY_KP_Delete`
 (0xFF9F)`Qt::Key_Delete` (0x01000007)
  | `KEYCODE_FORWARD_DEL` (112) |
| `"EraseEof"` |
 Erase to End of Field. Deletes all characters from the current cursor
 position to the end of the current field.
  | `VK_EREOF` (0xF9) |  | `GDK_KEY_3270_ExSelect` (0xFD1B) |  |
| `"ExSel"` [4] | The `ExSel` (Extend Selection) key. | `VK_EXSEL` (0xF8) |  | `GDK_KEY_3270_ExSelect` (0xFD1B) |  |
| `"Insert"` |
 The Insert key, `Ins`. Toggles between inserting and
 overwriting text.
  | `VK_INSERT` (0x2D) |  | `GDK_KEY_Insert` (0xFF63)`GDK_KEY_KP_Insert`
 (0xFF9E)`Qt::Key_Insert` (0x01000006)
  | `KEYCODE_INSERT` (124) |
| `"Paste"` | Paste from the clipboard. | `APPCOMMAND_PASTE` |  | `GDK_KEY_Paste` (0x1008FF6D)`Qt::Key_Paste`
 (0x010000E2)
  |  |
| `"Redo"` | Redo the last action. | `APPCOMMAND_REDO` |  | `GDK_KEY_Redo` (0xFF66) |  |
| `"Undo"` | Undo the last action. | `APPCOMMAND_UNDO` |  | `GDK_KEY_Undo` (0xFF65) |  |

[1] On keyboards without a dedicated `Del` key, the Mac generates the `"Delete"` value when `Fn` is pressed in tandem with `Delete` (which is `Backspace` on other platforms).

[2] Internet Explorer (tested on release 9 and 11) and Firefox 36 and earlier use `"Del"` instead of `"Delete"` for the `Del` key.

[3] Internet Explorer (tested on release 9 and 11) and Firefox 36 and earlier generate the value `"Crsel"` instead of `"CrSel"` when the `CrSel` key is pressed.

[4] Internet Explorer (tested on release 9 and 11) and Firefox 36 and earlier generate the value `"Exsel"` instead of `"ExSel"` when the `ExSel` key is pressed.

Клавиши интерфейса пользователя (UI)
------------------------------------

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"Accept"` |
 Клавиша или кнопка `Accept`, `Commit`, или
 `OK`. Accepts the currently selected option or input method
 sequence conversion.
  | `VK_ACCEPT` (0x1E) |  |  | `KEYCODE_DPAD_CENTER` (23) |
| `"Again"` |
 The `Again` key. Перевыполняет или повторяет предыдущее
 действие.
  |  |  | `GDK_KEY_Redo` (0xFF66) |  |
| `"Attn"` [4] | Клавиша "Внимание" `Attn`. | `VK_OEM_ATTN` (0xF0) |  | `GDK_KEY_3270_Attn` (0xFD0E) |  |
| `"Cancel"` [1] | Клавиша отмены `Cancel`. |  |  | `GDK_KEY_Cancel` (0xFF69) |  |
| `"ContextMenu"` [3] |
 Отображает контекстное меню. Обычно находится между клавишами
 `Windows` (или `OS`) и `Control` на правой
 стороне клавиатуры.
  | `VK_APPS` (0x5D) | `kVK_PC_ContextMenu` (0x6E) | `GDK_KEY_Menu` (0xFF67)`Qt::Key_Menu`
 (0x01000055)
  | `KEYCODE_MENU` (82) |
| `"Escape"` [2] |
 Клавиша отмены `Esc`. Обычно используется для выходы, отмены,
 ил выхода из текущей операции. Исторически Escape-символ использовался
 для подачи сигнала о начале специальной управляющей последовательности
 символов, называемой "escape-последовательностью".
  | `VK_ESCAPE` (0x1B) | `kVK_Escape` (0x35) | `GDK_KEY_Escape` (0xFF1B)`Qt::Key_Escape`
 (0x01000000)
  | `KEYCODE_ESCAPE` (111) |
| `"Execute"` | Клавиша "Выполнить" `Execute`. | `VK_EXECUTE` (0x2B) |  | `Qt::Key_Execute` (0x01020003) |  |
| `"Find"` |
 Клавиша "Найти" `Find`. Открывает интерфейс (обычно диалоговое
 окно) для выполнения операции поиска.
  | `APPCOMMAND_FIND` |  | `GDK_KEY_Find` (0xFF68) |  |
| `"Finish"` [5] | Клавиша завершения `Finish`. | `VK_OEM_FINISH` (0xF1) |  |  |  |
| `"Help"` |
 Клавиша помощи `Help`. Открывает или переключает отображение
 справочной информации.
  | `VK_HELP` (0x2F)`APPCOMMAND_HELP` | `kVK_Help` (0x72) | `GDK_KEY_Help` (0xFF6A)`Qt::Key_Help`
 (0x01000058)
  | `KEYCODE_HELP` (259) |
| `"Pause"` |
 Клавиша паузы `Pause`. Приостанавливает текущее приложение или
 состояние, если это применимо.

**Примечание:** Не следует путать с клавишей
 `"MediaPause"` , которая используется для
 медиа-контроллеров, а не для управления приложениями и процессами.
  | `VK_PAUSE` (0x13) |  | `GDK_KEY_Pause` (0xFF13)`GDK_KEY_Break`
 (0xFF6B)`Qt::Key_Pause` (0x01000008)
  | `KEYCODE_BREAK` (121) |
| `"Play"` |
 Клавиша `Play` . Если применимо, возобновляет ранее
 приостановленное приложение.

**Примечание:** Не следует путать с клавишей`"MediaPlay"`
 которая используется для медиа-контроллеров, а не для управления
 приложениями и процессами.
  | `VK_PLAY` (0xFA) |  | `GDK_KEY_3270_Play` (0xFD16)`Qt::Key_Play`
 (0x01020005)
  |  |
| `"Props"` | Клавиша "Свойства" `Props`. |  |  |  |  |
| `"Select"` | Клавиша выбора/выделения `Select`. | `VK_SELECT` (0x29) |  | `GDK_KEY_Select` (0xFF60) | `KEYCODE_BUTTON_SELECT` (109) |
| `"ZoomIn"` [6] | Клавиша увеличения масштаба `ZoomIn`. |  |  | `GDK_KEY_ZoomIn` (0x1008FF8B)`Qt::Key_ZoomIn`
 (0x010000F6)
  | `KEYCODE_ZOOM_IN` (168) |
| `"ZoomOut"` [6] | Клавиша уменьшения масштаба `ZoomOut`. |  |  | `GDK_KEY_ZoomOut` (0x1008FF8C)`Qt::Key_ZoomOut`
 (0x010000F7)
  | `KEYCODE_ZOOM_OUT` (169) |

[1] В Google Chrome 52, клавиша `Cancel` ошибочно возвращает значение `"Pause"`. Исправлено в Chrome 53. (Смотри подробно в Chrome bug 612749.)

[2] В Internet Explorer (проверено в версиях 9 и 11) и Firefox 36 и более ранних, клавиша `Esc` возвращает значение `"Esc"` вместо `"Escape"`.

[3] Internet Explorer (проверено в версиях 9 и 11) и Firefox 36 и более ранних, клавиша контекстного меню возвращает значение `"Apps"` вместо `"ContextMenu"`.

[4] Клавиша `Attn` генерирует значение `"Unidentified"` в Internet Explorer (проверено в версиях 9 и 11). В Firefox и Google Chrome происходит то же, если только не действует японская раскладка клавиатуры, то в этом случае она генерирует вместо неё `"KanaMode"`.

[5] Клавиша `Finish` генерирует значение `"Unidentified"` в Internet Explorer (проверено в версиях 9 и 11). В Firefox происходит то же, если только не действует японская раскладка клавиатуры, то в этом случае она генерирует вместо неё `"Katakana"`.

[6] Firefox не поддерживал клавиши `"ZoomIn"` и `"ZoomOut"` до Firefox 37.

Клавиши устройства
------------------

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"BrightnessDown"` |
 Клавиша уменьшения яркости. Обычно используется для уменьшения яркости
 дисплея.
  |  |  | `GDK_KEY_MonBrightnessDown` (0x1008FF03)`Qt::Key_MonBrightnessDown`
 (0x010000B3)
  | `KEYCODE_BRIGHTNESS_DOWN` (220) |
| `"BrightnessUp"` | Клавиша увеличения яркости. Обычно увеличивает яркость дисплея. |  |  | `GDK_KEY_MonBrightnessUp` (0x1008FF02)`Qt::Key_MonBrightnessUp`
 (0x010000B2)
  | `KEYCODE_BRIGHTNESS_UP` (221) |
| `"Eject"` |
 Клавиша извлечения `Eject`. Извлекает съёмный носитель (или
 переключает лоток оптического дисковода, открывая и закрывая его).
  |  |  | `GDK_KEY_Eject` (0x1008FF2C)`Qt::Key_Eject`
 (0x010000B9)
  | `KEYCODE_MEDIA_EJECT` (129) |
| `"LogOff"` [2] | Клавиша выход из системы `LogOff`. |  |  | `GDK_KEY_LogOff` (0x1008FF61)`Qt::Key_LogOff`
 (0x010000D9)
  |  |
| `"Power"` |
 Кнопка или клавиша питания `Power` для включения и выключения
 питания.

**Примечание:** Не все системы передают этот ключ агенту
 пользователя.
  |  |  |  | `KEYCODE_POWER` (26) |
| `"PowerOff"` |
 Кнопка выключения компьютера `PowerOff` или
 `PowerDown`.
  |  |  | `GDK_KEY_PowerDown` (0x1008FF21)`GDK_KEY_PowerOff`
 (0x1008FF2A)`Qt::Key_PowerDown` (0x0100010B)`Qt::Key_PowerOff`
 (0x010000B7)
  |  |
| `"PrintScreen"` |
 Клавиша `PrintScreen` или `PrtScr`. Иногда
 `SnapShot`. Делает снимок экрана.
  | `VK_SNAPSHOT` (0x2C) |  | `GDK_KEY_3270_PrintScreen` (0xFD1D)`GDK_KEY_Print`
 (0xFF61)`GDK_KEY_Sys_Req` (0xFF15)`Qt::Key_Print`
 (0x01000009)`Qt::Key_SysReq` (0x0100000A)
  | `KEYCODE_SYSRQ` (120) |
| `"Hibernate"` [2] |
 Клавиша гибернации `Hibernate`. Состояние компьютера
 сохраняется на диске, а затем выключается; компьютер может быть
 возвращён в предыдущее состояние путём восстановления сохранённой
 информации о состоянии.
  |  |  | `GDK_KEY_Hibernate` (0x1008FFA8)`Qt::Key_Hibernate`
 (0x01000108)
  |  |
| `"Standby"` [1] |
 Клавиша сна `Standby`. (Также известна как
 `Suspend` или `Sleep`.) Выключает дисплей и переводит
 компьютер в режим низкого энергопотребления, не выключая его полностью.
  | `VK_SLEEP` (0x5F) |  | `GDK_KEY_Standby` (0x1008FF10)`GDK_KEY_Suspend`
 (0x1008FFA7)`GDK_KEY_Sleep` (0x1008FF2F)`Qt::Key_Standby`
 (0x01000093)`Qt::Key_Suspend` (0x0100010C)`Qt::Key_Sleep`
 (0x01020004)
  | `KEYCODE_SLEEP` (223) |
| `"WakeUp"` [2] |
 Клавиша пробуждения `WakeUp`. Используется для вывода
 компьютера из режима гибернации или ожидания.
  |  |  | `GDK_KEY_WakeUp` (0x1008FF2B)`Qt::Key_WakeUp`
 (0x010000B8)
  | `KEYCODE_WAKEUP` (224) |

[1] Клавиша `Standby` не поддерживается Internet Explorer (проверено в версиях 9 и 11) и Firefox 36 и более ранних, поэтому возвращала `"Unidentified"`.

[2] До Firefox 37, эта клавиша генерировала значение `"Unidentified"`.

IME и клавиши композиции
------------------------

Клавиши, используемые при использовании редактора метода ввода (IME) для ввода текста, который не может быть легко введён с помощью простых нажатий клавиш, например текста на языках, которые имеют больше графем, чем клавиш ввода символов на клавиатуре. Общие примеры включают китайский, японский, корейский и хинди.

Некоторые клавиши являются общими для нескольких языков, в то время как другие существуют только на клавиатурах, ориентированных на определённые языки. Кроме того, не все клавиатуры имеют все эти клавиши.

#### Обычные IME клавиши

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"AllCandidates"` |
 The `All Candidates` key, which starts multi-candidate mode, in
 which multiple candidates are displayed for the ongoing input.
  |  |  | `GDK_KEY_MultipleCandidate` (0xFF3D`Qt::Key_MultipleCandidate`
 (0x0100113D)
  |  |
| `"Alphanumeric"` | The `Alphanumeric` key. | `VK_OEM_ATTN` (0xF0) |  | `GDK_KEY_Eisu_Shift` (0xFF2F)`GDK_KEY_Eisu_toggle`
 (0xFF30)`Qt::Key_Eisu_Shift` (0x0100112f)`Qt::Key_Eisu_toggle`
 (0x01001130)
  |  |
| `"CodeInput"` |
 The `Code Input` key, which enables code input mode, which lets
 the user enter characters by typing their code points (their Unicode
 character numbers, typically).
  |  |  | `GDK_KEY_Codeinput` (0xFF37)`Qt::Key_Codeinput`
 (0x01001137)
  |  |
| `"Compose"` | The `Compose` key. |  |  | `GDK_KEY_Multi_key` (0xFF20) [1]`Qt::Key_Multi_key`
 (0x01001120)
  |  |
| `"Convert"` [4] |
 The `Convert` key, which instructs the IME to convert the
 current input method sequence into the resulting character.
  | `VK_CONVERT` (0x1C) |  | `GDK_KEY_Henkan` (0xFF23)`Qt::Key_Henkan`
 (0x01001123)
  | `KEYCODE_HENKAN` (214) |
| `"Dead"` |
 A dead "combining" key; that is, a key which is used in tandem with
 other keys to generate accented and other modified characters. If
 pressed by itself, it doesn't generate a character.

 If you wish to identify which specific dead key was pressed (in cases
 where more than one exists), you can do so by examining the
 `KeyboardEvent`'s associated
 `compositionupdate (en-US)` event's
 `data` (en-US) property.
  |  |  | See Dead keycodes for Linux below |  |
| `"FinalMode"` |
 The `Final` (Final Mode) key is used on some Asian keyboards to
 enter final mode when using IMEs.
  | `VK_FINAL` (0x18) |  |  |  |
| `"GroupFirst"` |
 Switches to the first character group on an
 ISO/IEC 9995 keyboard. Each key may have multiple groups of characters, each in its own
 column. Pressing this key instructs the device to interpret keypresses
 as coming from the first column on subsequent keystrokes.
  |  |  | `GDK_KEY_ISO_First_Group` (0xFE0C) |  |
| `"GroupLast"` |
 Switches to the last character group on an
 ISO/IEC 9995 keyboard.
  |  |  | `GDK_KEY_ISO_Last_Group` (0xFE0E) |  |
| `"GroupNext"` [4] |
 Switches to the next character group on an
 ISO/IEC 9995 keyboard.
  |  |  | `GDK_KEY_ISO_Next_Group` (0xFE08) | `KEYCODE_LANGUAGE_SWITCH` (204) |
| `"GroupPrevious"` |
 Switches to the previous character group on an
 ISO/IEC 9995 keyboard.
  |  |  | `GDK_KEY_ISO_Prev_Group` (0xFE0A) |  |
| `"ModeChange"` [5] | The Mode Change key. Toggles or cycles among input modes of IMEs. | `VK_MODECHANGE` (0x1F) |  | `GDK_KEY_Mode_switch` (0xFF7E)`GDK_KEY_script_switch`
 (0xFF7E)`Qt::Key_Mode_switch` (0x0100117E)
  | `KEYCODE_SWITCH_CHARSET` (95) |
| `"NextCandidate"` |
 The Next Candidate function key. Selects the next possible match for the
 ongoing input.
  |  |  |  |  |
| `"NonConvert"` [2] |
 The `NonConvert` ("Don't convert") key. This accepts the
 current input method sequence without running conversion when using an
 IME.
  | `VK_NONCONVERT` (0x1D) |  | `GDK_KEY_Muhenkan` (0xFF22)`Qt::Key_Muhenkan`
 (0x01001122) | `KEYCODE_MUHENKAN` (213) |
| `"PreviousCandidate"` |
 The Previous Candidate key. Selects the previous possible match for the
 ongoing input.
  |  |  | `GDK_KEY_PreviousCandidate` (0xFF3E)`Qt::Key_PreviousCandidate`
 (0x0100113E)
  |  |
| `"Process"` [3] | The `Process` key. Instructs the IME to process the conversion. | `VK_PROCESSKEY` (0xE5) |  |  |  |
| `"SingleCandidate"` [4] |
 The Single Candidate key. Enables single candidate mode (as opposed to
 multi-candidate mode); in this mode, only one candidate is displayed at
 a time.
  |  |  | `GDK_KEY_SingleCandidate` (0xFF3C)`Qt::Key_SingleCandidate`
 (0x0100113C)
  |  |

[1] В *X Window System*, клавиша `Compose` называется `Multi`.

[2] Клавиша `NonConvert` возвращает значение `"Nonconvert"` вместо корректного `"NonConvert"` в Internet Explorer (проверено в версиях 9 и 11) и Firefox версии 36 и более ранних.

[3] Клавиша `Process` в настоящее время возвращает `"Unidentified"` в Firefox и Internet Explorer. Google Chrome возвращает значение клавиши так, как если бы IME не использовался.

[4] До Firefox 37, эта клавиша возвращала `"Unidentified"`.

[5] Firefox генерирует значение `"AltGraph"` вместо `"ModeChange"`.

### Только корейские клавиатуры

Эти клавиши доступны только на корейских клавиатурах. Существуют и другие клавиши, определённые различными платформами для корейских клавиатур, но они являются наиболее распространёнными и идентифицируются спецификацией событий пользовательского интерфейса.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"HangulMode"` |
 The `Hangul` (Korean character set) mode key, which toggles
 between Hangul and English entry modes.
  | `VK_HANGUL` (0x15) [1] |  | `GDK_KEY_Hangul` (0xFF31)`Qt::Key_Hangul`
 (0x01001131)
  |  |
| `"HanjaMode"` |
 Selects the Hanja mode, for converting Hangul characters to the more
 specific Hanja characters.
  | `VK_HANJA` (0x19) [1] |  | `GDK_KEY_Hangul_Hanja` (0xFF34)`Qt::Key_Hangul_Hanja`
 (0x01001134)
  |  |
| `"JunjaMode"` |
 Selects the Junja mode, in which Korean is represented using single-byte
 Latin characters.
  | `VK_JUNJA` (0x17) |  | `GDK_KEY_Hangul_Jeonja` (0xFF38)`Qt::Key_Hangul_Jeonja`
 (0x01001138)
  |  |

[1] `VK_HANGUL` и `VK_KANA` используют один и тот же числовой код клавиши в Windows, также как `VK_HANJA` и `VK_KANJI`.

### Только японские клавиатуры

Эти клавиши доступны только на японских клавиатурах.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"Eisu"` [1] |
 The `Eisu` key. This key's purpose is defined by the IME, but
 may be used to close the IME.
  |  | `kVK_JIS_Eisu` (0x66) | `GDK_KEY_Eisu_toggle` (0xFF2F)`Qt::Key_Eisu_toggle`
 (0x01001130)
  | `KEYCODE_EISU` (212) |
| `"Hankaku"` [3] | The `Hankaku` (half-width characters) key. | `VK_OEM_AUTO` (0xF3) |  | `GDK_KEY_Hankaku` (0xFF29)`Qt::Key_Hankaku`
 (0x01001129)
  |  |
| `"Hiragana"` | The `Hiragana` key; selects Kana characters mode. | `VK_OEM_COPY` (0xF2) |  | `GDK_KEY_Hiragana` (0xFF25)`Qt::Key_Hiragana`
 (0x01001125)
  |  |
| `"HiraganaKatakana"` [6] | Toggles between the Hiragana and Katakana writing systems. |  |  | `GDK_KEY_Hiragana_Katakana` (0xFF27)`Qt::Key_Hiragana_Katakana`
 (0x01001127)
  | `KEYCODE_KATAKANA_HIRAGANA` (215) |
| `"KanaMode"` | The `Kana Mode` (Kana Lock) key. | `VK_KANA` (0x15) [2]`VK_ATTN` (0xF6) |  | `GDK_KEY_Kana_Lock` (0xFF2D)`GDK_KEY_Kana_Shift`
 (0xFF2E)`Qt::Key_Kana_Lock` (0x0100112D)`Qt::Key_Kana_Shift`
 (0x0100112E)
  |  |
| `"KanjiMode"` |
 The `Kanji Mode` key. Enables entering Japanese text using the
 ideographic characters of Chinese origin.
  | `VK_KANJI`(0x19) [2] | `kVK_JIS_Kana` (0x68) | `GDK_KEY_Kanji` (0xFF21)`Qt::Key_Kanji`
 (0x01001121)
  | `KEYCODE_KANA` (218) |
| `"Katakana"` | The `Katakana` key. | `VK_OEM_FINISH` (0xF1) |  | `GDK_KEY_Katakana` (0xFF26)`Qt::Key_Katakana`
 (0x01001126)
  |  |
| `"Romaji"` [5] | The `Romaji` key; selects the Roman character set. | `VK_OEM_BACKTAB` (0xF5) |  | `GDK_KEY_Romaji` (0xFF24)`Qt::Key_Romaji`
 (0x01001124)
  |  |
| `"Zenkaku"` [4] | The `Zenkaku` (full width) characters key. | `VK_OEM_ENLW` (0xF4) |  | `GDK_KEY_Zenkaku` (0xFF28)`Qt::Key_Zenkaku`
 (0x01001128)
  |  |
| `"ZenkakuHanaku"` [6] | The `Zenkaku/Hankaku` (full width/half width) toggle key. |  |  | `GDK_KEY_Zenkaku_Hankaku` (0xFF2A)`Qt::Zenkaku_Hankaku`
 (0x0100112A)
  | `KEYCODE_ZENKAKU_HANKAKU` (211) |

[1] До Firefox 37, клавиша `Eisu` ошибочно сопоставлялась `"RomanCharacters"`.

[2] `VK_HANGUL` и `VK_KANA` используют один и тот же числовой код клавиши в Windows, также как `VK_HANJA` и `VK_KANJI`.

[3] До Firefox 37, клавиша `Hankaku` (half-width) генерировала значение `"HalfWidth"` в Firefox. Также, этак клавиша генерировала значение `"Unidentified"` в Internet Explorer (проверено в версиях 9 и 11).

[4] Internet Explorer (проверено в версиях 9 и 11) возвращал `"Unidentified"` для клавиши `Zenkaku`; Firefox 36 и более ранние определяли эту клавишу как `"FullWidth"` на японских раскладках клавиатуры и `"Unidentified"` на всех остальных раскладках клавиатуры. Firefox 37 и выше, а также все версии Google Chrome, корректно возвращают `"Zenkaku"`.

[5] `"Unidentified"` в Internet Explorer (проверено в версиях 9 и 11). Firefox 36 и более ранние определяли клавишу `Romaji` как `"RomanCharacters"` на японских клавиатурах и `"Unidentified"` для остальных клавиатур; исправлено на значение `"Romaji"` в Firefox 37 и выше.

[6] Эта клавиша возвращала `"Unidentified"` до Firefox 37.

### Dead keycodes for Linux

Linux generates accented characters using special **dead keys**. *Dead keys* are keys which are pressed in combination with character keys to generate accented forms of those characters. You can identify which specific dead key was used (if more than one exists) by examining the `KeyboardEvent`'s associated `compositionupdate (en-US)` event's `data` (en-US) property.

You can find a table of the dead keys and the characters they can be used with to generate accented or otherwise special characters on Linux using GTK.

The value of `data` (en-US) will be one of the following:

| **Значение `CompositionEvent.data`** | Символ | Комментарии |
| --- | --- | --- |
| `GDK_KEY_dead_grave` (0xFE50) `Qt::Key_Dead_Grave` (0x01001250) | ` |  |
| `GDK_KEY_dead_acute` (0xFE51) `Qt::Key_Dead_Acute` (0x01001251) | ´ |  |
| `GDK_KEY_dead_circumflex` (0xFE52) `Qt::Key_Dead_Circumflex` (0x01001252) | ˆ |  |
| `GDK_KEY_dead_tilde` (0xFE53) `Qt::Key_Dead_Tilde` (0x01001253) | ˜ |  |
| `GDK_KEY_dead_perispomeni` (0xFE53) | ͂ |  |
| `GDK_KEY_dead_macron` (0xFE54) `Qt::Key_Dead_Macron` (0x01001254) | ¯ |  |
| `GDK_KEY_dead_breve` (0xFE55) `Qt::Key_Dead_Breve` (0x01001255) | ˘ |  |
| `GDK_KEY_dead_abovedot` (0xFE56) `Qt::Key_Dead_Abovedot` (0x01001256) | ˙ |  |
| `GDK_KEY_dead_diaeresis` (0xFE57) `Qt::Key_Dead_Diaeresis` (0x01001257) | ¨ | Also called an umlaut. |
| `GDK_KEY_dead_abovering` (0xFE58) `Qt::Key_Dead_Abovering` (0x01001258) | ˚ |  |
| `GDK_KEY_dead_doubleacute` (0xFE59) `Qt::Key_Dead_Doubleacute` (0x01001259) | ˝ |  |
| `GDK_KEY_dead_caron` (0xFE5A) `Qt::Key_Dead_Caron` (0x0100125A) | ˇ | Also called a háček; used in Czech among other languages. |
| `GDK_KEY_dead_cedilla` (0xFE5B) `Qt::Key_Dead_Cedilla` (0x0100125B) | ¸ |  |
| `GDK_KEY_dead_ogonek` (0xFE5C) `Qt::Key_Dead_Ogonek` (0x0100125C) | ˛ | Also called a nosinė; used in Polish and Old Irish. |
| `GDK_KEY_dead_iota` (0xFE5D) `Qt::Key_Dead_Iota` (0x0100125D) | ͅ | Iota subscript. |
| `GDK_KEY_dead_voiced_sound` (0xFE5E) `Qt::Key_Dead_Voiced_Sound` (0x0100125E) | ゙ |  |
| `GDK_KEY_dead_semivoiced_sound` (0xFE5F) `Qt::Key_Dead_Semivoiced_Sound` (0x0100125F) | ゚ |  |
| `GDK_KEY_dead_belowdot` (0xFE60) `Qt::Key_Dead_Belowdot` (0x01001260) | ̣̣ |  |
| `GDK_KEY_dead_hook` (0xFE61) `Qt::Key_Dead_Hook` (0x01001261) | ̡ |  |
| `GDK_KEY_dead_horn` (0xFE62) `Qt::Key_Dead_Horn` (0x01001262) | ̛ |  |
| `GDK_KEY_dead_stroke` (0xFE63) | ̶̶ |  |
| `GDK_KEY_dead_abovecomma` (0xFE64) | ̓̓ |  |
| `GDK_KEY_dead_psili` (0xFE64) | ᾿ |  |
| `GDK_KEY_dead_abovereversedcomma` (0xFE65) | ʽ |  |
| `GDK_KEY_dead_dasia` (0xFE65) | ῾ |  |
| `GDK_KEY_dead_doublegrave` (0xFE66) | ̏ |  |
| `GDK_KEY_dead_belowring` (0xFE67) | ˳ |  |
| `GDK_KEY_dead_belowmacron` (0xFE68) | ̱ |  |
| `GDK_KEY_dead_belowcircumflex` (0xFE69) | ꞈ |  |
| `GDK_KEY_dead_belowtilde` (0xFE6A) | ̰ |  |
| `GDK_KEY_dead_belowbreve` (0xFE6B) | ̮ |  |
| `GDK_KEY_dead_belowdiaeresis` (0xFE6C) | ̤ |  |
| `GDK_KEY_dead_invertedbreve` (0xFE6D) | ̯ |  |
| `GDK_KEY_dead_belowcomma` (0xFE6E) | ̦ |  |
| `GDK_KEY_dead_currency` (0xFE6F) |  |  |
| `GDK_KEY_dead_a` (0xFE80) |  |  |
| `GDK_KEY_dead_A` (0xFE81) |  |  |
| `GDK_KEY_dead_e` (0xFE82) |  |  |
| `GDK_KEY_dead_E` (0xFE83) |  |  |
| `GDK_KEY_dead_i` (0xFE84) |  |  |
| `GDK_KEY_dead_I` (0xFE85) |  |  |
| `GDK_KEY_dead_o` (0xFE86) |  |  |
| `GDK_KEY_dead_O` (0xFE87) |  |  |
| `GDK_KEY_dead_u` (0xFE88) |  |  |
| `GDK_KEY_dead_U` (0xFE89) |  |  |
| `GDK_KEY_dead_small_schwa` (0xFE8A) | ə |  |
| `GDK_KEY_dead_capital_schwa` (0xFE8B) | Ə |  |
| `GDK_KEY_dead_greek` (0xFE8C) |  |  |

Функциональные клавиши
----------------------

Хотя разные платформы поддерживают разное количество функциональных клавиш общего назначения, таких как `F1`–`F12` (or `F1`–`F10`, or `F1`–`F15`, etc.), первые несколько конкретно определены следующим образом.

Если доступно больше функциональных клавиш, их имена продолжают представленный шаблон, продолжая увеличивать числовую часть имени каждой клавиши, так что, например, `"F24"` это валидное значение клавиши.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"F1"` | Клавиша `F1`. | `VK_F1` (0x70) | `kVK_F1` (0x7A) | `GDK_KEY_F1` (0xFFBE)`GDK_KEY_KP_F1`
 (0xFF91)`Qt::Key_F1` (0x01000030)
  | `KEYCODE_F1` (131) |
| `"F2"` | Клавиша `F2`. | `VK_F2` (0x71) | `kVK_F2` (0x78) | `GDK_KEY_F2` (0xFFBF)`GDK_KEY_KP_F2`
 (0xFF92)`Qt::Key_F2` (0x01000031)
  | `KEYCODE_F2` (132) |
| `"F3"` | Клавиша `F3`. | `VK_F3` (0x72) | `kVK_F3` (0x63) | `GDK_KEY_F3` (0xFFC0)`GDK_KEY_KP_F3`
 (0xFF93)`Qt::Key_F3` (0x01000032)
  | `KEYCODE_F3` (133) |
| `"F4"` | Клавиша `F4`. | `VK_F4` (0x73) | `kVK_F4` (0x76) | `GDK_KEY_F4` (0xFFC1)`GDK_KEY_KP_F4`
 (0xFF94)`Qt::Key_F4` (0x01000033)
  | `KEYCODE_F4` (134) |
| `"F5"` | Клавиша `F5`. | `VK_F5` (0x74) | `kVK_F5` (0x60) | `GDK_KEY_F5` (0xFFC2)`Qt::Key_F5`
 (0x01000034)
  | `KEYCODE_F5` (135) |
| `"F6"` | Клавиша `F6`. | `VK_F6` (0x75) | `kVK_F6` (0x61) | `GDK_KEY_F6` (0xFFC3)`Qt::Key_F6`
 (0x01000035)
  | `KEYCODE_F6` (136) |
| `"F7"` | Клавиша `F7`. | `VK_F7` (0x76) | `kVK_F7` (0x62) | `GDK_KEY_F7` (0xFFC4)`Qt::Key_F7`
 (0x01000036)
  | `KEYCODE_F7` (137) |
| `"F8"` | Клавиша `F8`. | `VK_F8` (0x77) | `kVK_F8` (0x64) | `GDK_KEY_F8` (0xFFC5)`Qt::Key_F8`
 (0x01000037)
  | `KEYCODE_F8` (138) |
| `"F9"` | Клавиша `F9`. | `VK_F9` (0x78) | `kVK_F9` (0x65) | `GDK_KEY_F9` (0xFFC6)`Qt::Key_F9`
 (0x01000038)
  | `KEYCODE_F9` (139) |
| `"F10"` | Клавиша `F10`. | `VK_F10` (0x79) | `kVK_F10` (0x6D) | `GDK_KEY_F10` (0xFFC7)`Qt::Key_F10`
 (0x01000039)
  | `KEYCODE_F10` (140) |
| `"F11"` | Клавиша `F11`. | `VK_F11` (0x7A) | `kVK_F11` (0x67) | `GDK_KEY_F11` (0xFFC8)`Qt::Key_F11`
 (0x0100003A)
  | `KEYCODE_F11` (141) |
| `"F12"` | Клавиша `F12`. | `VK_F12` (0x7B) | `kVK_F12` (0x6F) | `GDK_KEY_F12` (0xFFC9)`Qt::Key_F12`
 (0x0100003B)
  | `KEYCODE_F12` (142) |
| `"F13"` | Клавиша `F13`. | `VK_F13` (0x7C) | `kVK_F13` (0x69) | `GDK_KEY_F13` (0xFFCA)`Qt::Key_F13`
 (0x0100003C)
  | `KEYCODE_F13` |
| `"F14"` | Клавиша `F14`. | `VK_F14` (0x7D) | `kVK_F14` (0x6B) | `GDK_KEY_F14` (0xFFCB)`Qt::Key_F1`4
 (0x0100003D)
  | `KEYCODE_F14` |
| `"F15"` | Клавиша `F15`. | `VK_F15` (0x7E) | `kVK_F15` (0x71) | `GDK_KEY_F15` (0xFFCC)`Qt::Key_F1`5
 (0x0100003E)
  | `KEYCODE_F15` |
| `"F16"` | Клавиша `F16`. | `VK_F16` (0x7F) | `kVK_F16` (0x6A) | `GDK_KEY_F16` (0xFFCD)`Qt::Key_F1`6
 (0x0100003F)
  | `KEYCODE_F16` |
| `"F17"` | Клавиша `F17`. | `VK_F17` (0x80) | `kVK_F17` (0x40) | `GDK_KEY_F17` (0xFFCE)`Qt::Key_F1`7
 (0x01000040)
  | `KEYCODE_F17` |
| `"F18"` | Клавиша `F18`. | `VK_F18` (0x81) | `kVK_F18` (0x4F) | `GDK_KEY_F18` (0xFFCF)`Qt::Key_F1`8
 (0x01000041)
  | `KEYCODE_F18` |
| `"F19"` | Клавиша `F19`. | `VK_F19` (0x82) | `kVK_F19` (0x50) | `GDK_KEY_F19` (0xFFD0)`Qt::Key_F1`9
 (0x01000042)
  | `KEYCODE_F19` |
| `"F20"` | Клавиша `F20`. | `VK_F20` (0x83) | `kVK_F20` (0x5A) | `GDK_KEY_F20` (0xFFD1)`Qt::Key_F20`
 (0x01000043)
  | `KEYCODE_F20` |
| `"Soft1"` | Первая функциональная клавиша общего назначения. |  |  | `Qt::Key_Context1` (0x01100000) |  |
| `"Soft2"` | Вторая функциональная клавиша общего назначения. |  |  | `Qt::Key_Context2` (0x01100001) |  |
| `"Soft3"` | Третья функциональная клавиша общего назначения. |  |  | `Qt::Key_Context3` (0x01100002) |  |
| `"Soft4"` | Четвёртая функциональная клавиша общего назначения. |  |  | `Qt::Key_Context4` (0x01100003) |  |

Телефонные клавиши
------------------

Эти клавиши представляют собой кнопки, которые обычно существуют на современных смартфонах.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"AppSwitch"` |
 Представляет список недавно использованных приложений, который позволяет
 пользователю быстро переключаться между приложениями.
  |  |  |  | `KEYCODE_APP_SWITCH` (181) |
| `"Call"` | Кнопка вызова `Call`. Набирает номер, который был введён. |  |  | `Qt::Key_Call` (0x01100004) | `KEYCODE_CALL` (5) |
| `"Camera"` | Кнопка камеры `Camera`. Включает камеру. |  |  | `Qt::Key_Camera` (0x01100020) | `KEYCODE_CAMERA` (27) |
| `"CameraFocus"` | Кнопка фокусировки `Focus`. Фокусирует камеру. |  |  | `Qt::Key_CameraFocus` (0x01100021) | `KEYCODE_FOCUS` (80) |
| `"EndCall"` | Кнопка завершения вызова `End Call` или `Hang Up`. |  |  | `Qt::Key_Hangup` (0x01100005) | `KEYCODE_ENDCALL` (6) |
| `"GoBack"` | Кнопка "Назад" `Back`. |  |  |  | `KEYCODE_BACK` (4) |
| `"GoHome"` [1] |
 Кнопка `Home`. Возвращает пользователя на главный экран
 телефона (обычно это средство запуска приложений).
  |  |  |  | `KEYCODE_HOME` (3) |
| `"HeadsetHook"` |
 Клавиша гарнитуры`Headset Hook`. Обычно это кнопка на
 гарнитуре, которая используется для отбоя вызовов и воспроизведения или
 приостановки мультимедиа.
  |  |  | `Qt::Key_ToggleCallHangup` (0x01100007) | `KEYCODE_HEADSETHOOK` (79) |
| `"LastNumberRedial"` |
 Клавиша перенабора номера `Redial`. Набирает последний
 набранный номер.
  |  |  | `Qt::Key_LastNumberRedial` (0x01100009) |  |
| `"Notification"` | Клавиша уведомления`Notification`. |  |  |  | `KEYCODE_NOTIFICATION` (83) |
| `"MannerMode"` |
 Кнопка, которая циклически переключается между режимами уведомлений:
 бесшумный, вибрировать, звонить и так далее.
  |  |  |  | `KEYCODE_MANNER_MODE` (205) |
| `"VoiceDial"` | Клавиша`Voice Dial`. Запускает голосовой набор. |  |  | `Qt::Key_VoiceDial` (0x01100008) | `KEYCODE_VOICE_ASSIST` (231) |

[1] До Firefox 37, кнопка Home генерирует значение `"Exit"`. Начиная с Firefox 37, генерирует `"MozHomeScreen"`.

Мультимедийные клавиши
----------------------

Мультимедийные клавиши - это дополнительные кнопки или клавиши для управления мультимедийными устройствами, которые есть на некоторых клавиатурах.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"ChannelDown"` | Переключается на предыдущий канал. | `APPCOMMAND_MEDIA_CHANNEL_DOWN` |  | `Qt::Key_ChannelDown` (0x01000119) | `KEYCODE_CHANNEL_DOWN` (167) |
| `"ChannelUp"` | Переключается на следующий канал. | `APPCOMMAND_MEDIA_CHANNEL_UP` |  | `Qt::Key_ChannelUp` (0x01000118) | `KEYCODE_CHANNEL_UP` (166) |
| `"MediaFastForward"` [2] |
 Запускает, продолжает или увеличивает скорость быстрой перемотки
 мультимедиа вперёд.
  | `APPCOMMAND_MEDIA_FAST_FORWARD` |  | `GDK_KEY_AudioForward (0x1008FF97)Qt:Key_AudioForward`
 (0x01000102)
  | `KEYCODE_MEDIA_FAST_FORWARD` (90) |
| `"MediaPause"` | Приостанавливает воспроизведение текущего медиафайла.

**Примечание:** Некоторые старые приложения используют
 просто "паузу", но это неверно.

 | `APPCOMMAND_MEDIA_PAUSE` |  | `GDK_KEY_AudioPause` (0x1008FF31)`Qt::Key_MediaPause`
 (0x1000085)
  | `KEYCODE_MEDIA_PAUSE` (127) |
| `"MediaPlay"` |
 Запускает или продолжает воспроизведение мультимедиа с нормальной
 скоростью, если ещё не делает этого. В противном случае не имеет
 эффекта.
  | `APPCOMMAND_MEDIA_PLAY` |  | `GDK_KEY_AudioPlay` (0x1008FF14) | `KEYCODE_MEDIA_PLAY` `(126)` |
| `"MediaPlayPause"` | Переключение между воспроизведением и приостановкой текущего медиафайла. | `VK_MEDIA_PLAY_PAUSE` (0xB3)`APPCOMMAND_MEDIA_PLAY_PAUSE` |  | `Qt::Key_MediaTogglePlayPause` (0x1000086) | `KEYCODE_MEDIA_PLAY_PAUSE` (85) |
| `"MediaRecord"` | Запуск или возобновление записи медиафайла. | `APPCOMMAND_MEDIA_RECORD` |  | `GDK_KEY_AudioRecord` (0x1008FF1C)`Qt::Key_MediaRecord`
 (0x01000084)
  | `KEYCODE_MEDIA_RECORD` `(130)` |
| `"MediaRewind"` | Запуск, продолжение или увеличение скорости перемотки медиафайла. | `APPCOMMAND_MEDIA_REWIND` |  | `GDK_KEY_AudioRewind` (0x1008FF3E)`Qt::Key_AudioRewind`
 (0x010000C5)
  | `KEYCODE_MEDIA_REWIND` `(89)` |
| `"MediaStop"` |
 Останавливает текущую медиа-активность (такую как воспроизведение,
 запись, пауза, перемотка вперёд или назад). Не действует, если медиафайл
 уже остановлен.
  | `VK_MEDIA_STOP` (0xB2)`APPCOMMAND_MEDIA_STOP` |  | `GDK_KEY_AudioStop` (0x1008FF15)`Qt::Key_MediaStop`
 (0x01000081)
  | `KEYCODE_MEDIA_STOP` (86) |
| `"MediaTrackNext"` [1] | Seeks to the next media or program track. | `VK_MEDIA_NEXT_TRACK` (0xB0)`APPCOMMAND_MEDIA_NEXTTRACK` |  | `GDK_KEY_AudioNext` (0x1008FF17)`Qt::Key_MediaNext`
 (0x01000083)
  | `KEYCODE_MEDIA_NEXT` (87) |
| `"MediaTrackPrevious"` [1] | Seeks to the previous media or program track. | `VK_MEDIA_PREV_TRACK` (0xB1)`APPCOMMAND_MEDIA_PREVIOUSTRACK` |  | `GDK_KEY_AudioPrev` (0x1008FF16)`Qt::Key_MediaPrevious`
 (0x01000082)
  | `KEYCODE_MEDIA_PREVIOUS` (88) |

[1] Internet Explorer, Edge, и Firefox (36 и более ранние) используют `"MediaNextTrack"` и `"MediaPreviousTrack"` вместо `"MediaTrackNext"` и `"MediaTrackPrevious"`.

[2] До Firefox 37, Firefox генерировал значение `"FastFwd"` на некоторых платформах и `"Unidentified"` на других вместо `"MediaFastForward"`.

Клавиши управления звуком
-------------------------

Эти мультимедийные клавиши используются специально для управления звуком.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"AudioBalanceLeft"` | Регулирует баланс звука влево. | `VK_AUDIO_BALANCE_LEFT` |  |  |  |
| `"AudioBalanceRight"` | Регулирует баланс звука вправо. | `VK_AUDIO_BALANCE_RIGHT` |  |  |  |
| `"AudioBassDown"` | Уменьшает количество басов. | `APPCOMMAND_BASS_DOWN` |  |  |  |
| `"AudioBassBoostDown"` |
 Уменьшает степень усиления басов или циклически перемещается вниз по
 набору режимов или состояний усиления басов.
  | `VK_BASS_BOOST_DOWN` |  |  |  |
| `"AudioBassBoostToggle"` | Включает и выключает усиление басов. | `APPCOMMAND_BASS_BOOST` |  |  |  |
| `"AudioBassBoostUp"` |
 Увеличивает степень усиления басов или циклически перемещается вверх по
 набору режимов или состояний усиления басов.
  | `VK_BASS_BOOST_UP` |  |  |  |
| `"AudioBassUp"` | Увеличивает количество басов. | `APPCOMMAND_BASS_UP` |  |  |  |
| `"AudioFaderFront"` | Смещает регулятор уровня сигнала вперёд. | `VK_FADER_FRONT` |  |  |  |
| `"AudioFaderRear"` | Смещает регулятор уровня сигнала назад. | `VK_FADER_REAR` |  |  |  |
| `"AudioSurroundModeNext"` | Выбор следующего доступного режима объёмного звучания. | `VK_SURROUND_MODE_NEXT` |  |  |  |
| `"AudioTrebleDown"` | Уменьшает количество высоких частот. | `APPCOMMAND_TREBLE_DOWN` |  |  |  |
| `"AudioTrebleUp"` | Отключает звук. | `APPCOMMAND_TREBLE_UP` |  |  |  |
| `"AudioVolumeDown" [1]` | Уменьшает громкость звука. | `VK_VOLUME_DOWN` (0xAE)`APPCOMMAND_VOLUME_DOWN` | `kVK_VolumeDown` (0x49) | `GDK_KEY_AudioLowerVolume` (0x1008FF11)`Qt::Key_VolumeDown`
 (0x01000070)
  | `KEYCODE_VOLUME_DOWN` (25) |
| `"AudioVolumeMute" [1]` | Отключает звук. | `VK_VOLUME_MUTE` (0xAD)`APPCOMMAND_VOLUME_MUTE` | `kVK_Mute` (0x4A) | `GDK_KEY_AudioMute` (0x1008FF12)`Qt::Key_VolumeMute`
 (0x01000071)
  | `KEYCODE_VOLUME_MUTE` (164) |
| `"AudioVolumeUp" [1]` | Увеличивает громкость звука. | `VK_VOLUME_UP` (0xAF)`APPCOMMAND_VOLUME_UP` | `kVK_VolumeUp` (0x48) | `GDK_KEY_AudioRaiseVolume` (0x1008FF13)`Qt::Key_VolumeUp`
 (0x01000072)
  | `KEYCODE_VOLUME_UP` (24) |
| `"MicrophoneToggle"` | Включает и выключает микрофон. | `APPCOMMAND_MIC_ON_OFF_TOGGLE` |  |  |  |
| `"MicrophoneVolumeDown"` | Уменьшает громкость входного сигнала микрофона. | `APPCOMMAND_MICROPHONE_VOLUME_DOWN` |  | `Qt::Key_MicVolumeDown` (0x0100011E) |  |
| `"MicrophoneVolumeMute"` | Отключает микрофонный вход. | `APPCOMMAND_MICROPHONE_VOLUME_MUTE` |  | `GDK_KEY_AudioMicMute` (0x1008FFB2)`Qt::Key_MicMute`
 (0x01000113)
  | `KEYCODE_MUTE` (91) |
| `"MicrophoneVolumeUp"` | Увеличивает громкость входного сигнала микрофона. | `APPCOMMAND_MICROPHONE_VOLUME_UP` |  | `Qt::Key_MicVolumeUp` (0x0100011D) |  |

[1] Internet Explorer, Edge, и Firefox (48 и более ранние) используют `"VolumeUp"`, `"VolumeDown"`, и `"VolumeMute"` вместо `"AudioVolumeUp"`, `"AudioVolumeDown"`, и `"AudioVolumeMute"`. В Firefox 49 они были обновлены в соответствии с последней спецификацией. Старые имена все ещё используются в Boot to Gecko.

Клавиши управления ТВ
---------------------

Эти ключевые значения представляют собой кнопки или клавиши на телевизионных устройствах, компьютерах или телефонах с поддержкой телевидения.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"TV"` [1] | Переключает в режим просмотра ТВ. |  |  |  | `KEYCODE_TV` (170) |
| `"TV3DMode"` | Включает и выключает режим 3D TV. |  |  |  | `KEYCODE_3D_MODE` (206) |
| `"TVAntennaCable"` | Переключение между антенным и кабельным входами. |  |  |  | `KEYCODE_TV_ANTENNA_CABLE` (242) |
| `"TVAudioDescription"` | Включает и выключает режим описания звука. |  |  |  | `KEYCODE_TV_AUDIO_DESCRIPTION` (252) |
| `"TVAudioDescriptionMixDown"` |
 Уменьшает громкость микширования аудиоописаний; уменьшает громкость
 аудиоописаний относительно звука программы.
  |  |  |  | `KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN` (254) |
| `"TVAudioDescriptionMixUp"` |
 Увеличивает громкость микширования аудиоописаний; увеличивает громкость
 аудиоописаний относительно звука программы.
  |  |  |  | `KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP` (253) |
| `"TVContentsMenu"` |
 Отображает или скрывает мультимедийное содержимое, доступное для
 воспроизведения (это может быть руководство по каналам, показывающее
 программы, транслируемые в данный момент, или список мультимедийных
 файлов для воспроизведения).
  |  |  |  | `KEYCODE_TV_CONTENTS_MENU` (256) |
| `"TVDataService"` | Отображает или скрывает сервисное меню данных телевизора. |  |  |  | `KEYCODE_TV_DATA_SERVICE` (230) |
| `"TVInput"` [2] | Переключает источник сигнала на внешнем телевизоре. |  |  |  | `KEYCODE_TV_INPUT` (178) |
| `"TVInputComponent1"` | Переключает на вход «Компонент 1». |  |  |  | `KEYCODE_TV_INPUT_COMPONENT_1` (249) |
| `"TVInputComponent2"` | Переключает на вход «Компонент 2." |  |  |  | `KEYCODE_TV_INPUT_COMPONENT_2` (250) |
| `"TVInputComposite1"` | Переключает на вход «Композитный 1». |  |  |  | `KEYCODE_TV_INPUT_COMPOSITE_1` (247) |
| `"TVInputComposite2"` | Переключает на вход «Композитный 2." |  |  |  | `KEYCODE_TV_INPUT_COMPOSITE_2` (248) |
| `"TVInputHDMI1"` | Переключает на вход «HDMI 1». |  |  |  | `KEYCODE_TV_INPUT_HDMI_1` (243) |
| `"TVInputHDMI2"` | Переключает на вход "HDMI 2." |  |  |  | `KEYCODE_TV_INPUT_HDMI_2` (244) |
| `"TVInputHDMI3"` | Переключает на вход "HDMI 3." |  |  |  | `KEYCODE_TV_INPUT_HDMI_3` (245) |
| `"TVInputHDMI4"` | Переключает на вход "HDMI 4." |  |  |  | `KEYCODE_TV_INPUT_HDMI_4` (246) |
| `"TVInputVGA1"` | Переключает на вход "VGA 1." |  |  |  | `KEYCODE_TV_INPUT_VGA_1` (251) |
| `"TVMediaContext"` | Клавиша контекстного меню мультимедиа. |  |  |  | `KEYCODE_TV_MEDIA_CONTEXT_MENU` (257) |
| `"TVNetwork"` | Включение и выключение сетевого подключения телевизора. |  |  |  | `KEYCODE_TV_NETWORK` (241) |
| `"TVNumberEntry"` | Переведите телевизор в режим ввода номера. |  |  |  | `KEYCODE_TV_NUMBER_ENTRY` (234) |
| `"TVPower"` [2] | Кнопка питания устройства. |  |  |  | `KEYCODE_TV_POWER` (177) |
| `"TVRadioService"` | Кнопка радио |  |  |  | `KEYCODE_TV_RADIO_SERVICE` (232) |
| `"TVSatellite"` | Кнопка спутника |  |  |  | `KEYCODE_TV_SATELLITE` (237) |
| `"TVSatelliteBS"` | Broadcast Satellite button. |  |  |  | `KEYCODE_TV_SATELLITE_BS` (238) |
| `"TVSatelliteCS"` | Communication Satellite button. |  |  |  | `KEYCODE_TV_SATELLITE_CS` (239) |
| `"TVSatelliteToggle"` | Переключение между доступными спутниками. |  |  |  | `KEYCODE_TV_SATELLITE_SERVICE` (240) |
| `"TVTerrestrialAnalog"` |
 Выбирает услугу аналогового наземного телевидения (аналоговый кабельный
 или антенный приём).
  |  |  |  | `KEYCODE_TV_TERRESTRIAL_ANALOG` (235) |
| `"TVTerrestrialDigital"` |
 Выбирает услугу цифрового наземного телевидения (цифровой кабельный или
 антенный приём).
  |  |  |  | `KEYCODE_TV_TERRESTRIAL_DIGITAL` (236) |
| `"TVTimer"` | Кнопка программирования таймера. |  |  |  | `KEYCODE_TV_TIMER_PROGRAMMING` (258) |

[1] В Firefox добавлена надлежащая поддержка для клавиши `"TV"` в Firefox 37; до этого, эта клавиша генерировала значение `"Live"`.

[2] Эти клавиши возвращали `"Unidentified"` до Firefox 37.

Клавиши медиа-контроллера
-------------------------

Поскольку современные пульты дистанционного управления для мультимедийных устройств часто включают кнопки, помимо базовых элементов управления, описанных в другом месте в этом документе, ключевые значения определены для широкого набора этих дополнительных кнопок.

Приведённые ниже значения частично получены из ряда технических характеристик бытовой электроники:

* DTV Application Software Environment (часть спецификации ATSC)
* Open Cable Application Platform 1.1.3
* ANSI/CEA-2014-B: Веб-протокол и фреймворк для удалённого пользовательского интерфейса в сетях UPnP ™ и Интернете
* Android KeyEvent key code values

**Примечание:** Пульт дистанционного управления обычно содержит кнопки, значения которых уже определены где-то ещё, например *Мультимедийные клавиши* или *Клавиши управления звуком*. Значения этих кнопок будут соответствовать тому, что задокументировано в этих таблицах.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"AVRInput"` [3] | Изменяет источник сигнала на внешнем аудио / видео ресивере (AVR). |  |  |  | `KEYCODE_AVR_INPUT` (182) |
| `"AVRPower"` [3] | Переключает питание внешнего блока AVR. |  |  |  | `KEYCODE_AVR_POWER` (181) |
| `"ColorF0Red"` [3] |
 Универсальная функциональная клавиша мультимедиа красного цвета. Она
 имеет индекс 0 среди цветных клавиш.
  | `VK_COLORED_KEY_0` |  |  | `KEYCODE_PROG_RED` (183) |
| `"ColorF1Green"` [3] |
 Универсальная функциональная клавиша мультимедиа зелёного цвета. Она
 имеет индекс 1 среди цветных клавиш.
  | `VK_COLORED_KEY_1` |  |  | `KEYCODE_PROG_GREEN` (184) |
| `"ColorF2Yellow"` [3] |
 Универсальная функциональная клавиша мультимедиа жёлтого цвета. Она
 имеет индекс 2 среди цветных клавиш.
  | `VK_COLORED_KEY_2` |  |  | `KEYCODE_PROG_YELLOW` (185) |
| `"ColorF3Blue"` [3] |
 Универсальная функциональная клавиша мультимедиа синего цвет. Она имеет
 индекс 3 среди цветных клавиш.
  | `VK_COLORED_KEY_3` |  |  | `KEYCODE_PROG_BLUE` (186) |
| `"ColorF4Grey"` |
 Универсальная функциональная клавиша мультимедиа серого цвета. Она имеет
 индекс 4 среди цветных клавиш.
  | `VK_COLORED_KEY_4` |  |  | `KEYCODE_PROG_GREY` |
| `"ColorF5Brown"` |
 Универсальная функциональная клавиша мультимедиа коричневого цвета. Она
 имеет индекс 5 среди цветных клавиш.
  | `VK_COLORED_KEY_5` |  |  | `KEYCODE_PROG_BROWN` |
| `"ClosedCaptionToggle"` | Включает и выключает скрытые субтитры. | `VK_CC` |  |  | `KEYCODE_CAPTIONS` (175) |
| `"Dimmer"` |
 Регулирует яркость устройства, переключаясь между двумя уровнями яркости
 или переключаясь между несколькими уровнями яркости.
  | `VK_DIMMER` |  | `GDK_KEY_BrightnessAdjust` (0x1008FF3B) |  |
| `"DisplaySwap"` | Циклически переключает источники видео | `VK_DISPLAY_SWAP` |  |  |  |
| `"DVR"` |
 Переключает источник входного сигнала на цифровой видеорегистратор
 (DVR).
  |  |  |  | `KEYCODE_DVR` (173) |
| `"Exit"` | Кнопка «Выход» для выхода из текущего приложения или меню. | `VK_EXIT` |  | `Qt::Key_Exit` (0x0102000a) |  |
| `"FavoriteClear0"` | Очищает первый слот списка избранного. | `VK_CLEAR_FAVORITE_0` |  |  |  |
| `"FavoriteClear1"` | Очищает второй слот списка избранного. | `VK_CLEAR_FAVORITE_1` |  |  |  |
| `"FavoriteClear2"` | Очищает третий слот списка избранного. | `VK_CLEAR_FAVORITE_2` |  |  |  |
| `"FavoriteClear3"` | Очищает четвёртый слот списка избранного. | `VK_CLEAR_FAVORITE_3` |  |  |  |
| `"FavoriteRecall0"` |
 Выбирает (вызывает) программу или содержимое, хранящееся в первом слоте
 списка избранного.
  | `VK_RECALL_FAVORITE_0` |  |  |  |
| `"FavoriteRecall1"` |
 Выбирает (вызывает) программу или содержимое, хранящееся во втором слоте
 списка избранного.
  | `VK_RECALL_FAVORITE_1` |  |  |  |
| `"FavoriteRecall2"` |
 Выбирает (вызывает) программу или содержимое, хранящееся в третьем слоте
 списка избранного.
  | `VK_RECALL_FAVORITE_2` |  |  |  |
| `"FavoriteRecall3"` |
 Выбирает (вызывает) программу или содержимое, хранящееся в четвёртом
 слоте списка избранного.
  | `VK_RECALL_FAVORITE_3` |  |  |  |
| `"FavoriteStore0"` | Сохраняет текущую программу или контент в первый слот списка избранного. | `VK_STORE_FAVORITE_0` |  |  |  |
| `"FavoriteStore1"` |
 Сохраняет текущую программу или контент во второй слот списка
 избранного.
  | `VK_STORE_FAVORITE_1` |  |  |  |
| `"FavoriteStore2"` | Сохраняет текущую программу или контент в третий слот списка избранного. | `VK_STORE_FAVORITE_2` |  |  |  |
| `"FavoriteStore3"` |
 Сохраняет текущую программу или контент в четвёртый слот списка
 избранного.
  | `VK_STORE_FAVORITE_3` |  |  |  |
| `"Guide"` |
 Переключает отображение программы или содержимого, содержащего
 руководство.
  | `VK_GUIDE` |  | `Qt::Key_Guide` (0x0100011A) | `KEYCODE_GUIDE` (172) |
| `"GuideNextDay"` |
 Если руководство отображается в данный момент, эта кнопка указывает
 руководству отобразить содержимое на следующий день.
  | `VK_NEXT_DAY` |  |  |  |
| `"GuidePreviousDay"` |
 Если руководство отображается в данный момент, эта кнопка указывает
 руководству отобразить содержимое предыдущего дня.
  | `VK_PREV_DAY` |  |  |  |
| `"Info"` |
 Переключает отображение информации о текущем выбранном содержимом,
 программе или медиа.
  | `VK_INFO` |  | `Qt::Key_Info` (0x0100011B) | `KEYCODE_INFO` (165) |
| `"InstantReplay"` |
 Указывает устройству выполнить мгновенное перевоспроизведение (обычно
 это некоторая форма возврата на короткий промежуток времени с
 последующим воспроизведением, возможно, но обычно не в замедленном
 режиме).
  | `VK_INSTANT_REPLAY` |  |  |  |
| `"Link"` |
 Открывает содержимое, связанное с текущей программой, если это возможно
 и доступно.
  | `VK_LINK` |  |  |  |
| `"ListProgram"` | Список текущей программы. | `VK_LIST` |  |  |  |
| `"LiveContent"` |
 Переключает отображение списка доступного в данный момент
 live-содержимого или программ.
  | `VK_LIVE` |  |  |  |
| `"Lock"` | Блокирует и разблокирует текущее выбранное содержимое или программу. | `VK_LOCK` |  |  |  |
| `"MediaApps"` |
 Представляет список мультимедийных приложений, таких как программы
 просмотра фотографий, аудио- и видеоплееры, а также игры. [1]
  | `VK_APPS` |  |  |  |
| `"MediaAudioTrack"` | Клавиша звуковой дорожки. |  |  |
 GDK\_KEY\_AudioCycleTrack (0x1008FF9B)`Qt::Key_AudioCycleTrack`
 (0x01000106)
  | `KEYCODE_MEDIA_AUDIO_TRACK` (222) |
| `"MediaLast"` |
 Возврат к последнему просмотренному содержимому, программе или другому
 медиафайлу.
  | `VK_LAST` |  | `Qt::Key_MediaLast` (0x0100FFFF) | `KEYCODE_LAST_CHANNEL` (229) |
| `"MediaSkipBackward"` | Переход назад к предыдущему содержимому или программе. |  |  |  | `KEYCODE_MEDIA_SKIP_BACKWARD` |
| `"MediaSkipForward"` | Переход к следующему содержимому или программе. | `VK_SKIP` |  |  | `KEYCODE_MEDIA_SKIP_FORWARD` |
| `"MediaStepBackward"` | Переход назад к предыдущему содержимому или программе. |  |  |  | `KEYCODE_MEDIA_STEP_BACKWARD` |
| `"MediaStepForward"` | Переход к следующему содержимому или программе. |  |  |  | `KEYCODE_MEDIA_SKIP_FORWARD` |
| `"MediaTopMenu"` |
 Кнопка верхнего меню. Открывает главное меню носителя (например, для
 диска DVD или Blu-Ray).
  |  |  | `Qt::Key_TopMenu` (0x0100010A) | `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` (225) |
| `"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` |  | `GDK_KEY_AudioRandomPlay` (0x1008FF99) |  |
| `"RcLowBattery"` |
 Код, отправляемый при низком заряде батареи пульта ДУ. Это вообще не
 соответствует физической кнопке/клавише.
  | `VK_RC_LOW_BATTERY` |  |  |  |
| `"RecordSpeedNext"` | Циклически переключает доступные скорости записи на носитель. | `VK_RECORD_SPEED_NEXT` |  |  |  |
| `"RfBypass"` |
 Включает и выключает режим пропуска радиочастотного (RF) входа. В режиме
 пропуска РЧ входной сигнал передаётся непосредственно на выход РЧ без
 какой-либо обработки или фильтрации.
  | `VK_RF_BYPASS` |  |  |  |
| `"ScanChannelsToggle"` |
 Включает и выключает режим сканирования каналов. Это режим, который
 автоматически переключает каналы, пока пользователь не остановит
 сканирование.
  | `VK_SCAN_CHANNELS_TOGGLE` |  |  |  |
| `"ScreenModeNext"` | Циклически переключает доступные режимы отображения экрана. | `VK_SCREEN_MODE_NEXT` |  |  |  |
| `"Settings"` | Включает и выключает отображение экрана настроек устройства. | `VK_SETTINGS` |  | `Qt::Key_Settings` (0x0100011C) | `KEYCODE_SETTINGS` |
| `"SplitScreenToggle"` | Включает и выключает режим разделения экрана. | `VK_SPLIT_SCREEN_TOGGLE` |  | `GDK_KEY_SplitScreen (`0x1008FF7D)`Qt::Key_SplitScreen`
 (0x010000ED)
  |  |
| `"STBInput"` [3] | Переключение между источниками сигнала на внешней приставке (STB). |  |  |  | `KEYCODE_STB_INPUT` (180) |
| `"STBPower"` [3] | Включает и выключает внешний STB. |  |  |  | `KEYCODE_STB_POWER` (179) |
| `"Subtitle"` | Включает и выключает отображение субтитров, если они доступны. | `VK_SUBTITLE` |  | `GDK_KEY_Subtitle` (0x1008FF9A) | `KEYCODE_CAPTIONS` (175) |
| `"Teletext"` |
 Включает и выключает отображение [телетекста](https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BB%D0%B5%D1%82%D0%B5%D0%BA%D1%81%D1%82), если
 доступно.
  | `VK_TELETEXT` |  |  | `KEYCODE_TV_TELETEXT` (233) |
| `"VideoModeNext"` [3] | Перебирает доступные видеорежимы. | `VK_VIDEO_MODE_NEXT` |  | `GDK_KEY_Next_VMode` (0x1008FE22) |  |
| `"Wink"` |
 Заставляет устройство идентифицировать себя каким-либо образом,
 например, мигает светом, на короткое время меняет яркость световых
 индикаторов или издаёт звуковой сигнал.
  | `VK_WINK` |  |  |  |
| `"ZoomToggle"` [2] |
 Переключает между полноэкранным и масштабированным отображением
 содержимого или иным образом изменяет уровень увеличения.
  | `VK_ZOOM` (0xFB) |  | `Qt::Key_Zoom` (0x01020006) | `KEYCODE_TV_ZOOM_MODE` (255) |

[1] Не путайте клавишу медиа-контроллера `VK_APPS` с клавишей Windows `VK_APPS`, которая также известна как `VK_CONTEXT_MENU`. Эта клавиша возвращает значение `"ContextMenu"`.

[2] Internet Explorer (проверено в версиях 9 и 11) и Firefox 36 и более ранние определяли кнопку переключения масштаба как `"Zoom"`. В Firefox 37 исправлено на `"ZoomToggle"`.

[3] Эти клавиши возвращали `"Unidentified"` до Firefox 37.

Клавиши распознавания речи
--------------------------

Эти специальные мультимедийные клавиши используются для управления функциями распознавания речи.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"SpeechCorrectionList"` [1] | Представляет список возможных исправлений неверно определённого слова. | `APPCOMMAND_CORRECTION_LIST` |  |  |  |
| `"SpeechInputToggle"` [2] |
 Переключение между режимом диктовки и режимом команд/управления. Это
 позволяет механизму обработки речи знать, интерпретировать ли
 произносимые слова как вводимый текст или как команды.
  | `APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE` |  |  |  |

[1] В Windows команда `APPCOMMAND_CORRECTION_LIST` генерирует значение `"Unidentified"` в Firefox.

[2] В Windows команда `APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE` генерирует значение `"Unidentified"` в Firefox.

Клавиши документа
-----------------

Эти клавиши управляют документами. В спецификации они включены в другие наборы клавиш(например, мультимедийные), но разумнее выделять их в собственную категорию.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"Close"` [1] |
 Закрывает текущий документ или сообщение. Не должен выходить из
 приложения.
  | `APPCOMMAND_CLOSE` |  | `GDK_KEY_Close` (0x1008FF56)`Qt::Key_Close`
 (0x010000CE)
  | `KEYCODE_MEDIA_CLOSE` (128) |
| `"New"` [1] | Создаёт новый документ или сообщение. | `APPCOMMAND_NEW` |  | `GDK_KEY_New` (0x1008FF68)`Qt::Key_New`
 (0x01000120)
  |  |
| `"Open"` [1] | Открывает существующий документ или сообщение. | `APPCOMMAND_OPEN` |  | `GDK_KEY_Open` (0x1008FF6B)`Qt::Key_Open`
 (0x01000121)
  |  |
| `"Print"` | Печатает текущий документ или сообщение. | `APPCOMMAND_PRINT` |  | `GDK_KEY_Print` (0xFF61)`Qt::Print`
 (0x01000009)
  |  |
| `"Save"` [1] | Сохраняет текущий документ или сообщение. | `APPCOMMAND_SAVE` |  | `GDK_KEY_Save` (0x1008FF77)`Qt::Key_Save`
 (0x010000EA)
  |  |
| `"SpellCheck"` [1] | Запускает проверку орфографии в текущем документе. | `APPCOMMAND_SPELL_CHECK` |  | `GDK_KEY_Spell` (0x1008FF7C)`Qt::Key_Spell`
 (0x010000EC)
  |  |
| `"MailForward"` [1] | Открывает пользовательский интерфейс для пересылки сообщения. | `APPCOMMAND_FORWARD_MAIL` |  | `GDK_KEY_MailForward` (0x1008FF90)`Qt::Key_MailForward`
 (0x010000FB)
  |  |
| `"MailReply"` [1] | Открывает пользовательский интерфейс для ответа на сообщение. | `APPCOMMAND_REPLY_TO_MAIL` |  | `GDK_KEY_Reply` (0x1008FF72)`Qt::Key_Reply`
 (0x010000E5)
  |  |
| `"MailSend"` [1] | Отправляет текущее сообщение. | `APPCOMMAND_SEND_MAIL` |  | `GDK_KEY_Send` (0x1008FF7B)`Qt::Key_Send`
 (0x010000EB)
  |  |

[1] До Firefox 37, эта клавиша генерировала значение `"Unidentified"`.

Клавиши приложений
------------------

На некоторых клавиатурах есть специальные клавиши для запуска определённых распространённых приложений или переключения на них. Значения клавиш для них перечислены здесь.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"LaunchCalculator"` [5] |
 Клавиша запуска калькулятора `Calculator`, часто помечается
 значком. Часто используется в качестве общей клавиши запуска приложений
 (`APPCOMMAND_LAUNCH_APP2`).
  | `APPCOMMAND_LAUNCH_APP2` |  | `GDK_KEY_Calculator` (0x1008FF1D)`Qt::Key_Calculator`
 (0x010000CB)
  | `KEYCODE_CALCULATOR` (210) |
| `"LaunchCalendar"` [5] | Клавиша календаря `Calendar`. Часто помечается значком. |  |  | `GDK_KEY_Calendar` (0x1008FF20)`Qt::Key_Calendar`
 (0x010000E4)
  | `KEYCODE_CALENDAR` (208) |
| `"LaunchContacts"` | Клавиша "Контакты" `Contacts`. |  |  |  | `KEYCODE_CONTACTS` (207) |
| `"LaunchMail"` | Клавиша электронной почты `Mail`. Часто помечается значком. | `VK_LAUNCH_MAIL` (0xB4)`APPCOMMAND_LAUNCH_MAIL` |  | `GDK_KEY_Mail` (0x1008FF19)`Qt::Key_LaunchMail`
 (0x010000A0)
  | `KEYCODE_ENVELOPE` (65) |
| `"LaunchMediaPlayer"` [1] | Клавиша медиаплеера `Media Player`. Часто помечается значком. | `VK_LAUNCH_MEDIA_SELECT` (0xB5)`APPCOMMAND_LAUNCH_MEDIA_SELECT` |  | `GDK_KEY_CD` (0x1008FF53)`GDK_KEY_Video`
 (0x1008FF87)`GDK_KEY_AudioMedia`
 (0x1008FF32)`Qt::Key_LaunchMedia` (0x010000A1)
  |  |
| `"LaunchMusicPlayer"` [5] |
 Клавиша музыкального проигрывателя `Music Player`. Часто
 помечается значком.
  |  |  | `GDK_KEY_Music` (0x1008FF92)`Qt::Key_Music`
 (0x010000FD)
  | `KEYCODE_MUSIC` (209) |
| `"LaunchMyComputer"` [5] |
 Клавиша "Мой компьютер" `My Computer` на клавиатурах Windows.
 Часто используется в качестве общей клавиши запуска приложений
 (`APPCOMMAND_LAUNCH_APP1`).
  | `APPCOMMAND_LAUNCH_APP1` |  | `GDK_KEY_MyComputer` (0x1008FF33)`GDK_KEY_Explorer`
 (0x1008FF5D)
  |  |
| `"LaunchPhone"` |
 Клавиша телефонии `Phone`. Открывает приложение для набора
 номера телефона (если таковое имеется).
  |  |  | `GDK_KEY_Phone` (0x1008FF6E)`Qt::Key_Phone`
 (0x010000E3)
  |  |
| `"LaunchScreenSaver"` [5] | Клавиша заставки `Screen Saver`. |  |  | `GDK_KEY_ScreenSaver` (0x1008FF2D)`Qt::Key_ScreenSaver`
 (0x010000BA)
  |  |
| `"LaunchSpreadsheet"` [4] |
 Клавиша табличного процессора `Spreadsheet`. Эта клавиша часто
 помечается значком.
  |  |  | `GDK_KEY_Excel` (0x1008FF5C)`Qt::Key_Excel`
 (0x010000D4)
  |  |
| `"LaunchWebBrowser"` [4] |
 Клавиша веб-браузера `Web Browser`. Эта клавиша часто
 помечается значком.
  |  |  | `GDK_KEY_WWW` (0x1008FF2E)`Qt::Key_WWW`
 (0x010000BB)
  | `KEYCODE_EXPLORER` (64) |
| `"LaunchWebCam"` [5] | Клавиша `WebCam`. Открывает приложение веб-камеры. |  |  | `GDK_KEY_WebCam` (0x1008FF8F)`Qt::Key_WebCam`
 (0x010000FA)
  |  |
| `"LaunchWordProcessor"` [5] |
 Клавиша текстового процессора `Word Processor`. Это может быть
 значок конкретного приложения текстового процессора или общий значок
 документа.
  |  |  | `GDK_KEY_Word` (0x1008FF89)`Qt::Key_Word`
 (0x010000F4)
  |  |
| `"LaunchApplication1"` [2] | 1-я общая кнопка запуска приложений. | `VK_LAUNCH_APP1` (0xB6)`APPCOMMAND_LAUNCH_APP1` |  | `GDK_KEY_Launch0` (0x1008FF40)`Qt::Key_Launch0`
 (0x010000A2)
  |  |
| `"LaunchApplication2"` [3] | 2-я общая кнопка запуска приложений. | `VK_LAUNCH_APP2` (0xB7)`APPCOMMAND_LAUNCH_APP2` |  | `GDK_KEY_Launch1` (0x1008FF41)`Qt::Key_Launch1`
 (0x010000A3)
  |  |
| `"LaunchApplication3"` | 3-я общая кнопка запуска приложений. |  |  | `GDK_KEY_Launch2` (0x1008FF42)`Qt::Key_Launch2`
 (0x010000A4)
  |  |
| `"LaunchApplication4"` | 4-я общая кнопка запуска приложений. |  |  | `GDK_KEY_Launch3` (0x1008FF43)`Qt::Key_Launch3`
 (0x010000A5)
  |  |
| `"LaunchApplication5"` | 5-я общая кнопка запуска приложений. |  |  | `GDK_KEY_Launch4` (0x1008FF44)`Qt::Key_Launch4`
 (0x010000A6)
  |  |
| `"LaunchApplication6"` | 6-я общая кнопка запуска приложений. |  |  | `GDK_KEY_Launch5` (0x1008FF45)`Qt::Key_Launch5`
 (0x010000A7)
  |  |
| `"LaunchApplication7"` | 7-я общая кнопка запуска приложений. |  |  | `GDK_KEY_Launch6` (0x1008FF46)`Qt::Key_Launch6`
 (0x010000A8)
  |  |
| `"LaunchApplication8"` | 8-я общая кнопка запуска приложений. |  |  | `GDK_KEY_Launch7` (0x1008FF47)`Qt::Key_Launch7`
 (0x010000A9)
  |  |
| `"LaunchApplication9"` | 9-я общая кнопка запуска приложений. |  |  | `GDK_KEY_Launch8` (0x1008FF48)`Qt::Key_Launch8`
 (0x010000AA)
  |  |
| `"LaunchApplication10"` | 10-я общая кнопка запуска приложений. |  |  | `GDK_KEY_Launch9` (0x1008FF49)`Qt::Key_Launch9`
 (0x010000AB)
  |  |
| `"LaunchApplication11"` | 11-я общая кнопка запуска приложений. |  |  | `GDK_KEY_LaunchA` (0x1008FF4A)`Qt::Key_LaunchA`
 (0x010000AC)
  |  |
| `"LaunchApplication12"` | 12-я общая кнопка запуска приложений. |  |  | `GDK_KEY_LaunchB` (0x1008FF4B)`Qt::Key_LaunchB`
 (0x010000AD)
  |  |
| `"LaunchApplication13"` | 13-я общая кнопка запуска приложений. |  |  | `GDK_KEY_LaunchC` (0x1008FF4C)`Qt::Key_LaunchC`
 (0x010000AE)
  |  |
| `"LaunchApplication14"` | 14-я общая кнопка запуска приложений. |  |  | `GDK_KEY_LaunchD` (0x1008FF4D)`Qt::Key_LaunchD`
 (0x010000AF)
  |  |
| `"LaunchApplication15"` | 15-я общая кнопка запуска приложений. |  |  | `GDK_KEY_LaunchE` (0x1008FF4E)`Qt::Key_LaunchE`
 (0x010000B0)
  |  |
| `"LaunchApplication16"` | 16-я общая кнопка запуска приложений. |  |  | `GDK_KEY_LaunchF` (0x1008FF4F)`Qt::Key_LaunchF`
 (0x010000B1)
  |  |

[1] Internet Explorer, Edge, и Firefox (36 и ранее) используют `"SelectMedia"` вместо `"LaunchMediaPlayer"`. Firefox 37 и Firefox 48 используют `"MediaSelect"`. Firefox 49 был обновлён в соответствии с последней спецификацией и теперь возвращает `"LaunchMediaPlayer"`.

[2] Google Chrome 57 и ранние возвращают `"LaunchMyComputer"` вместо `"LaunchApplication1"`. Смотри Chrome Bug 612743 для дополнительной информации.

[3] Google Chrome 57 и ранние возвращают `"LaunchCalculator"` вместо `"LaunchApplication2"`. Смотри Chrome Bug 612743 для дополнительной информации.

[4] До Firefox 37, Firefox возвращал the key code `"LaunchApplication1"` вместо "`LaunchWebBrowser"`для клавиши Веб-браузера.

[5] Firefox ввёл поддержку этой клавиши в Firefox 37. До этого, эта клавиша возвращала значение `"Unidentified"`.

Клавиши управления браузером
----------------------------

На некоторых клавиатурах есть специальные клавиши для управления веб-браузерами. Это следующие клавиши.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"BrowserBack"` |
 Переход к предыдущему содержимому или странице в истории текущего
 веб-представления.
  | `VK_BROWSER_BACK` (0xA6)`APPCOMMAND_BROWSER_BACKWARD` |  | `GDK_KEY_Back` (0x1008FF26)`Qt::Key_Back`
 (0x01000061)
  | `KEYCODE_BACK` (4) |
| `"BrowserFavorites"` [1] | Открывает список закладок/избранного пользователя. | `VK_BROWSER_FAVORITES` (0xAB)`APPCOMMAND_BROWSER_FAVORITES` |  | `GDK_KEY_Favorites` (0x1008FF30)`GDK_KEY_MySites`
 (0x1008FF67)`Qt::Favorites` (0x01000091)
  | `KEYCODE_BOOKMARK` (174) |
| `"BrowserForward"` |
 Переход к следующему содержимому или странице в истории текущего
 веб-представления.
  | `VK_BROWSER_FORWARD` (0xA7)`APPCOMMAND_BROWSER_FORWARD` |  | `GDK_KEY_Forward` (0x1008FF27)`Qt::Key_Forward`
 (0x01000062)
  | `KEYCODE_FORWARD` (125) |
| `"BrowserHome"` | Переход к домашней странице, установленной пользователем. | `VK_BROWSER_HOME` (0xAC)`APPCOMMAND_BROWSER_HOME` |  | `GDK_KEY_HomePage` (0x1008FF18)`Qt::Key_HomePage`
 (0x01000090)
  | `KEYCODE_HOME` (3) |
| `"BrowserRefresh"` | Обновление текущей страницы или содержимого. | `VK_BROWSER_REFRESH` (0xA8)`APPCOMMAND_BROWSER_REFRESH` |  | `GDK_KEY_Refresh` (0x1008FF29)`GDK_KEY_Reload`
 (0x1008FF73)
  |  |
| `"BrowserSearch"` |
 Активирует предпочтительную поисковую систему пользователя или интерфейс
 поиска в его браузере.
  | `VK_BROWSER_SEARCH` (0xAA)`APPCOMMAND_BROWSER_SEARCH` |  | `GDK_KEY_Search` (0x1008FF1B)`Qt::Key_Search`
 (0x01000092)
  | `KEYCODE_SEARCH` (84) |
| `"BrowserStop"` | Останавливает загрузку текущего веб-представления или содержимого. | `VK_BROWSER_STOP` (0xA9)`APPCOMMAND_BROWSER_STOP` |  | `GDK_KEY_Stop` (0x1008FF28)`Qt::Key_Search`
 (0x01000063)
  |  |

[1] До Firefox 37, эта клавиша возвращала значение `"Unidentified"`.

Клавиши цифрового блока
-----------------------

Эти клавиши находятся на цифровой панели клавиатуры. Однако не все они присутствуют на каждой клавиатуре. Хотя типичные цифровые панели имеют цифровые клавиши от `0` до `9` (кодируются как `"0"` - `"9"`), некоторые мультимедийные клавиатуры включают дополнительные цифровые клавиши для более высоких чисел.

**Примечание:** Клавиша `10`, если она присутствует, генерирует события со значением ключа `"0"`.

| Значение `KeyboardEvent.key` | Описание | Виртуальный код клавиши |
| --- | --- | --- |
| Windows | Mac | Linux | Android |
| `"Decimal"` [1] |
 Клавиша десятичной точки (обычно `.` или `,` в
 зависимости от региона).

 В новых браузерах это значение должно быть просто символом,
 сгенерированным клавишей десятичной точки (одним из этих двух
 символов). [1]
  | `VK_DECIMAL` (0x6E) | `kVK_ANSI_KeypadDecimal` (0x41) | `GDK_KEY_KP_Decimal` (0xFFAE) | `KEYCODE_NUMPAD_DOT` (158) |
| `"Key11"` |
 Клавиша `11` встречается на некоторых цифровых мультимедиа
 клавиатурах.
  |  |  |  |  |
| `"Key12"` |
 Клавиша `12` встречается на некоторых цифровых мультимедиа
 клавиатурах..
  |  |  |  |  |
| `"Multiply"` [1] | Клавиша умножения на цифровой панели, `\*`. | `VK_MULTIPLY` (0x6A) | `kVK_ANSI_KeypadMultiply` (0x43) | `GDK_KEY_KP_Multiply` (0xFFAA)`Qt::Key_Multiply`
 (0x0D7)
  | `KEYCODE_NUMPAD_MULTIPLY` (155) |
| `"Add"` [1] | Клавиша сложения на цифровой панели, `+`. | `VK_ADD` (0x6B) | `kVK_ANSI_KeypadPlus` (0x45) | `GDK_KEY_KP_Add` (0xFFAB) | `KEYCODE_NUMPAD_ADD` (157) |
| `"Clear"` | Клавиша очистки на цифровой панели, `Clear`. |  | `kVK_ANSI_KeypadClear` (0x47) | `GDK_KEY_Clear` (0xFF0B)`Qt::Key_Clear`
 (0x0100000B)
  | `KEYCODE_CLEAR` (28) |
| `"Divide"` [1] | Клавиша деления на цифровой панели, `/`. | `VK_DIVIDE` (0x6F) | `kVK_ANSI_KeypadDivide` (0x4B) | `GDK_KEY_KP_Divide` (0xFFAF)`Qt::Key_Slash`
 (0x2F)
  | `KEYCODE_NUMPAD_DIVIDE` (154) |
| `"Subtract"` [1] | Клавиша вычитания на цифровой панели, `-`. | `VK_SUBTRACT` (0x6D) | `kVK_ANSI_KeypadMinus` (0x4E) | `GDK_KEY_KP_Subtract` (0xFFAD) | `KEYCODE_NUMPAD_SUBTRACT` (156) |
| `"Separator"` [1] | Символ разделителя позиций на цифровой клавиатуре.
(В США это запятая, но в других странах это часто точка.) | `VK_SEPARATOR` (0x6C) | `kVK_JIS_KeypadComma` (0x5F) | `GDK_KEY_KP_Separator` (0xFFAC) | `KEYCODE_NUMPAD_COMMA` (159) |
| `От "0"` до `"9"` | Фактические цифровые клавиши на цифровой панели. | `VK_NUMPAD0` (0x60) - `VK_NUMPAD9` (0x69) | `kVK_Keypad0` (0x52) - `kVK_Keypad9` (0x5C) | `GDK_KEY_KP_0` (0xFFB0) - `GDK_KEY_KP_9` (0xFFB9) | `KEYCODE_NUMPAD_0` (144) -
 `KEYCODE_NUMPAD_9` (153)
  |

[1] В то время как старые браузеры использовали такие слова, как «Добавить», «Десятичное число», «Умножить» и т. д., современные браузеры идентифицируют их по фактическому символу («+», «.», «\*» и т. д.).


VRPose.position - Интерфейсы веб API

VRPose.position
===============

**Устарело:** Эта возможность была удалена из веб-стандартов. Хотя некоторые браузеры по-прежнему могут поддерживать её, она находится в процессе удаления. Не используйте её ни в старых, ни в новых проектах. Страницы или веб-приложения, использующие её, могут в любой момент сломаться.

**Не стандартно:** Эта возможность не является стандартной и стандартизировать её пока никто не собирается. Не используйте её на сайтах, смотрящих во внешний мир: она будет работать не у всех пользователей. Также могут присутствовать большие несовместимости между реализациями и её поведение может в будущем измениться.

Доступное только для чтения свойство **`position`** интерфейса `VRPose` (en-US) возвращает позицию `VRDisplay` (en-US) в текущий момент времени `VRPose.timestamp` (en-US) в виде 3D-вектора.

**Примечание:** Это свойство было частью старого WebVR API, который был заменён на WebXR Device API.

Система координат выглядит следующим образом:

* Положительное значение X — справа от пользователя.
* Положительное значение Y — сверху.
* Положительное значение Z — позади от пользователя.

Позиции измеряются в метрах от исходной точки — эта точка является либо положением, в котором датчик был впервые считан, либо положением датчика в точке, в которой в последний раз вызывали `VRDisplay.resetPose ()`.

**Примечание:** По умолчанию все позиции даны как имеющие горизонтальное расположение. Преобразование этой точки с помощью параметра `VRStageParameters.sittingToStandingTransform`, например, когда вы работаете с отображением комнаты, преобразует это в вертикальное расположение.

### Значение

`Float32Array` (en-US) или `null`, если VR-датчик не может предоставить данные о местоположении.

**Примечание:** Пользовательские агенты могут предоставлять эмулированные значения положения с помощью таких методов, как моделирование шеи; при этом `VRDisplayCapabilities.hasPosition` должен возвращать `false`.

Пример
------

Смотрите примеры использования в `VRDisplay.getFrameData()` (en-US).

Спецификация
------------

Это свойство было частью старого WebVR API, который был заменён на WebXR Device API. Больше не планируется сделать его стандартом.

Пока все браузеры не реализуют новые WebXR API (en-US), рекомендуется использовать такие фреймворки как A-Frame, Babylon.js, Three.js или полифил для разработки приложений WebXR, которые будут работать во всех браузерах.

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* WebVR API


Cache.delete() - Интерфейсы веб API

Cache.delete()
==============

**Экспериментальная возможность:** **Это экспериментальная технология**
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Метод **`delete()`** интерфейса `Cache` ищет запись `Cache`, чей ключ совпадает с запросом, и, в случае находки, удаляет запись `Cache` и возвращает `Promise`, который разрешается со значением `true`. Если запись не была найдена `Cache`, метод возвращает `false`.

Синтаксис
---------

```js
cache.delete(request,{options}).then(function(true) {
  // запись была удалена
});
```

### Возвращаемое значение

`Promise`, который разрешается со значением true в случае, если запись была удалена, или false в другом случае.

### Параметры

request

`Request`, который вы хотите удалить.

options Необязательный

Объект, чьи свойства контролируют как будет выполняться сопоставление ключей при вызове `delete`. Допустимые значения:

* `ignoreSearch`: Булево значение `Boolean` (en-US), которое определяет будет ли процесс сопоставления игнорировать строку запроса в url. Если установлено в `true`, часть `?value=bar` запроса `http://foo.com/?value=bar` будет проигнорирована при сопоставлении ключей. По умолчанию установлено в `false`.
* `ignoreMethod`: Булево значение `Boolean` (en-US), которое, если равно `true`, предотвращает проверку `Request` при сопоставлении ключей на `HTTP` метод (обычно допускаются только `GET` и `HEAD`). По умолчанию установлено в `false`.
* `ignoreVary`: Булево значение `Boolean` (en-US), которое, если равно `true,` указывает операции сопоставления ключей не проводить проверку заголовка `VARY`. Другими словами, если URL совпадает, вы получите соответствие, независимо от того, есть ли заголовок `VARY` на объекте запроса `Response`. По умолчанию установлено в `false`.
* `cacheName`: Строка `DOMString`, которая представляет собой определённый кеш, в котором вести поиск. Заметьте, что этот параметр игнорируется методом `Cache.delete()`.

Примеры
-------

```js
caches.open("v1").then(function (cache) {
  cache.delete("/images/image.png").then(function (response) {
    someUIUpdateFunction();
  });
});
```

Спецификации
------------

| Specification |
| --- |
| Service Workers # cache-delete |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Использование сервис воркеров (en-US)
* `Cache`
* `WorkerGlobalScope.caches` (en-US)


Cache.match() - Интерфейсы веб API

Cache.match()
=============

**Экспериментальная возможность:** **Это экспериментальная технология**
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Метод **`match()`** интерфейса `Cache` возвращает `Promise`, который разрешается в `Response`, ассоциированный с первым совпадающим запросом в объекте `Cache`. Если совпадений не найдено, `Promise` разрешается в `undefined`.

Синтаксис
---------

```js
cache.match(request, { options }).then(function (response) {
  //сделать что-нибудь с ответом
});
```

### Возвращаемое значение

`Promise`, который разрешается в первый `Response`, который совпадает с запросом или в `undefined`, если совпадений не найдено.

**Примечание:** `Cache.match()` в основном идентичен `Cache.matchAll()`, за исключением того, что `Cache.match()` разрешается в `response[0]` (первый совпадающий ответ) вместо `response[]` (массив со всеми совпадающими ответами).

### Параметры

request

Запрос `Request`, который вы пытаетесь найти в `Cache`.

options Необязательный

Объект, который задаёт параметры для операции `match`. Допустимые значения:

* `ignoreSearch`: Булево значение `Boolean` (en-US), которое указывает следует ли игнорировать строку запроса в url. Например, если оно установлено в `true, часть` `?value=bar` запроса `http://foo.com/?value=bar` будет проигнорирована при поиске соответствий ключа. По умолчанию равно `false`.
* `ignoreMethod`: Булево значение `Boolean` (en-US), которое, когда равно `true`, предотвращает проверку `http` метода для запроса `Request` при выполнении сопоставлений ключа (обычно разрешены лишь `GET` и `HEAD`). По умолчанию равно `false`.
* `ignoreVary`: Булево значение `Boolean` (en-US), которое, когда установлено в `true,` указывает операции сопоставления ключа не проводить проверку соответствия заголовка `VARY` — т.е., если URL совпадает, вы получите соответствие независимо от того, установлен ли на объекте `Response` заголовок `VARY`. По умолчанию равно `false`.
* `cacheName`: Строка `DOMString`, задающая определённый кеш для поиска. Заметьте, что этот параметр игнорируется методом `Cache.match()`.

В Chrome поддерживается лишь `cacheName`.

Примеры
-------

Код взят примера из примера пользовательская офлайн-страница (живой пример).

Следующий пример использует кеш для предоставления данных, когда запрос не удался. Выражение `catch()` выполняется когда вызов `fetch()` возбуждает исключение. Внутри выражения `catch()`, `match()` используется для возврата корректного ответа.

В этом примере, мы решили что кешироваться будут лишь HTML-документы полученные с помощью GET-запроса. Если условие `if()` равно false, то обработчик не будет вмешиваться в ответ. Если зарегистрированы другие обработчики получения данных, то у них будет шанс вызвать `event.respondWith()`. Если ни один из обработчиков не вызовет `event.respondWith()`, запрос будет обработан браузером, как это было бы сделано без участия сервис воркера. Если `fetch()` возвращает валидный HTTP ответ к кодом из диапазона 4xx или 5xx, то метод `catch()` не будет вызван.

```js
self.addEventListener("fetch", function (event) {
  // Мы хотим выполнить лишь event.respondWith() если это GET-запрос HTML-документа.
  if (
    event.request.method === "GET" &&
    event.request.headers.get("accept").indexOf("text/html") !== -1
  ) {
    console.log("Handling fetch event for", event.request.url);
    event.respondWith(
      fetch(event.request).catch(function (e) {
        console.error("Fetch failed; returning offline page instead.", e);
        return caches.open(OFFLINE\_CACHE).then(function (cache) {
          return cache.match(OFFLINE\_URL);
        });
      }),
    );
  }
});
```

Спецификации
------------

| Specification |
| --- |
| Service Workers # cache-match |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Использование сервис воркеров (en-US)
* `Cache`
* `WorkerGlobalScope.caches` (en-US)


Cache.add() - Интерфейсы веб API

Cache.add()
===========

Метод **`add()`** интерфейса `Cache` принимает в качестве параметра URL, загружает его и добавляет полученный объект ответа в заданный кеш. Метод `add()` функционально эквивалентен следующему коду:

```js
fetch(url).then(function (response) {
  if (!response.ok) {
    throw new TypeError("bad response status");
  }
  return cache.put(url, response);
});
```

Для более сложных операций, вам нужно использовать `Cache.put()` (en-US).

**Примечание:** `add()` перезапишет любую пару ключ/значение, сохранённую ранее в кеше, соответствующем запросу.

Синтаксис
---------
```

cache.add(request).then(function() {
  //запрос был добавлен в кеш
});
```

### Параметры

request

Запрос, который вы хотите добавить в кеш. Это может быть объект `Request`, либо URL.

### Возвращаемое значение

`Promise`, который разрешается с пустым значением void.

### Исключения

| **Исключение** | **Когда происходит** |
| --- | --- |
| `TypeError` | Схема URL не `http` или `https`.Статус ответа не из диапазона 200 (т.е., ответ не успешен). Это случается если запрос не выполняется успешно, а также, если запрос является *cross-origin no-cors* запросом (в таком случае, статус всегда 0). |

Примеры
-------

Этот блок кода ожидает старта события `InstallEvent` (en-US) , а затем запускает `waitUntil` для обработки процесса установки приложения. Этот процесс состоит из вызова `CacheStorage.open` для создания нового кеша, и использования `Cache.add` для добавления ресурсов в этот кеш.

```js
this.addEventListener("install", function (event) {
  event.waitUntil(
    caches.open("v1").then(function (cache) {
      return cache.add("/sw-test/index.html");
    }),
  );
});
```

Спецификации
------------

| Specification |
| --- |
| Service Workers # cache-add |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Использование сервис воркеров (en-US)
* `Cache`
* `WorkerGlobalScope.caches` (en-US)


Cache.matchAll() - Интерфейсы веб API

Cache.matchAll()
================

**Экспериментальная возможность:** **Это экспериментальная технология**
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Метод **`matchAll()`** интерфейса `Cache` возвращает `Promise`, который разрешается в массив всех совпадающих запросов в объекте `Cache`.

Синтаксис
---------

```js
cache.matchAll(request, { options }).then(function (response) {
  // сделать что-нибудь с массивом ответов
});
```

### Возвращаемое значение

`Promise`, который разрешается в массив всех совпадающих запросов в объекте `Cache`.

**Примечание:** `Cache.match()` в основном идентичен `Cache.matchAll()`, за исключением того, что последний разрешается с `response[0]` (т.е., первым совпадающим ответом) вместо `response` (всех совпадающих ответов в массиве).

### Параметры

request

Запрос `Request`, который вы пытаетесь найти в `Cache`.

options Необязательный

Объект options, разрешающий вам установить особые команды контроля поиска соответствий ключа, выполняемого операцией `match`. Доступные параметры:

* `ignoreSearch`: Булево значение `Boolean` (en-US), которое говорит должен ли процесс сопоставления ключей игнорировать строку запроса в url. Если равно `true`, часть `?value=bar` запроса `http://foo.com/?value=bar` будет игнорироваться при поиске соответствий ключа . По умолчанию равно `false`.
* `ignoreMethod`: Булево значение `Boolean` (en-US), которое, если равно `true`, предотвращает проверку метода `http` для запроса `Request` (обычно разрешены лишь `GET и` `HEAD`). По умолчанию равно `false`.
* `ignoreVary`: Булево значение `Boolean` (en-US), которое, когда равно `true,` говорит процессу сопоставления ключей не проверять соответствие заголовка `VARY` — т.е., если URL совпадает, то вы получите соответствие независимо от того, содержит ли объект `Response` заголовок `VARY, или нет`. По умолчанию равно `false`.
* `cacheName`: Строка `DOMString`, которая представляет собой имя кеша для поиска. **Заметьте, что этот параметр игнорируется методом `Cache.matchAll()`.**

Примеры
-------

```js
caches.open("v1").then(function (cache) {
  cache.matchAll("/images/").then(function (response) {
    response.forEach(function (element, index, array) {
      cache.delete(element);
    });
  });
});
```

Спецификации
------------

| Specification |
| --- |
| Service Workers # cache-matchall |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Использование сервис воркеров (en-US)
* `Cache`
* `WorkerGlobalScope.caches` (en-US)


Cache.addAll() - Интерфейсы веб API

Cache.addAll()
==============

**Экспериментальная возможность:** **Это экспериментальная технология**
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Описание
--------

Метод **`addAll()`** интерфейса `Cache` принимает массив URLS в качестве параметра, получает данные по ним, и добавляет полученные объекты ответов в заданный кеш. Объекты запросов, созданные в ходе получения данных, становятся ключами для хранимых ответов.

**Примечание:** `addAll()` перезапишет любые пары ключ/значение ранее записанные в кеш, соответствующие запросу, но выдаст ошибку, если операция `put()` перезапишет один из кешей, созданный за время выполнения одного и того же метода `addAll()`.

**Примечание:** Первоначальная реализация Cache (как в Blink, так и в Gecko) разрешает промисы `Cache.add`, `Cache.addAll`, и `Cache.put` (en-US) когда тело ответа полностью записано в хранилище. Более поздние версии спецификации говорят, что браузер может разрешить промис как только данные были записаны в базу данных, даже если тело ответа ещё формируется.

**Примечание:** Начиная с Chrome 46, Cache API будет хранить запросы только из безопасных источников, то есть, только использующие протокол HTTPS.

Синтаксис
---------

```js
cache.addAll(requests[]).then(function() {
  //запросы были добавлены в кеш
});
```

### Параметры

requests

Массив объектов `Request`, которые вы хотите добавить в кеш.

### Возвращаемое значение

`Promise`, которые разрешается с пустым значением void.

### Исключения

| **Исключение** | **Когда происходит** |
| --- | --- |
| `TypeError` | Схема URL не `http` или `https`.Статус ответа не из диапазона 200 (т.е., ответ не успешен). Это случается если запрос не выполняется успешно, а также, если запрос является *cross-origin no-cors* запросом (в таком случае, статус всегда 0). |

Примеры
-------

Этот блок кода ожидает старта события `InstallEvent` (en-US), а затем запускает `waitUntil` для обработки процесса установки приложения. Этот процесс состоит из вызова `CacheStorage.open` для создания нового кеша, и вызова `addAll()` для добавления набора ресурсов в этот кеш.

```js
this.addEventListener("install", function (event) {
  event.waitUntil(
    caches.open("v1").then(function (cache) {
      return cache.addAll([
        "/sw-test/",
        "/sw-test/index.html",
        "/sw-test/style.css",
        "/sw-test/app.js",
        "/sw-test/image-list.js",
        "/sw-test/star-wars-logo.jpg",
        "/sw-test/gallery/",
        "/sw-test/gallery/bountyHunters.jpg",
        "/sw-test/gallery/myLittleVader.jpg",
        "/sw-test/gallery/snowTroopers.jpg",
      ]);
    }),
  );
});
```

Спецификации
------------

| Specification |
| --- |
| Service Workers # cache-addAll |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Использование сервис воркеров (en-US)
* `Cache`
* `WorkerGlobalScope.caches` (en-US)


Cache.keys() - Интерфейсы веб API

Cache.keys()
============

**Экспериментальная возможность:** **Это экспериментальная технология**
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Метод **`keys()`** интерфейса `Cache` возвращает `Promise`, который разрешается в массив ключей `Cache`.

Запросы возвращаются в том же порядке, в котором были добавлены.

**Примечание:** Запросы с дублирующимися URL, но с разными заголовками, могут быть возвращены, если в ответах на них установлен заголовок `VARY`.

Синтаксис
---------

```js
cache.keys(request, { options }).then(function (keys) {
  // сделать что-нибудь с вашим массивом запросов
});
```

### Возвращаемое значение

`Promise`, который разрешается в массив ключей `Cache`.

### Параметры

request Необязательный

`Request` который будет возвращён, если найден указанный ключ.

options Необязательный

Объект, чьи свойства контролируют то, как выполняется сопоставление ключей для операции `keys`. Допустимые параметры:

* `ignoreSearch`: Булево значение `Boolean` (en-US), которое определяет должен ли процесс сопоставления игнорировать строку запроса в url. Если установлено в `true`, часть `?value=bar` запроса `http://foo.com/?value=bar` будет проигнорирована при сопоставлении. По умолчанию установлено в `false`.
* `ignoreMethod`: Булево значение `Boolean` (en-US), которое, когда равно `true`, предотвращает проверку `Request`, при сопоставлении ключей, на `HTTP` метод (обычно допускаются только `GET` и `HEAD`). По умолчанию установлено в `false`.
* `ignoreVary`: Булево значение `Boolean` (en-US), которое, когда равно `true,` указывает операции сопоставления ключей не проводить проверку заголовка `VARY`. Другими словами, если URL совпадает, вы получите соответствие, независимо от того, есть ли заголовок `VARY` на объекте запроса `Response`. По умолчанию установлено в `false`.
* `cacheName`: Строка `DOMString`, которая представляет собой определённый кеш, в котором нужно вести поиск. Заметьте, что этот параметр игнорируется методом `Cache.keys()`.

Примеры
-------

```js
caches.open("v1").then(function (cache) {
  cache.keys().then(function (keys) {
    keys.forEach(function (request, index, array) {
      cache.delete(request);
    });
  });
});
```

Спецификации
------------

| Specification |
| --- |
| Service Workers # cache-keys |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Использование сервис воркеров (en-US)
* `Cache`
* `WorkerGlobalScope.caches` (en-US)


Response() - Интерфейсы веб API

Response()
==========

Конструктор **`Response()`** создаёт новый объект `Response`.

Синтаксис
---------
```

var myResponse = new Response(body, init);
```

### Параметры

*body* Необязательный

Объект, который определяет тело запроса. Может быть `null` (является значением по умолчанию), или:

* `Blob`
* `BufferSource`
* `FormData`
* `ReadableStream` (en-US)
* `URLSearchParams`
* `USVString` (en-US)

*init* Необязательный

An options object containing any custom settings that you want to apply to the response, or an empty object (which is the default value). The possible options are:

* `status`: The status code for the reponse, e.g., `200`.
* `statusText`: The status message associated with the status code, e.g., `OK`.
* `headers`: Any headers you want to add to your response, contained within a `Headers` (en-US) object or object literal of `ByteString` (en-US) key/value pairs (see HTTP headers for a reference).

Примеры
-------

In our Fetch Response example (see Fetch Response live) we create a new `Response` object using the constructor, passing it a new `Blob` as a body, and an init object containing a custom `status` and `statusText`:

```js
var myBlob = new Blob();
var init = { status: 200, statusText: "SuperSmashingGreat!" };
var myResponse = new Response(myBlob, init);
```

Спецификации
------------

| Specification |
| --- |
| Fetch Standard # ref-for-dom-response① |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Читай также
-----------

* ServiceWorker API (en-US)
* HTTP access control (CORS) (en-US)
* HTTP


HTMLCollection.item - Интерфейсы веб API

HTMLCollection.item
===================

`HTMLCollection.item() получает элемент с заданым индексом`.

### Аргументы

index

Позиция возвращаемого документа. В объекте HTMLCollection элементы находятся в том же порядке, в каком они расположены в документе.

### Возвращаемое значение

Элемент соответствующий конкретной, заданной позиции или null, если index меньше нуля или больше, чем index последнего элемента.

Описание
--------

Метод item() возвращает номерной элемент из HTMLCollection. В JavaScript легче работать с HTMLCollection, как с массивом, используя квадратные скобки.

Пример
------

```js
var c = document.images; // Это HTMLCollection
var img0 = c.item(0); // Вы можете использовать метод item( ) для доступа к элементу
var img1 = c[1]; // Однако, использование квадратных скобок намного проще и более распространено
```

Смотрите также
--------------

* `NodeList.item()` (en-US)