ユーザーインターフェイスにおける明示的アクション/暗黙的アクションの違いと設計の考え方

明示的アクション/暗黙的アクションについてずっと言語化できていなかったので、このたび記事にまとめてみました。馴染みのあるMac OSそしてiOSを例に、画面上のオブジェクトを操作するための二つのパラダイムについて説明します。

2005年頃の Apple Human Interface Guidelines (HIG) を開いてみると、そこには「Explicit and Implied Actions – 明示的および暗黙的アクション」と呼ばれるデザイン原則が示されています。Mac OSのユーザーインターフェイスでは、明示的アクション暗黙的アクション、この二種類の操作体系が同時に提示され、ユーザーは好きな方法を選択することができるようになっています。

明示的アクション

明示的アクションとは、すなわち画面上に明示された手段を選択してコマンドを実行するというものです。Macを例にすると、ユーザーはデスクトップと向かい合うとき、まず操作したいオブジェクト(例えばフォルダなど)をクリックして選択状態にします。次にメニューバーをマウスで指し示してから適当なメニューを選び、クリックして展開します。その中から目的のコマンドを探し出したらそこで再びクリックしてコマンドを実行します。

この操作体系では、ユーザーは最低限の操作方法の把握、つまり、「マウスの扱い方」「メニューバーの意味」さえ理解していれば、あとは画面の所定の位置を数クリックするだけで目的を果たすことができるように設計されています。アプリケーションごとにメニューバーの内容が違ったとしても、このパラダイムでは次に操作すべきものが常に明らかであるため、ユーザーはメニューバーの内容を都度確認しながら長期記憶に頼ることなく様々なアプリケーションを扱えてしまいます。

明示的アクションは操作過程そのものが説明書となりうるものです。Macが『直感的に操作できる』と評される理由もここにあります。メニューバーそのものがアプリケーションの説明書となっているので、ユーザーはメニューバーを操作しながらアプリケーションの操作方法を学ぶことができます。

暗黙的アクション

暗黙的アクションは明示的アクションと表裏一体にあります。明示的アクションが正攻法だとしたら、暗黙的アクションは裏道、ショートカットです。メニューバーの例でいうと、ショートカットキーがそれにあたります。特定の操作方法に慣れたベテランユーザーからすると、毎度いちいちメニューバーからプルダウンメニューを展開してコマンドを探し出すというのは手間ですし、もっと素早くコマンドを実行したいと思っているはずです。

我々が普段何気なく使いこなしている「ドラッグ&ドロップ」操作はとても暗黙的なアクションと言えるでしょう。オブジェクトを掴んで(ドラッグ)別の何かに落とすと(ドロップ)何かしらのアクションが実行されるというのは、予めそのオブジェクト間の関係性とドロップ先の振る舞いを理解していなければ成り立たない操作です。アプリケーションを開いてメニューから「開く ⌘O」を選ぶよりも、Dockのアイコンにファイルを直接ドロップした方が圧倒的に素早く目的を果たせますが、これは明らかに「開く ⌘O」操作の暗黙的なショートカットです。

ファイルを直接Dockのアイコンにドロップすれば、「開く」コマンドと同じ結果を得られます。

暗黙的アクションとは、操作方法が画面に明示されなくとも暗黙的な操作によって素早くこなせる操作体系です。一般には中上級者向けで、コマンドラインはその最右翼と言えるでしょう。Terminalでは一切の操作説明はありませんが、コマンド名を丸暗記している上級者たちは手早くコマンドを次々と実行していきます。

Terminalのターゲットユーザーはそもそもそのような上級者たちであるがゆえそれが許容されていますが、一般のGUIアプリケーションをデザインする側からすると、暗黙的アクションの取扱には十分に注意を払わなければなりません。次に、アプリケーション設計者がよくやってしまう誤りの例を示します。

誤り1:明示的アクションを用意しない

暗黙的アクションのみを定義して、それに対応する明示的アクションを用意していないアプリケーションを見かけることがあります。

『アプリケーションを立ち上げたらまず “shift ⌘ R” を押してください。次にウインドウに表示される画像を右クリックすると画面が更新されます。』

ショートカットキーはメニューバーに収まっているコマンド(明示的アクション)を手早く実行するためのものです。メニューバーに存在しないコマンドを実施するための暗黙的アクションは歓迎されません。

右クリック、すなわちコンテクストメニューも暗黙的アクションの代表例です。コンテクストメニューの内容はほとんどの場合「そのオブジェクトに対して実行可能なコマンドの寄せ集め」でしかありません。あるいは、右クリックにコンテクストメニューではない独自のアクションを割り当てることは少なくともMacの世界ではありえないことなので、これはやめるべきでしょう。

誤り2:独自のショートカットキーを定義してしまう

Mac OSではアプリケーションが備えるコマンドを標準的なコマンドとそうでないものに区別することができます。「アプリケーション」「ファイル」「編集」メニューは「標準メニュー」と呼ばれ、そこで用意されるコマンドは全アプリケーションを通して共通であるべきです。追加で独自のコマンドを足すことは許容されます。

「編集」メニューの一部はどのアプリでも共通です。

もしも特定のアプリだけ「終了 ⌘S」となっていたなら、それは大問題です。保存しようとしたらアプリが終了してしまうなんて罠以外の何物でもありません。今すぐに開発者に文句を言って直させるべき事案でしょう。

これはデスクトップのネイティブアプリケーションの話でしたが、webサイトが定義するショートカットキーはデスクトップ以上に大きな問題になっています。

まず、webというのはブラウザーアプリケーションの中で動作するものであることを忘れてはいけません。ユーザーはweb以前にまずブラウザーアプリケーションと対話しています。ブラウザーはデスクトップで動作するネイティブアプリケーションです。ブラウザーは他のアプリと同様にMac OSのパラダイムに基づいて設計されているので、ショートカットキーのような操作は本来ブラウザーアプリに対して実行されるべきものなのです。

