Контекстное меню
Контекстное меню (итал. menu contestuale, также англ. context menu или всплывающее меню) — это список возможных действий, которые можно выполнить над объектом, с которым взаимодействует пользователь.
Эпитет «контекстное» указывает на то, что пункты меню зависят от типа объекта (или объектов), с которым осуществляется работа, и от приложения, управляющего этим объектом. То есть содержимое меню зависит от контекста, в котором используется объект, и меняется в зависимости от ситуации.
В различных версиях наиболее распространённых операционных систем контекстное меню открывается при клике правой кнопкой мыши на объекте, например на файле, папке или их группе. В этих операционных системах меню можно вызвать также с помощью клавиатуры, нажав сочетание клавиш Shift + F10 либо специальную клавишу, называемую «клавиша меню», «контекстное меню» или «клавиша приложений»[1].
В Mac OS аналогичное меню можно открыть сочетанием левого клика мышью с одновременным нажатием клавиши Control.
Реализация
Контекстные меню открываются путём различных действий пользователя, направленных на область графического интерфейса, поддерживающую такие меню. Конкретный способ зависит от платформы:
- На компьютерах под управлением Microsoft Windows, macOS или Unix с системой X Window меню вызывается нажатием вспомогательной кнопки мыши (обычно правой), и открывается для области под указателем мыши.
- На системах с мышью с одной кнопкой меню обычно вызываются длительным нажатием основной кнопки (например, на иконках Dock в macOS) либо сочетанием клавиатуры и мыши (например, Ctrl-клик в классическом Mac OS и macOS). Альтернативно в macOS можно активировать мышиную клавиатуру через универсальный доступ; тогда на ноутбуках или компактных клавиатурах сочетание Function+Ctrl+5, либо Ctrl+5 (на цифровой клавиатуре) или Function+Ctrl+i (для ноутбуков).
- В устройствах с мультитач-интерфейсом, как MacBook или Surface, контекстное меню открывается двойным нажатием или касанием двумя пальцами вместо одного.
- На некоторых моделях смартфонов камеры умеют распознавать QR-коды при съёмке. Затем появляется всплывающее окно с предложением «открыть» содержимое QR (например, веб-сайт или параметры Wi-Fi).
- В некоторых интерфейсах рядом с пунктами контекстного меню отображаются значки, чтобы ускорить их визуальное распознавание при навигации[1].
- Контекстные меню могут также содержать верхний ряд пиктограмм для быстрого доступа к наиболее часто используемым опциям[2].
Особенностью поведения Windows является то, что меню открывается не в момент нажатия правой кнопки мыши, а только после её отпускания; пользователю требуется ещё раз кликнуть (на этот раз левой кнопкой), чтобы выбрать пункт. Это поведение отличается от macOS и большинства других графических интерфейсов.
Контекстные меню могут иметь иерархическую структуру, позволяющую переходить по нескольким уровням вложенных пунктов. Способы реализации различаются: Microsoft Word одной из первых программ стала отображать подменю только после нажатия на стрелку в соответствующем пункте, иначе выполняя действие, присвоенное основному пункту. Это позволяет быстро повторять действие с предыдущими параметрами и лучше разделять опции и команды.
Следующие оконные менеджеры поддерживают контекстные меню:
Удобство использования
Контекстные меню подвергаются критике со стороны специалистов по удобству интерфейсов, когда некоторые функции доступны только из этого меню — это может запутать даже опытных пользователей (особенно если меню вызывается только в определённой области клиентского окна приложения).
Обычно меню появляется непосредственно под указателем мыши, но если указатель находится у края экрана, меню сдвигается, чтобы поместиться на экране, что снижает однородность поведения и может помешать формированию мышечной памяти. Если меню вызывается с клавиатуры (например, через Shift + F10), оно появляется возле активного элемента интерфейса, а не под указателем, чтобы облегчить узнавание[3].
Веб-страницы
Следующий пример демонстрирует создание контекстного меню на JavaScript[4]:
<p id="noContextMenu">noContext = document.getElementById('noContextMenu');
noContext.addEventListener('contextmenu', e => {
e.preventDefault();
});
Примеры
Примечания
Ссылки
- Defrag da menu contestuale XP (итал.). IlSoftware.it. Дата обращения: 9 декабря 2006. Архивировано 29 сентября 2007 года.
- Crash del menu contestuale (итал.). Tweakness. Дата обращения: 25 июня 2024.
- Disabilitare il menu contestuale (итал.). WebmasterPoint. Дата обращения: 9 декабря 2006. Архивировано 17 июня 2007 года.