コンテキストメニュー
コンテキストメニューを使用すると、スクリーン上のアイテムに直接関連する機能にアクセスできます。インターフェイスが乱雑になることはありません。
コンテキストメニューは、頻繁に使用する項目への便利なアクセスを提供しますが、デフォルトでは非表示になっているため、人々はそこにあることに気付かない可能性があります。コンテキストメニューを表示するには、人々は通常、ビューを選択するか、あるコンテンツを選択してから、現在の構成がサポートする入力モードを使用してアクションを実行します。例えば:
ベストプラクティス
コンテキストメニューに含める項目を選択するときは、関連性を優先します。 コンテキストメニューは、高度なアイテムやほとんど使用されないアイテムを提供するためのものではありません。代わりに、人々が現在のコンテキストで必要になる可能性が最も高いコマンドにすばやくアクセスするのに役立ちます。たとえば、受信トレイの メール メッセージのコンテキストメニューには、メッセージの返信と移動のためのコマンドが含まれていますが、メッセージコンテンツの編集、メールボックスの管理、またはメッセージのフィルタリングのためのコマンドは含まれていません。
少数のメニュー項目を目指します。 長すぎるコンテキストメニューは、スキャンやスクロールするのが難しい場合があります。
あなたのアプリ全体で一貫してコンテキストメニューを有効にして下さい。 項目のコンテキストメニューを提供する場所と提供しない場所がある場合、人々はその機能をどこで使用できるかを知らず、問題があると考える可能性があります。
メインインターフェイス内でも常にコンテキストメニュー項目を使用できるようにします。 たとえば、iOS および iPadOS の メール では、受信トレイのメッセージに使用できるコンテキストメニュー項目は、メッセージビューのツールバーでも使用できます。macOS では、アプリのメニューバーのメニューに、さまざまなコンテキストメニューのコマンドを含む、アプリのすべてのコマンドが一覧表示されます。
メニューの複雑さを管理するためにサブメニューを使用する必要がある場合は、サブメニューを 1 つのレベルに保ちます。 サブメニューは、論理的に関連するコマンドの二次メニューを表示するメニュー項目です。サブメニューはコンテキストメニューを短縮し、そのコマンドを明確にすることができますが、複数のレベルのサブメニューがあると体験が複雑になり、人々はナビゲートが難しくなる可能性があります。サブメニューを含める必要がある場合は、人々がサブメニューを開かなくてもその内容を予測できるように、直感的なタイトルを付けてください。
最も頻繁に使用されるメニュー項目を、人々が最初に焦点を当てる可能性が高い場所に配置することを目指します。 コンテキストメニューが開くと、人々はしばしば指やポインターで表示した場所に最も近い部分から読み始めます。選択したコンテンツのスクリーン上の位置によっては、コンテキストメニューはスクリーンのその領域の上または下に開くため、メニューの位置に合わせて項目の順序を逆にする必要もあります。
コンテキストメニュー内ではなく、あなたのアプリのメインメニュー内にキーボードショートカットを表示して下さい。 コンテキストメニューには、タスク固有のコマンドへのショートカットが既に用意されているため、キーボードショートカットも表示する必要はありません。
区切り記号の使用に関するベストプラクティスに従ってください。 他の種類のメニューと同様に、区切り記号を使用してコンテキストメニュー内の項目をグループ化し、人々がメニューをよりすばやくスキャンできるようにします。一般に、コンテキストメニューには 3 つ以上のグループは必要ありません。ガイダンスについては、メニュー を参照してください。
コンテンツ
ほとんどの場合、コンテキストメニューにはタイトルが表示されませんが、他のすべてのメニューと同様に、コンテキストメニュー内の各項目には、その機能を説明する短いラベルが表示されます。ガイダンスについては、メニュー > ラベル を参照してください。
プラットフォームの考慮事項
tvOS または watchOS ではサポートされていません。
iOS、iPadOS
一般に、コンテキストメニューにタイトルを追加することは避けてください。 例外は、コンテキストメニューが明確ではないコンテンツを対象とする場合です。たとえば、人々が複数の メール のメッセージを選択して [マーク] ツールバーのボタンをタップすると、結果のコンテキストメニューには、選択したメッセージの数を示すタイトルが表示され、選択したコマンドが選択したすべてのメッセージに影響することを人々に思い出させます。
コンテキストメニュー内の各コマンドにシンボルまたはインターフェイスアイコンを含めます。 シンボルやアイコンはコマンドの意味を強調し、人々がその機能を即座に理解するのに役立ちます。同じシンボルを使用する必要があるコマンドが複数ある場合は、すべてのシンボルを省略して、それらの繰り返しを避けることを検討してください。
項目のコンテキストメニューまたは編集メニューのいずれかを提供しますが、両方を提供することはできません。 同じ項目に対して両方の機能を有効にすると、人々が混乱する可能性があり、システムが彼らの意図を検出するのが難しくなります。編集メニュー を参照してください。
データを破壊する可能性のあるコンテキストメニュー項目について人々に警告します。 コンテキストメニューに潜在的に破壊的な項目 ([Delete(削除)] や [Remove(削除)] など) を含める必要がある場合は、それらをメニューの最後にリストし、破壊的であることを示します (開発者のガイダンスについては、destructive) を参照してください)。システムは、赤のテキスト色を使用して破壊的なメニュー項目を表示できます。
iPadOS では、コンテキストメニューを使用して、人々にあなたのアプリで新しいオブジェクトを作成させることを検討してください。 iPadOS では、人々があなたのアプリの空の領域でジェスチャーを行うと、コンテキストメニューが表示されます。たとえば、Files を使用すると、人々は既存のファイルとフォルダーの間の領域でジェスチャーを使用して、新しいフォルダーを作成できます。
iOS および iPadOS では、コンテキストメニューを使用して、コマンドリストの近くに現在のコンテンツのプレビューを表示できます。人々はメニューでコマンドを選択できます。場合によっては、プレビューをタップして開くか、別の領域にドラッグすることもできます。
コンテキストメニューのコマンドのターゲットを明確にするグラフィカルプレビューが望ましいです。 たとえば、人々が Notes または Mail のリストアイテムのコンテキストメニューを表示すると、実際のコンテンツの要約バージョンがプレビューに表示され、人々が意図した項目で作業していることを確認するのに役立ちます。
プレビューのアニメーションが適切に表示されることを確認してください。 人々がスクリーン上のオブジェクトのコンテキストメニューを表示すると、システムはコンテンツから表示されるプレビューイメージをアニメーション化し、プレビューとメニューの背後にあるスクリーンを暗くします。アニメーション中に、丸みを帯びた角などの輪郭が変化しないように、プレビューイメージの形状に一致するようにプレビューのクリッピングパスを調整することが重要です。開発者向けガイダンスについては、UIContextMenuInteractionDelegate (UIContextMenuInteractionDelegate) を参照してください。
macOS
Mac では、コンテキストメニューは コンテキステュアル メニューと呼ばれることがあります。
watchOS
watchOS 7 より前のバージョンの watchOS では、ディスプレイを強く押すと、現在のスクリーンに関連するアクションの、非表示のメニューを開くことができました。watchOS 7 以降では、watchOS アプリは重要な項目をそのようなメニューから関連するスクリーンまたは設定スクリーンに昇格させています。
リソース
関連
開発者用文書
Context menu — SwiftUI (contextMenu)
UIContextMenuInteraction — UIKit (UIContextMenuInteraction)
popUpContextMenu — AppKit (popUpContextMenu)
ビデオ
iPad アプリデザイン
の新規事項
WWDC22
iOS のピッカー、メニュー、
およびアクションでデザイン
WWDC 2020