残念ながらこのMediumでもそうなのですが、「⌘B」操作がweb上のテキストを太字化させるコマンドのショートカットに割り当てられていることは、あまりにもデスクトップの秩序から逸脱している「違法的な操作」と言わざるを得ません。確かに、⌘Bは太字(Bold)のショートカットキーとして一般に認知されていますが、Safariアプリケーションそのものに⌘Bあるいは太字コマンドが定義されているわけではありません。Medium上のテキスト太字化をSafariのメニューバーからは一切実行できないのです。太字化できるようになっているのは、Mediumが勝手にユーザーのキー操作をフックして、webの世界で独自に処理した結果に過ぎません。他のwebサイトでは通用しないことの方が多い「独自のショートカットキー」なのです。

そしてたった今私に起こったことは、Safariで間違って閉じてしまったタブを復元しようとして⌘Zを入力したものの、Mediumがそれをフックしてしまったがためにタブを復元できませんでした。Mediumでは⌘Zをテキスト操作の取り消しに独自割り当てしているので、その結果、タブの復元というSafariの機能が無効化されてしまったのです。

Mediumを前面で開いている限りは、Safariの「取り消す」コマンドのショートカットキーは機能しません。

このような、「web世界のデスクトップ侵食問題」はまた別の話ではありますが、暗黙的アクションという観点から言えば十分に注意を払うべき事案と言えるでしょう。

誤り3:独自のジェスチャ操作を定義してしまう

特にスマートフォンの世界でやってしまいがちなのがこれです。そのアプリの世界で独自に定義したジェスチャ操作をユーザーに強いるのは避けるようにしましょう。

例えば、とある領域を長押ししなければ現れないアクションシート、ボタンをダブルタップしなければ実行できないコマンド、シェイクを強いられる場面などなど。

どれもユーザーの目には見えないものなので、アプリによっては『説明が必要だ』との判断が下されることもあるでしょう。そうして出来上がるのが、『この画面のココをダブルタップすると画像の保存が行えます。』という長い文言が記述されたバルーンです。これは初回起動時にしか現れなかったりするので、そのアプリにまだ慣れていないユーザーだったり、あるいは誤ってバルーンを消してしまったりすると、途端に画像の保存方法がわからなくなってしまいます。救済処置はありません。

ジェスチャ操作はそれそのものが暗黙的アクションのようなものであるため、必ず明示的アクションも合わせて用意するようにしましょう。ダブルタップや長押しというものは、右クリックと同じショートカット操作と捉えるべきです。

誤り4:コンテクストメニュー主体の操作体系をデザインしてしまう

コンテクストメニュー、すなわち右クリックばかりを多用するアプリケーションを設計してしまうということはMacではあまりありませんが、Windowsではよく見かけます。WindowsはMacとはまた違う秩序があるので一概には言えませんが、基本的にはコンテクストメニューは暗黙的アクションであるのでそれを強いることはアプリケーションの操作の敷居を高める結果につながります。

Finderでとあるフォルダのコンテクストメニューを展開した状態。
コンテクストメニューの内容はメニューバーにあるコマンドのショートカットです。

Mac OSではコンテクストメニューに似た要素としてツールバーが挙げられます。ツールバーはメインウインドウの上部に設置されるショートカット置き場で、その内容は基本的には全てメニューバーに収まっているコマンドが並びます。メニューバーにあるコマンドのうち、最もよく使うと考えられるものをツールバーに並べることができます。(ツールバーに何を用意すべきかはアプリケーション設計者がよく考えてデザインすべきところでしょう。)

Sketchのように、ツールバーにあるコマンドはメニューバーからも見つけられるべきです。

ツールバーを暗黙的アクションと捉えるなら、逆に言えばツールバーを隠した状態でもアプリケーションを完全に操作できなければなりません。すなわち、メニューバーによる操作のみでアプリケーションが備える全ての機能にアクセスできなければならないのです。「画面」からアプリのデザインを行おうとするとメニューバーの重要さに気づけず、見た目だけでなんとなくツールバーを備えたアプリに仕上がってしまいます。あるいは、2ボタンマウス前提の操作に気をとられると、右クリックを多用するアプリに仕上がってしまいます。


正しい操作体系をどう設計すれば良いのか

明示的アクションと暗黙的アクションの違いを理解し、それぞれの役割を把握してください。どちらか一方だけではなく、両方の操作を適切に取り入れるようにしましょう。

明示的アクション - メニューバーに代表される明示的な操作方法。ユーザーは画面の指示に従いながら操作することができます。ほとんどの場合、明示的アクションには常にアクセスできる状態であることが理想です。

暗黙的アクション - ドラッグ&ドロップ、コンテクストメニュー、ツールバー、ジェスチャ操作に代表される暗黙的な操作方法。明示的アクションは多くの操作を要することがあるため、操作に慣れているユーザーはそれを面倒に感じることがあります。暗黙的アクションを明示的アクションのショートカットとして用意することで、中上級者のユーザーは素早く目的を果たすことができるようになります。

明示的アクションと暗黙的アクションの関係を理解した上で、それらを適切にアプリケーションに組み込むようにしましょう。明示的アクションは必ずその結果が明確に示される形であるべきです。Mac OSならばメニューバー、iOSならばツールバー、ナビゲーションバー、アクションシートなどをうまく活用して、ユーザーの目に見えるところに常に最適なアクションを設置するようにしましょう。

ジェスチャ操作やドラッグ&ドロップはとても便利ではありますが暗黙的でもあるため、たとえそれらを知らなくても成り立つように注意を払ってアプリケーションを設計するようにしましょう。