syghの新フラグメント置き場

プログラミングTipsやコード断片の保管場所です。お絵描きもときどき載せます。

OK/Cancelボタンの配置順

WindowsMacそれぞれの、ユーザー確認ダイアログにおけるOKボタンとキャンセルボタンの位置(順序)の違いに関して、下記に考察が記載されています。

そういえば、JavaのダイアログもMacと同じ順序です(日本語版はキャンセルボタンのラベルが[取り消し]なのが気に食わないのですが)。Ubuntuとかで使われてるGnomeMacと同じらしいです。

自分は主にWindowsを使っているため、OK/キャンセルという配置が当たり前な感じなので、右側にOKがあるとかえって操作しづらく感じますが、iPhoneのキャンセル/OKという配置は特に使いづらいとは思いません。たぶんデバイスが全然違うからですね。

しかし、ゲーム(コンシューマー/PC問わず)のユーザーインターフェイスや、Webサイト・Webアプリケーションの場合、Yes/Noの選択肢は、左側にYes、右側にNoがあるほうが多いような気がします。WindowsプラットフォームのPCゲームだと、Windows GUIに合わせて、左側にYesがあったほうがユーザーとしてはとっつきやすいから、というのは分かるんですが、Xbox以外のコンシューマーゲームでも左側にYesを配置しているゲームのほうが多いんではないでしょうか。ファミコンスーパーファミコンといった、Windowsが登場する以前のゲームのUIをチェックしてみると面白いことが分かるかもしれません*1

なお、OK/Cancelボタンの配置順に関する適切な設計指針を与えてくれる記事が下記にあります。

結論としては、どちらの順序にも一理あるので、とにかくプラットフォーム(OS)の慣習に従うこと。まさに正鵠を射ています。「郷に入っては郷に従え」の精神ですね。記事で言及されているWindows UXガイドラインの該当ページは下記の[次の順番でコミット ボタンを配置します。]というセクションです。

ちなみにWindowsの配置はMS-DOSの文化(キーボード操作前提)をそのまま引き継いだ形になっているそうです。

ダメな例

自分はおうちで絵を描くのにWACOMペンタブレットを使ってるんですが、コイツのドライバーVer.5.05-7やVer.6.3.10w2の設定ダイアログ(Windows Vista/7/8だと[コントロール パネル]→[ハードウェアとサウンド]→[ペンタブレットのプロパティ]でアクセス)はCancel/OKの順序でボタン配置されてるという、いわゆるMac/Linux形式です。Windowsプラットフォームで勝手にこういうことされると違和感ありまくりですね。Mac版とボタン配置を変えるのをサボっただけなのか、もしくは
「OKボタンは右端配置が至高、だからお前らは俺のデザインに従え。Windowsの流儀? そんなんシラネ」
という頭の弱い俺様デザイナーか俺様プログラマーあたりの勝手な思想の押しつけの結果こうなったんだと思うんですが、プラットフォーム(OS)との調和がとれていない、はっきり言って汚ない設計です。少なくとも大多数のWindowsユーザーにとっては逆にMac/Linuxの流儀なんてシラネ、なわけで。

https://sygh-jp.github.io/content_hosting/software_ss/wacom_pentablet_driver_ss_2013_10_25a.png

ちなみに上記画像をよく見れば気付く人もいると思いますが、ローカライズを行なった人間は日本語の禁則処理を理解してないのでしょうか? Windows自体は普通に各国語の禁則処理を実装していると思うんですが……

余談

最近仕事で海外に存在する子会社が作ったWindowsアプリをテストしてるんですが、OK/Cancelボタンの配置順がgdgdでまったく統一感がない。国内のほかのエンジニアが操作しているところを見ていても、そのgdgd配置のせいでしょっちゅう操作ミスしています。とりあえずWindows UXガイドラインを読んで、ボタン配置を修正してくれ、と依頼しました。

ゲームコントローラーのボタン配置

Microsoft製のゲーム機、Xbox/Xbox 360/Xbox OneのコントローラーはAボタンが決定ボタンで、Bボタンがキャンセルボタンなのは任天堂の歴代ゲーム機と同じなんですが、AボタンとBボタン、そしてXボタンとYボタンの配置はそれぞれ逆になっています(ボタンの色も違います)。

任天堂SFC, DS)

 X
Y A
 B

MicrosoftXboxシリーズ)

 Y
X B
 A

ソニー(PSシリーズ、ただし海外版では文化の違いから○×の役割が逆転する)

 △
□ ○
 ×

SEGAメガドライブセガサターン

X Y Z
A B C

任天堂ソニーのゲーム機に慣れている場合、最初はXboxのボタン配置に戸惑うかもしれませんが、Xboxのゲームをやりこんでいくうちに慣れます。ただ、しばらくXboxのコントローラーばっかり使ってプレイした後で任天堂ソニーのコントローラーを使うと操作ミスすることが多いです。説明のための補助テキストラベルがあるGUIのボタンとは違って、ゲームコントローラーのボタンは手元をまったく見ないで無意識的に操作するのが当たり前なので、「慣れ」というのが大きく影響します。ファミコン時代でも、Aを決定ボタン、Bをキャンセルボタン扱いにしているゲームが主流だったと思いますが、たまに逆の割り当てを採用しているゲームをプレイすると操作ミスすることがよくありました。昔のゲームにはキーコンフィグなんてありませんから、プレイヤーが慣れるしかないわけです。
個人的な意見としては、ゲームコントローラーに関しては、やはりすべてのゲーム機・すべての文化圏でOK/Cancelに相当するボタン配置と記号だけは統一してほしいところです(どちらの順序が良いとか悪いとかいう問題ではない)。ゲームを作るとき、海外向けにローカライズする(あるいはローカライズを考慮してゲームを設計する)のはプレイステーションプラットフォームの場合が一番厄介なのでは、と思います。

余談

SEGAハードの中で自分が所持しているのはサターンだけですが、そもそも6ボタンが右側に配置されていて他ハードとは大きく異なるため、慣れのせいでOK/Cancelを操作ミスすることは少なかったと思います。なお、SFCでも格闘ゲーム向けにL/Rを含めた6ボタンが

Y X L
B A R

と右側に配置されているサードパーティ製コントローラーがありましたが、L/Rの配置が直感的でなくなること、決定ボタンとなるAボタンが端ではなく中央に来ることなどから、格闘ゲーム以外ではかなり使いづらかったです。
ちなみにSEGAドリームキャストのボタン配置はMicrosoft同様ですが、配色が違います。ドリームキャストはもともとWindows CEベースで、Microsoftも開発に関与しています。Xboxコントローラーのボタン配置はドリームキャストの影響が強いのかもしれません。
N64とかゲームキューブは一切プレイしたことがないうえにボタン配置も変態的なので今回スルーしました。

*1:ゲームの場合、Yes/Noなどの選択肢は横に並べるのではなく、縦に並べることが多いかもしれません。特にRPGでは顕著だったと記憶しています。ちなみにAdobeのCreative製品シリーズは、ダイアログではOK/キャンセルを縦に配置していますが、テキストツールなどの操作の確定/キャンセルをするアイコンボタンはWindows版でもキャンセル/確定の順です(日本語版だと×/○の順)。