Контекстное меню (также называемое контекстным , ярлыком и всплывающим или всплывающим меню ) — это меню в графическом пользовательском интерфейсе (GUI), которое появляется при взаимодействии пользователя, например, при щелчке правой кнопкой мыши . Контекстное меню предлагает ограниченный набор вариантов, которые доступны в текущем состоянии или контексте операционной системы или приложения, к которому принадлежит меню. Обычно доступными вариантами являются действия, связанные с выбранным объектом . С технической точки зрения такое контекстное меню является графическим элементом управления .
Контекстные меню впервые появились в среде Smalltalk на компьютере Xerox Alto , где они назывались всплывающими меню ; их изобрел Дэн Ингаллс в середине 1970-х годов. [1] [2]
Microsoft Office v3.0 представил контекстное меню для копирования и вставки в 1990 году. Borland продемонстрировала широкое использование контекстного меню в 1991 году на Второй конференции Paradox в Финиксе, штат Аризона. Lotus 1-2-3 /G для OS/2 v1.0 добавила дополнительные параметры форматирования в 1991 году. Borland Quattro Pro для Windows v1.0 представила параметр контекстного меню «Свойства» в 1992 году.
Контекстные меню открываются с помощью различных форм взаимодействия с пользователем, которые нацелены на область GUI, поддерживающую контекстные меню. Конкретная форма взаимодействия с пользователем и средства, с помощью которых нацеливается область, различаются:
Поведение щелчка мыши в Windows таково, что контекстное меню не открывается, пока кнопка мыши нажата, а открывается только при отпускании кнопки, поэтому пользователю приходится снова нажимать, чтобы выбрать пункт контекстного меню. Такое поведение отличается от поведения в macOS и большинстве графических интерфейсов свободного программного обеспечения.
Контекстные меню иногда организованы иерархически, что позволяет осуществлять навигацию по разным уровням структуры меню. Реализации различаются: Microsoft Word был одним из первых приложений, который отображал только подпункты некоторых пунктов меню после щелчка по значку стрелки в контекстном меню, в противном случае выполняя действие, связанное с родительским пунктом. Это позволяет быстро повторять действие с параметрами предыдущего выполнения и лучше разделять опции и действия.
Следующие оконные менеджеры предоставляют функциональность контекстного меню:
Контекстные меню подверглись критике со стороны аналитиков по удобству использования при неправильном использовании, поскольку некоторые приложения делают определенные функции доступными только в контекстных меню, что может сбить с толку даже опытных пользователей (особенно когда контекстные меню можно активировать только в ограниченной области клиентского окна приложения).
Контекстные меню обычно открываются в фиксированном положении под указателем , но когда указатель находится вблизи края экрана, меню смещается, что снижает согласованность и затрудняет использование мышечной памяти . Если контекстное меню вызывается с клавиатуры, например, с помощью Shift + F10, контекстное меню отображается рядом с сфокусированным виджетом, а не с положением указателя, чтобы сэкономить усилия по распознаванию.
Руководящие принципы Microsoft призывают всегда использовать термин «контекстное меню» и явно осуждают термин «меню сочетания клавиш» . [5]