コンテキストメニュー

コンテキストメニュー（）とは、グラフィカルユーザーインターフェイス (GUI) 上の部品（ウィジェット）またはその配下の項目（アイテム）をクリックすることでポップアップ表示されるメニューのことであり、操作・実行中のアプリケーションや、選択した項目の内容といった文脈あるいは状況（コンテキスト）によって変化する選択肢（オプション）の一覧を提供する。ショートカットメニュー（）や、右クリックメニュー（）ともいう。
通常、Windows、macOS、X Window Systemを実行するUNIXといったオペレーティングシステムにおけるマウスの右ボタンをクリックすることで呼び出される。ボタンが1つしかないマウスの場合、同時にキーボードの特定のキーを押下すれば表示できることもある（例：Mac OSでは +クリック）。Windowsに対応したキーボードでは、コンテキストメニューを呼び出すメニューキーが備えられている。スタイラスペンのサイドボタン押下や、タッチパネルの長押し、タッチパッド上の2本指タップなどで表示できる環境もある。
歴史.
コンテキストメニューは、1970年代半ばにAltoを暫定ダイナブックとして機能させるためのある種のオペレーティングシステムとして開発されたSmalltalk環境における「ポップアップメニュー」とその「オブジェクト指向的」な振る舞いを起源とする。この「暫定ダイナブック環境」では、Altoにて3つのボタンがあるマウスの2番目のボタンをクリックすると、その操作を「メッセージ」として受け取ったオブジェクトに対する、ふさわしいメニューをポップアップする責務を担っていたため、ユーザーにはコンテキストに応じてメニュー内容が変化するように見えた。なお、同じAltoを使って開発されてはいてもSmalltalkとは系譜が異なり、ゆえにまったく別の操作スタイルを有したStar（1981年リリース）には、同種機能はなかった（Starでは、マウスは主に対象の選択のみに用いられ、編集操作にはメニューではなく、キーボード上の特殊なキーで行うものだった）。一方で、プログラミング言語であるObjective-Cや、アプリケーションプログラミングインターフェイス (API) のみならず、ユーザーインターフェイスにおいてもSmalltalkの強い影響下にあったNEXTSTEP（1989年公開）には、メインメニューを呼び出すなどという格上だと言えるような機能が見受けられた。同様のことはSmalltalkを用いて新しいインターフェイスのプロトタイピングなどが行われたWindows 95（1995年公開）についても言える。
詳細.
例えばWindows ExplorerやFinderといったファイルマネージャーでは、選択中のファイルまたはフォルダーに対してコンテキストメニューを表示することで、「開く」「名前を変更」「コピー」「削除」などといった操作の選択肢が表示される。ファイル種別に応じて、関連付けられた特殊な操作コマンドが表示されることもある。編集可能なテキストボックスでは、通常は「元に戻す」「やり直し」、クリップボードからのペーストを実行する「貼り付け」コマンドなどが表示されるが、文字列を選択してからコンテキストメニューを表示することで、選択中の文字列に対してクリップボードへのコピーやカットを実行する「コピー」および「切り取り」コマンドが表示される。
コンテキストメニューは階層的に構成されていることもある。Microsoft Wordは、コンテキストメニュー上の矢印アイコンをクリックした後でのみサブエントリを表示し、さもなくば親エントリに対応した動作をするという方式を採用した、最初のアプリケーションの1つである。これによって同じ操作の繰り返しが素早く行えるようになった。
ウェブブラウザでは、ウェブページ上でコンテキストメニューを表示すると、選択したテキストのコピーや、画像に名前を付けて保存（ダウンロード）する機能などが使える。このようなユーザーによる安易なコンテンツのコピーを禁止したい場合、スクリプト言語によってコンテキストメニューの表示を禁止することができる。
Macintoshでは長らく1ボタンマウスであり、コンテキストメニューはあくまでも補助的な位置付けで、原則としてコンテキストメニューの機能はメニューバーにある項目からも呼び出すことができた。そもそも導入されたのがMac OS 8からと遅く、対応していないアプリケーションも多かった。しかし便利であるのも事実で、コンテキストメニュー機能拡張（9.xまで）や、Contextual Menu Itemsプラグイン (macOS) にて、その内容をカスタマイズすることもできる。
コンテキストメニューは必要に応じて表示され、状況に応じて内容が変化するものであり、適切に使用することで画面領域を節約することができるなどのメリットがある。しかし、不適切なコンテキストメニューはかえって使いにくくなる。まず、静的に配置されて最初から見えているメニューやツールバー、ボタンなどと異なり、画面上には操作上のヒントが何もない状態となるので、コンテキストメニューの表示方法を知らないユーザーは、そのソフトウェアの利用をあきらめてしまう可能性が高い。また、アプリケーションによってはコンテキストメニューでしか利用できない機能があり、特にそのコンテキストメニューがウィンドウ内のごく限られた領域でしか呼び出せない場合、経験を積んだユーザーでさえ混乱してしまう。