Типы событий пользовательского интерфейса KeyboardEvent

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

Тип события клавиатуры — keydown

Тип события клавиатуры keydown
Интерфейс KeyboardEvent
Синх / Асин Синхронный
Всплытие Да
Надежные цели Element
Отменяемый Да
Сдержанный Да
Действие по умолчанию Варьируется: события «перед входом» beforeinput и «вход» input; запустить систему компоновки текста; blur и focus события; событие «нажатия клавиши» keypress  (если поддерживается); активационное поведение; другое событие
Контекст (доверенные события) Event.target : фокусируемый элемент, обрабатывающий ключевое событие, или если элемент не сфокусирован, то элемент body, если доступен, в противном случае корневой элемент
UIEvent.view : Window
UIEvent.detail : 0
KeyboardEvent.key : значение ключа нажатой клавиши.
KeyboardEvent.code : значение кода, связанное с физическим расположением клавиши на клавиатуре.
KeyboardEvent.location : расположение ключа на устройстве.
KeyboardEvent.altKey : true, если модификатор Alt был активен, иначе false
KeyboardEvent.shiftKey : true, если модификатор Shift был активен, иначе false
KeyboardEvent.ctrlKey : true, если модификатор Control был активен, иначе false
KeyboardEvent.metaKey : true, если Meta-модификатор был активен, иначе false
KeyboardEvent.repeat : true, если клавиша была нажата достаточно долго, чтобы вызвать ее повторение, иначе false
KeyboardEvent.isComposing : true, если ключевое событие происходит как часть сеанса композиции, иначе false

Пользовательский агент ДОЛЖЕН отправить это событие, когда нажата клавиша. Тип события keydown зависит от устройства и зависит от возможностей устройств ввода и их отображения в операционной системе. Этот тип события ДОЛЖЕН быть сгенерирован после сопоставления клавиш. Этот тип события ДОЛЖЕН быть отправлен до событий beforeinput, input и keyup, связанных с одним и тем же ключом.

Действие по умолчанию для события keydown зависит от ключа:

  • Если ключ связан с символом, действие по умолчанию ДОЛЖНО состоять в том, чтобы отправить событие beforeinput, за которым следует событие input. В случае, когда ключ, который связан с несколькими символами (например, с макросом или определенными последовательностями мертвых клавиш), действием по умолчанию ДОЛЖНО быть отправка одного набора событий beforeinput / input для каждого символа
  • Если ключ связан с системой компоновки текста, действие по умолчанию ДОЛЖНО состоять в том, чтобы запустить эту систему
  • Если клавиша является клавишей Tab, действие по умолчанию ДОЛЖНО состоять в том, чтобы сместить фокус документа с текущего в фокусе элемента (если он есть) на новый фокусированный элемент, как описано в «Типах событий фокуса»
  • Если ключом является Enter или » » клавиша, а текущий фокус находится на элементе, изменяющем состояние, действие по умолчанию ДОЛЖНО быть отправлять событие click и событие DOMActivate, если этот тип события поддерживается агентом пользователя (см. §3.5 Триггеры активации и поведение для более подробной информации)

Если это событие отменено, связанные типы событий НЕ ДОЛЖНЫ отправляться, и связанные действия НЕ ДОЛЖНЫ выполняться.

События keydown и keyup традиционно связаны с обнаружением любой клавиши, а не только той, которая дает значение символа.

Тип события клавиатуры — keyup

Тип события клавиатуры keyup
Интерфейс KeyboardEvent
Синх / Асин Синхронный
Всплытие Да
Надежные цели Element
Отменяемый Да
Сдержанный Да
Действие по умолчанию Не определено
Контекст (доверенные события) Event.target : фокусируемый элемент, обрабатывающий ключевое событие, или если элемент не сфокусирован, то элемент body, если доступен, в противном случае корневой элемент
UIEvent.view : Window
UIEvent.detail : 0
KeyboardEvent.key : значение ключа нажатой клавиши.
KeyboardEvent.code : значение кода, связанное с физическим расположением клавиши на клавиатуре.
KeyboardEvent.location : расположение ключа на устройстве.
KeyboardEvent.altKey : true, если модификатор Alt был активен, иначе false
KeyboardEvent.shiftKey : true, если модификатор Shift был активен, иначе false
KeyboardEvent.ctrlKey : true, если модификатор Control был активен, иначе false
KeyboardEvent.metaKey : true, если Meta-модификатор был активен, иначе false
KeyboardEvent.repeat : true, если клавиша была нажата достаточно долго, чтобы вызвать ее повторение, иначе false
KeyboardEvent.isComposing : true, если ключевое событие происходит как часть сеанса композиции, иначе false

Пользовательский агент ДОЛЖЕН отправлять это событие при отпускании клавиши. Тип события keyup зависит от устройства и зависит от возможностей устройств ввода и их отображения в операционной системе. Этот тип события ДОЛЖЕН быть сгенерирован после сопоставления клавиш. Этот тип события ДОЛЖЕН быть отправлен после событий keydown, beforeinput и input, связанных с одним и тем же ключом.

События keydown и keyup традиционно связаны с обнаружением любой клавиши, а не только той, которая дает значение символа.

Полная версия документа на русском языке

UI Events | События пользовательского интерфейса

Ссылка на первоисточник

https://www.w3.org/TR/uievents/#events-keyboard-types

Поделись записью