第7章


ユーザ入力


その他のグラフィカルユーザインタフェースと同様に、Mac OS Xはマウスのようなポインティングデバイス【指示装置】と共に使用するために最適化されています。

けれども、ユーザの多くはコンピュータとのやり取りにマウスの代わりにキーボードを用いることを好むか、必要としています。Mac OS Xでは、ユーザは「ポイント【指し示す】とクリックする」装置を用いて利用できる機能のすべてに対して、キーボードアクセスを可能にする選択肢を持ちます。

マウスとその他のポインティングデバイス

Macintoshのインタフェースにおける、標準のポインティングデバイスはマウスです。ユーザは画面上のオブジェクトの直接操作のふるまいを維持する他の装置—トラックボールやスタイラスペンなどの—で代用することができます。

マウスボタンを押さずにマウスを動かすことでカーソル、もしくはポインタを移動させます。画面上のカーソルはアプリケーションの文脈とカーソルの位置に従ってさまざまな形状をとることができます。

たとえば、ワードプロセッサでは、カーソルは文字列の上にある間はIビームの形をとり、ツールパレットの上にあるときは矢印に変化します。ユーザに対してカーソルの機能の変化に関する情報を提供する目的にのみ、カーソル形状を変化させてください。カーソルを正しく使用するための詳細は「カーソル」(143ページ)で見つけられるでしょう。

単にマウスを移動させることは、ポインタの位置だけを変化させ、加えてその形状を変化させる可能性があります。マウスボタンを押すということは何かを行う意思表示であり、マウスボタンを離すことで動作を完了します。

Macintoshコンピュータと共に提供されるマウス装置はボタンを一つだけ持つので、これらのガイドラインは単ボタンマウスに適用されます。その他の入力装置は、Mac OS X汎用のキー操作で提供される機能を再現するための、プログラムを行うことができる付加的なボタンを搭載していることがあります。

【Mighty Mouseも1ボタン&その他のプログラマブルボタンという扱いなのだろう、多分】

クリック

クリックには二つの構成要素があります。マウスボタンを押すこと、そしてマウスを動かさずにボタンを離すことです(もしボタンを押してから離すまでの間にマウスが動いたら、それはクリックではなくドラッグです)。

クリックの効果はすぐに、そして明白に現れる必要があります。もしクリックの機能がある動作を発生させるためのものであれば(【画面上の】ボタンをクリックするというような)、ボタンが押されたときに選択範囲が作り出され、ボタンが離されたときに動作が行われます。

たとえば、もしユーザが画面上のボタンの上にポインタがあるときにマウスボタンを押すと、これによって【画面上の】ボタンは選択された状態に置かれ、ここでマウスボタンを離す前にポインタを【画面上の】ボタンの外に移動すると、画面上のボタンはクリックされません。もしユーザが画面上のボタンを押し、マウス【ボタン】を離す前に別のボタンの上に【ポインタを】動かしたら、どちらの【画面上の】ボタンもクリックされません。

ダブルクリック

ダブルクリックは最初のクリックの直後に続く第二のクリックを伴います。もし二つのクリックが、期間(キーボードとマウス環境設定でユーザに設定された通りの)と位置(普通は数ピクセル以内)に関してお互い十分に近ければ、これらはダブルクリックを構成します。

ダブルクリックは、文書を開くためにCommand-Oを押したり、単語を選択するためにドラッグするといった、他の動作の短縮形として用いられるのが最も一般的です。誰もが身体的にダブルクリックを行えるわけではないので、決してそれをある動作を行う唯一の方法にするべきではありません。

一部のアプリケーションはトリプルクリックに対応しています。たとえば、ワードプロセッサでは、最初のクリックは挿入ポイントを設定し、第二のクリックは単語全体を選択し、第三のクリックは文や段落全体を選択します。3クリック以上に対応するのはお勧めできません。

プレスとホールド

【注:訳文ではここでの説明を除き特にプレスという用語を用いず、 「押し続ける」「押しながら」等と書き下している。】

プレスとは、マウスを停止させたままマウスボタンを押し続けるという意味です。プレスがクリックを繰り返すのと同じ効果を持っているスクロールアローや、プレスによってメニューを表示するDockタイルのように、明確に定義された領域の中を除き、プレスはそれ自体でクリックが行う以上の効果を持つべきではありません。たとえば、Finderアイコンをプレスすることでアイコンの選択はしても、それを開くべきではありません。

ドラッグ

ドラッグとは、マウスボタンを押しながら、新しい位置へマウスを移動し、マウスボタンを離すという意味です。ドラッグの用途としては、文字列ブロックの選択、メニュー項目の選択、オブジェクトの範囲の選択、アイコンのある場所から別の場所への移動、オブジェクトを縮めたり広げたりすることが含まれます。

画像オブジェクトのドラッグはオブジェクトの輪郭だけではなく、オブジェクト全体(もしくはその透過表現)を移動すべきです。

あなたのアプリケーションは、オブジェクトがウインドウの端のような特定の境界線を過ぎて移動されることを制限できます。もしユーザがオブジェクトをドラッグし、境界線の外側でマウスボタンを離したら、オブジェクトは元の位置に留まります。

もしユーザが項目を境界線の外側へドラッグし、次にマウスボタンを離す前に【境界線内に】戻したなら、オブジェクトは新しい位置に移動します。

また、あなたのアプリケーションは、ユーザがウインドウの境界線を越えてオブジェクトを移動した場合に、自動的に文書をスクロールすることもできます(「自動スクロール」(201ページ)を参照)。

もしユーザが代理オブジェクトを、その代理オブジェクトを消去させる領域へとドラッグしたら、その位置にドラッグすれば代理オブジェクトは消去されるということを表すために消滅カーソルを表示してください。

もしユーザがある項目を選択して、ドラッグを開始したとしても、3ピクセル以下しか動いていない時点で項目を離したら、その項目は移動しません。

ドラッグと自動スクロールについての詳細は、「ドラッグアンドドロップ」(113ページ)を参照してください。

キーボード

キーボードの主な用途は文字の入力です。またキーボードは項目間の移動にも用いられることがありますが、それはあくまでマウスの代用であるべきです。マウスの代わりにキーボードを用いるための詳細は、「キーボードフォーカスと移動」(101ページ)を参照してください。

重要:このセクションの表に挙げられている、キーの組み合わせのいずれかを、これらの表に明示されているもの以外のコマンドに割り当てることは避けてください。例えあなたのアプリケーションがここに示されるキーボード同義操作のすべてに対応していないとしても、このセクションで明示されているものと競合するコマンドに未使用の組み合わせを割り当ててはいけません。

特定のキーの機能

キーには四つの種類があります。文字キー、修飾キー、矢印キー、ファンクションキーです。文字キーはコンピュータに文字を送ります。ユーザが修飾キーを押している間は、押された文字キーの意味やマウス動作の意味が変化します。

注:ここではどのキーボードにも存在するキーのすべてを説明しません。ユーザがある作業を達成するための唯一の方法として、特定のキーに依存してはいけません。あなたはキーボードが(あったとして)コンピュータに接続されているかどうかについて何も仮定することはできません。

文字キー

文字キーには字、数字、句読点、スペースバー、そして印刷されない文字—Tab、Enter、Return、Delete(またはBackspace)、Clear、Esc(Escape)が含まれます。あなたのアプリケーションがこれらのキーを一貫して使用することは必須事項です。

スペースバー

文字列の中で、スペースバーを押すことで文字の間に空白を入力します。

フルキーボードアクセスが作動中のとき、スペースバーを押すことで、現在のキーボードナビゲーションのフォーカスがある項目を選択します(マウスボタンをクリックすることの同義操作)。

Tab

文字列志向のアプリケーションでは、Tabキーは挿入ポイントを次のタブストップまで移動させます。

他の文脈では、Tabは進むという合図になります。つまり「ある順序において次の項目へ移動する」ことを意味します。「次の項目」としては表のセルやダイアログの文字列入力欄が該当します。

Shift-Tabは逆方向へ移動します。

Tabを押すことでフォーカスが次の項目へ移動する前にデータの入力を発生させることができます。

Tabキーによる移動についての詳細は、「キーボードフォーカスと移動」(101ページ)を参照してください。

Enter

大半のアプリケーションは、ユーザが入力した情報をすぐに文書に加えます。けれども、いくつかの場合では、アプリケーションは情報を処理する前に、情報の集合の全体が利用可能になるまで待たなければならないことがあります。

Enterキーは、ユーザが文字列入力欄のような、文書の特定の領域で情報を入力し終えたということをアプリケーションに伝えます。ユーザが文字列文書に文字列を入力している間にEnterを押しても効果はありません。

もしダイアログにデフォルトボタンが設定されていれば、Enter(またはReturn)を押すことはデフォルトボタンをクリックすることと同じです。

Return

文字列において、Returnキーはキャリッジリターン(ラインブレーク)を挿入して、挿入ポイントを次の行の先頭へ移動します。

配列では、Returnキーは(タイプライターのキャリッジリターンのように)一段下の左端の欄へ移動する合図となります。

Tabと同様、Returnを押すことでフォーカスが次の項目へ移動する前にデータの入力を発生させることができます。

もしダイアログにデフォルトボタンが設定されていれば、Return(またはEnter)を押すことはデフォルトボタンをクリックすることと同じです。

Delete(もしくはBackspace)

一般に、ある項目が選択されていれば、Delete(もしくはBackspace)を押すことで選択範囲をクリップボードに置かずに取り除きます。何も選択されていなければ、Deleteを押すことで挿入ポイントの直前の文字をクリップボードに置かずに取り除きます。

Deleteキーは編集メニューの「削除」コマンドと同じ効果を持ちます。

注:Deleteキーは挿入ポイントの次の文字を取り除くForward Delete(Fwd Del)キー(Delと刻印されている)とは異なります。「Forward Delete(Fwd Del)」(97ページ)を参照してください。【ああややこしい】

Optionキーは削除を次の意味単位(単語といった)まで広げることができます。

Commandキーは削除行為をOptionキーが対応する範囲のさらに次の意味単位まで広げることができます。

文字列アプリケーションに推奨されるキーの組み合わせは、直前の単語を削除するCommand-Deleteと、次の単語を削除するCommand-Fwd Delです。

Option-Deleteは挿入ポイントを含む単語、もしくは単語の挿入ポイントの左までの部分のどちらかを、あなたのアプリケーションでは何がもっとも有意義であるかに応じて削除することができます。

Option-Fwd Delは単語の挿入ポイントの右までの部分を削除することができます。

Clear

Clearキーは編集メニューの「削除」コマンドと同じ効果を持ちます。選択範囲をクリップボードに置かずに取り除きます。すべてのキーボードにClearキーがあるわけではないので、あなたのアプリケーションでこのキーを使用することを必須としてはいけません。

Esc(Escape)

Esc(Escape)キーは基本的に「ここから出してくれ」という意味です。このキーは特定の文脈において特別な意味を持ちます。

ユーザはEscを以下の状況で押すことができます…

  • ダイアログにおいて、「キャンセル」をクリックする代わりとして
  • 進行中の操作(印刷といった)を停止させるため、Command-ピリオドを押す代わりとして
  • ファイルや一覧の項目の名前の変更を取り消すために
  • 進行中のドラッグを取り消すために

Escを押すことによって、ユーザが再び入るために大きな時間や手間を要する操作から抜けることは、決して起こるべきではありません。ユーザが長い処理の間にEscを押したときは、確認ダイアログを表示して、うっかりキーが押されたのではないことを確かめてください。

修飾キー

修飾キーは、他のキー押下やマウスクリックの解釈のされ方を変化させます。あなたはこれらのキー—Shift、Caps Lock、Option、Command、Control—をここで説明される通りに、一貫して使用する必要があります。

Shift

文字キーと同時に押されたとき、Shiftキーはアルファベットの大文字、もしくはキーの刻印にある上側の記号を生じます。

また、Shiftキーはマウスと共に用いて選択範囲を拡張したり、画像処理アプリケーションで移動のしかたを制限したりします。たとえば、いくつかのアプリケーションでは長方形ツールを用いて正方形を描く間、Shiftを押し続けます。

Caps Lock

有効化されているとき、Caps LockキーはアルファベットのキーにはShiftキーと同じ効果を持ちますが、非アルファベットキーには効果を及ぼしません。Caps Lockキーが押された状態のとき、ユーザは非アルファベットキーの上側の文字を打つためにはShiftを押す必要があります。

Option

他のキーと共に使用されたとき、Optionキーは特殊記号を生じます。ユーザがシステム環境設定の言語環境ペインの入力メニューに加えることができる、「キーボードビューア」はどのキーがどの記号を生み出すのかを表示します。

またOptionキーはマウスと共に用いてクリックやドラッグの効果を変化させます。たとえば、いくつかのアプリケーションは、あるオブジェクトのコピーを作成するために、そのオブジェクトをドラッグしている間、Optionを押します。

Command

ほとんどのキーボードでは、Commandキーは四葉のクローバーの記号(【井のような記号】)とアップルのロゴ(【りんごのマーク】)が刻印されています。

文字キーと同時にCommandキーを押すことは、そのキーは文字ではなく、コマンドとして解釈するためのものであるということをアプリケーションに伝えます。またマウスと共に用いることでクリックやドラッグの効果を変化させます。Commandキーを用いたキーの組み合わせは、「キーボードショートカット」(98ページ)で説明します。

Control

Controlキーは他のキーの機能を変化させるために用いられます。マウスクリックとの組み合わせは、コンテキストメニューを表示します(「コンテキストメニュー」(173ページ)を参照)。

Control-F7は一時的にウインドウやダイアログでの、デフォルトナビゲーションか、フルキーボードナビゲーションかのユーザの環境設定を上書きします。詳細は、「キーボードフォーカスと移動」(101ページ)を参照してください。

Cocoa:Cocoaアプリケーションでは、ControlキーはCocoa Events & Other Input DocumentationのEvent Handling Programming Guide for Cocoaの“Text System Defaults and Key Bindings”で説明される、付加的に定義されたふるまいを持ちます。
【emacs風キーバインドのことだろうか?未確認】

矢印キー

アップルのキーボードは上矢印、下矢印、左矢印、右矢印の四つの矢印キーを持ちます。これらは単独でも、他のキーとの組み合わせでも用いることができます。

矢印キーを用いたキーボード連携は、マウス動作の短縮形としてのみ用いられるべきです。同じ動作を行うための方法として、キーボード連携のみを実装し、マウスを用いたやり方を提供しないのは決して適切ではありません。

矢印キーの適切な用途

あなたは矢印キーをこれらの方法で使用できます…

  • 文字列において、矢印キーは挿入ポイントを移動します。

    Shiftキーと共に使用したときは、選択範囲を広げたり縮めたりします。

    もしユーザが選択範囲を作成し、次に右矢印または左矢印キーを押すと、選択範囲は長さ0に縮小し、挿入ポイントは選択範囲の右端または左端【押した矢印キーの方向】に移動します。

  • 一覧において、矢印キーは選択範囲を変更します。
  • 画像処理アプリケーションにおいて、矢印キーは選択されたオブジェクトを可能な限り最小の増幅(1ピクセルまたは1マス単位)で移動させるために使用できます。
  • フルキーボードアクセスモードにおいて、矢印キーはコントロール内の値の間を移動します。

矢印キーを使用してはいけないのは…

  • 画面上でマウスポインタを移動させるため
  • スクロールバーの機能を複製するため
挿入ポイントを移動する

文字列文書において挿入ポイントが垂直に移動するとき、その水平位置は文字ではなく画面上のピクセルに対して保たれます(言い換えると、フォントの種類と大きさによっては、挿入ポイントはある行の25文字目から、次の行の50文字目に移動してもかまいません)。挿入ポイントが行から行へと移動する際は、最も近い文字の境界へわずかに左右に移動することで、できるだけ元の水平位置の近くを保ってください。

OptionとCommandキーは、矢印キーの意味を変化させるキーとして用いられます。一般的な規則どおり、矢印キー単独の場合と比較して、Optionキーは意味単位の大きさを一つ増やし、Commandキーはさらに意味単位を広げます。アプリケーションは意味単位が何であるかを決定します。ワードプロセッサでは、典型的な単位は文字、単語、行、段落、文書です。スプレッドシートでは、基本となる意味単位はセルとなるでしょう。

表 7-1は文字列文書や入力欄における矢印キーの適切なふるまいを説明しています。いくつかの場合では、示されるキーが連続で一度以上押されたときに何が起こるかをふるまいとして説明しています。

表 7-1 矢印キーを用いた挿入ポイントの移動

キー 挿入ポイントの移動
右矢印 一文字右へ
左矢印 一文字左へ
上矢印 上の行の、同じ水平位置にもっとも近い文字境界へ
下矢印 下の行の、同じ水平位置にもっとも近い文字境界へ
Option-右矢印 現在の単語の終わりへ、さらに次の単語の終わりへ
Option-左矢印 現在の単語の始まりへ、さらに前の単語の始まりへ
Option-上矢印 現在の段落の始まりへ、さらに前の段落の始まりへ
Option-下矢印 現在の段落の終わりへ、さらに次の段落の終わりへ
(もし段落がひとつであれば、段落の後の空行へは移動しない)
Command-右矢印 次の意味単位、一般的には現在の行の終わりへ、さらに次の行の終わりへ
Command-左矢印 前の意味単位、一般的には現在の行の始まりへ、さらに前の単位へ
Commando-上矢印 上方向の次の意味単位、一般的には書類の始まりへ
Command-下矢印 下方向の次の意味単位、一般的には書類の終わりへ

注:非ローマン筆記形式のために、Command-左矢印とCommand-右矢印はキーボード入力方向を切り替えるために予約されています。

Shiftと矢印キーで文字列選択範囲を広げる

表 7-2はShiftと矢印キーを押すことで文字列選択範囲を広げる方法を説明しています。

表 7-2 Shiftと矢印キーを用いて文字列選択範囲を広げる

キー 選択範囲を広げる
Shift-右矢印 1文字右へ
Shift-左矢印 1文字左へ
Shift-上矢印 上の行の、同じ水平位置にもっとも近い文字境界へ
Shift-下矢印 下の行の、同じ水平位置にもっとも近い文字境界へ
Shift-Option-右矢印 現在の単語の終わりへ、さらに次の単語の終わりへ
Shift-Option-左矢印 現在の単語の始まりへ、さらに前の単語の始まりへ
Shift-Option-上矢印 現在の段落の始まりへ、さらに隣の段落の始まりへ
Shift-Option-下矢印 現在の段落の終わりへ、さらに隣のの段落の終わりへ
(カット、コピー、ペースト操作において、段落の間の空行も含む)
Command-Shift-右矢印 次の意味単位、一般的には現在の行の終わりへ
Command-Shift-左矢印 前の意味単位、一般的には現在の行の始まりへ
Commando-Shift-上矢印 上方向の次の意味単位、一般的には書類の始まりへ
Command-Shift-下矢印 下方向の次の意味単位、一般的には書類の終わりへ

選択されている文字列がなければ、選択範囲の拡張は挿入ポイントから始まります。

もし文字列がドラッグによって選択されていたら、選択範囲の拡張は選択範囲の境界から始まります。

たとえば、「stop time」という語句において、ユーザが挿入ポイントを「s」と「t」の間に置いて、Shift-Option-右矢印を押すと、「top」が選択されます。けれども、もしユーザがダブルクリックで単語全体を選択しており、次に選択範囲を左か上に広げたら、挿入ポイントは「s」の前にあるかのようにふるまいます。もしユーザが選択範囲を右か下に広げたら、挿入ポイントは「p」と単語の後の空白の間にあるかのようにふるまいます。

選択の方向を逆転することにより、適切な単位で選択を解除します。前の例で言えば、単語「stop」が選択されていて、ユーザがShift-Option-右矢印を押したら、「stop time」が選択され、次にShift-Option-左矢印を押すと、「time」が選択解除され、「stop」は選択されたままとなります。

「空の」文書で挿入ポイントを移動する

各種の文字列編集プログラムは空の文書をさまざまな方法で扱います。空の文書は文字を含まないという仮定は、白紙ウインドウの下のほうをクリックした場合に挿入ポイントを天辺に出現させることを引き起こします。このような状況において、下矢印は挿入ポイントを空白の部分へ移動させることはできません。なぜならそこには文字がないからです。

他のアプリケーションは空の文書を空白文字の1ページとして扱い、空白ウインドウの下のほうをクリックした場合には挿入ポイントをユーザのクリックしたところに置き、空白を上書きしながらそこに文字を打たせます。

あなたのアプリケーションについてこれらのやりかたのどちらを選ぶにせよ、大切なのは終始一貫していることです。

ファンクションキー

デスクトップ型Macintoshのキーボードには15個の汎用ファンクションキーがあります(F1からF15)。

また、デスクトップ型Macintoshのキーボードは後述する六つの標準的なふるまいを持つ専用ファンクションキーを提供します。

すべてのMacintoshコンピュータにすべてのファンクションキーがあるわけではないので、必須のキーボードショートカットをこれらのキーに依存してはいけません。たとえば、ポータブルコンピュータは通常15個ではなく12個の汎用ファンクションキー(F1からF12)を持ち、HelpやForward Deleteキーを持ちません。

Help

Helpキーを押すことで、ヘルプビューア内のアプリケーションのヘルプを呼び出すことができます。【このキーがない場合に備えて、】Command-Shift-/(しばしばCommand-?に短縮される)のキーの組み合わせは、常にヘルプビューア内のアプリケーションのヘルプを表示する必要があります。

Forward Delete(Fwd Del)

Forward Delete(Delと刻印されている)キーは挿入ポイントの後にある文字を削除し、取り除かれた文字以降にあるものすべてをひとつ手前にずらします。この作用は文字やその選択範囲の先頭を「吸い込む」あいだ、挿入ポイントをその場に留めておきます。

Fwd Delが押されたときに何かが選択されていたら、Delete(Backspace)を押したときや、編集メニューの「削除」を選択したのと同じ効果を持ちます。

あなたは「挿入ポイントを移動する」(94ページ)で説明されているように、次のより長い意味単位を削除するためのOption-Fwd Delに対応することができますが、一度にひとつ以上の単語を削除することはお勧めできません。ユーザは自分が削除しようとしているものをよりコントロールできるように、大量の文字列を選択するためにはマウスを用いることを好みます。

Home、End

Homeキーを押すことはスクローラを上端及び左端に動かすことの同義操作です。たとえば、文字列文書ではHomeを押すと文書の先頭までスクロールし、スプレッドシートではスプレッドシートの先頭、または行の先頭までスクロールすることができます。またこれらのキーは一覧の上端や下端を表示するために、スクロールする一覧でも動作する必要があります。

EndはHomeの反対です。文書の終わりまでスクロールします。

既に文書の始まりか終わりに達していたら、HomeやEndを押すとシステム警告音を発します。

HomeやEndを押すことは挿入ポイントや選択されたデータの位置に一切影響を与えません。

Page Up、Page Down

Page UpまたはPage Downを押すことで、文書を1ページ上または下にスクロールします。

ウインドウにページ全体を表示できない場合は、これらのキーはまず次のページにスクロールする前に、ページの先頭や末尾が見えるまでは上下に連続でスクロールします。

またこれらのキーはスクロールする一覧でも動作する必要があります。

文書の始まりか、終わりに達したら、Page UpやPage Downを押すことでシステム警告音を発します。

Page UpやPage Downを押すことは挿入ポイントや選択されたデータの位置に一切影響を与えません。

キーボードショートカット

キーボードショートカットはMac OS X全体を通して使用され、ユーザに特定の動作を開始するためのすばやい手段を提供します。

その多くはオペレーティングシステムによって提供され、一般的な利便性の要求とアクセス性の要求の双方を合致させます。そのため、オペレーティングシステムは特定のキーとキーボード連携をこの用途のために予約しています。

表 7-3と表 7-4に挙げられているこれらの組み合わせは、すべてのアプリケーションに影響するので、他のいかなる機能のためにも使用すべきではありません。その他の【予約された】キーボードショートカットはMac OS Xのユニバーサルアクセス機能によって使用されるため、避ける必要があります。

システムに予約されたキーボードショートカットにくわえて、保存【Save】のためのCommand-Sや、終了【Quit】のためのCommand-Qといった、十分に定着した意味を持つキーボードショートカットが多数存在しています。

これらのキーボードショートカットが利用できて、これらを用いるどのアプリケーションでも同じ事柄を意味している、ということを想定した、Mac OS Xのアプリケーションを実行することにユーザは慣れています。

あるアプリケーションがこれらのショートカットを上書きして、たとえばCommand-Qを終了【Quit】ではなくクエリー【Query】コマンドのために使用すれば、ユーザに無用な混乱と苛立ちをもたらす危険を冒します。

これらの一般的なキーボードショートカットはシステムには予約されていませんが、関連するコマンドを提供するアプリケーションに対して強く推奨されます。

もしあなたのアプリケーションがこれらの一般的なコマンドの全部を提供しないのであれば、これらのキーボードショートカットを上書きして、あなたのアプリケーションが実装する別のコマンドに関連付けることは決してしないでください。

Mac OS Xでのシステム予約、及び一般的に使用されるキーボードショートカットの両方についての完全な一覧は、「キーボードショートカットクイックリファレンス」(309ページ)で提供しています。

また、あなたのアプリケーションで頻繁に使用されるコマンドのために、あなたがキーボードショートカットを定義することもできます。適切なショートカットの作成のしかたについてのガイドラインは、「独自のキーボードショートカットを作成する」(99ページ)にあります。本書のその他のセクションでは、あなたのアプリケーションで一貫した、親しみのあるユーザ体験をあなたが提供する上で役立つように、適宜、推奨されるキーボードショートカットを挙げています。

予約されたキーボードショートカット

表 7-3のキー及びキーの組み合わせは、表に挙がっている動作以外のために使用しないでください。

表 7-3 オペレーティングシステムによって予約されているキーボードショートカット

キー 動作
Esc 現在の動作の取り消し
Command-Tab 直前に使用した開いているアプリケーションを活性化する
Command-Shift-Tab 最も以前に使用した開いているアプリケーションを前面にする
Command-Option-D Dockを表示する、もしくは隠す
Command-H 活性のアプリケーションを隠す
Command-Option-H 他のアプリケーションを隠す(活性のもの以外全て)
Command-Shift-Q ログアウト
Command-Shift-Option-Q 確認無しでログアウト
Command-Shift-Option-Control-Q 確認無しで強制ログアウト
キー 動作
Command-スペース Spotlight検索欄を表示する、もしくは隠す
Command-Option-Esc 強制終了ダイアログを開く
Command-F5 VoiceOverのオンとオフを切り替える
Control-F1 フルキーボードナビゲーションのオンとオフを切り替える
Control-F7 ウインドウとダイアログにおけるキーボードナビゲーションの切り替え
F9 全ての開いているウインドウを並べて表示する、もしくはその解除
【expose:全てのウインドウ】
F10 現在のアプリケーションにおいて全ての開いているウインドウを並べて表示する、もしくはその解除
【expose:現在のアプリケーション】
F11 全ての開いているウインドウを隠す、もしくは表示する
【expose:デスクトップを表示】
F12 Dashboardを表示する、もしくは隠す

また、Mac OS Xはユーザがウインドウやダイアログのあちこちを移動することができる、フルキーボードアクセスモードを提供します。このモードが活性のとき、他のキーボード連携はデフォルト設定によって予約されることがあります。(Accessibility Overviewを参照)

重要:あなたのアプリケーションは、Mac OS Xにおけるキーボードフォーカスと移動の実装を上書きすべきではありません。これらの機能は特別な要求を持つユーザへの機能性を提供します。

表 7-4はシステムソフトウェアの各国語化バージョン、各国語化されたキーボード、キーボード配列、インプットメソッドでの使用のために予約されている、いくつかのキーの組み合わせを示しています。これらのキーの組み合わせは、メニューコマンドとは直接一致していません。

表 7-4 国際的なシステムのために予約されているキーの組み合わせ

キー 動作
Command-スペース 有効なスクリプトシステムの循環切り替え
Command-Option-スペース あるスクリプト内でキーボード配列とインプットメソッドを循環切り替え
Command-修飾キー-スペース アップルにより予約
Command-Right Arrow キーボード配列をローマンスクリプトの現在の配列に変更
Command-Left Arrow キーボード配列をシステムスクリプトの現在の配列に変更
独自のキーボードショートカットを作成する

アップルは将来他のキーボードショートカットを予約するかもしれないので、あなた独自のものを追加することに対しては慎重になりましょう。

あなたがキーボードショートカットを作成する検討に入る前に、ユーザが既に知っているショートカットを上書きすることを避けられるよう、必ず「キーボードショートカットクイックリファレンス」(309ページ)に挙げられているキーボードショートカットを確認しましょう。

また、あなたのアプリケーションと同じユーザ視聴者を目標としている他のアプリケーションで使われているキーボードショートカットを調査することを検討するのもよいでしょう。もしあなたのユーザがこうした他のアプリケーションに慣れ親しんでいそうであれば、彼らが使い慣れているショートカットを上書きするのは避けるように心がけたほうがよいでしょう。

あなたはすべてのコマンドに対してではなく、頻繁に使用されるコマンドに対してのみキーボードショートカットを提供すべきです。ユーザにあまりにも多くのキーボードショートカットを提示することで、ユーザを圧倒してしまったり、アプリケーションのユーザインタフェースが難解そうに思われることがあります。

キーボードによる同義操作のための主な修飾キーとしてはCommandキーを使用しましょう。

より一般的な別のコマンドを補足するようなコマンドについては、Shiftを加えることができます。

以下の表はShiftを用いた推奨されるキーボードによる同義操作と、これらが補足しているコマンドとの関連を示しています。

表 7-5 他のコマンドを補足するShiftを用いた推奨されるキーボードショートカット

キー コマンド 補足されるコマンド
Command-Shift-A すべてを選択解除 Command-A(すべてを選択)
Command-Shift-G 前を検索 Command-G(次を検索)
Command-Shift-P ページ設定 Command-P(プリント)
Command-Shift-S 別名で保存 Command-S(保存)
Command-Shift-V 形式を指定してペースト(例:引用文として貼り付け) Command-V(ペースト)
Command-Shift-Z やり直し Command-Z(取り消し)

注:Command-Shift-Zが「やり直し」のために用いられるのは、「取り消し」と「やり直し」が別々のコマンド(Command-Zを切り替えて用いるのではなく)であった場合だけです。

もし第三の、CommandとCommand-Shiftを用いるコマンドの組み合わせに関連する、あまり一般的ではないコマンドがあれば、そのコマンドのキーボード同義操作のためにCommand-Optionを使用することができます。

表 7-6の例では、「すべてを保存」はユーザがOptionキーを押したときに(単独のメニュー項目ではなく)「保存」の代わりに現れる、動的メニュー項目(「メニュー項目に名前をつける」(151ページ)を参照)とすることができます。

このような組み合わせを使用するのは極めてまれな場合に限るようにしてください。

表 7-6 Optionを用いて既にCommandを使用しているショートカットを変化させる例

キー コマンド
Command-S 保存
Command-Shift-S 別名で保存
Command-Option-S 全て保存

また、Optionは簡便さや、パワーユーザ向け機能のキーボードショートカットにも使用してください。たとえば、Finderはすべてのウインドウを閉じるためにCommand-Option-Wを使用し、すべてのウインドウをしまうためにCommand-Option-Mを使用します。

Controlキーは、Cocoaの文字列入力欄でEmacs風キーバインドがよく使われているのと同様に、ユニバーサルアクセス機能のいくつかで既に使用されているため、修飾キーとして使用するのは必要なときだけにしなければいけません。

他の言語では特定の文字を生成するために修飾キーを必要とすることがあることを覚えておきましょう。たとえばフランス語キーボードでは、Option-5は「{」という文字を生成します。

あなたはCommandキーを修飾キーとして安全に使用することができますが、Commandと、すべてのキーボードでは利用できない文字に修飾を加える組み合わせは避けてください。

もしあなたがCommandキーに加えて修飾キーを使用しなければならないのであれば、アルファベット(aからz)だけを使用するようにしてください。

カスタムキーボードショートカットを追加するときは、関連のない機能を持つ既存のショートカットに修飾キー(OptionやShiftといった)を加えたショートカットは避けるようにしましょう。

たとえば、「取り消し」に関係のないコマンドのキーボードショートカットとしてShift-Command-Zを使用してはいけません。このショートカットを「やり直し」のために使用することは適切ですが、「計算する」や「メールの確認」のような用途に使用すると混乱します。

もし、あなたがあるコマンドのために重複せず、使いやすいキーボードショートカットを見つけられないのであれば、あきらめましょう。どのみちユーザにとって複数の修飾キーを押すことは難しいはずだという点を心に留めて置いてください。

ユーザ定義キーボードショートカット

ユーザはあなたのアプリケーションのキーボードショートカットとシステムのいくつかをキーボードとマウス環境設定で変更することができます。

ユーザがキーボードショートカットを再配置できたとしても、あなたは本書を通して推奨されるショートカットにこだわる必要があります。そうすることはより一貫したユーザ体験を提供します。

予約された組み合わせ、及び推奨される組み合わせのすべての一覧は、「キーボードショートカットクイックリファレンス」(309ページ)を参照してください。

キーボードフォーカスと移動

デフォルトのキーボードアクセスモードでは、フォーカスはキーボード入力を受け取る入力欄の間だけを移動します。またMac OS Xはユーザがウインドウとダイアログの全体を移動することができるフルキーボードアクセスモードの選択肢も提供します。

このセクションではデフォルトのキーボードアクセスモードについて述べています。フルキーボードアクセスモードの情報については、Accessibility Overviewを参照してください。

マウスを用いることが快適ではない、難しい、不可能であるといったときには、ユーザはキーボードを用いて画面上のフォーカス(強調表示)を文字列入力欄や、先行入力【*1】に対応した一覧ボックス、スクロールする一覧、カラム【列】表示、リスト【一覧】表示に移動させることができます。ローマンシステムでは、フォーカスは常にキーボード入力を受け付ける最初の入力欄から始まり、左上から右下へと横書きの経路に従います

フォーカスは図 7-1と図 7-2に示すとおり、アピアランスの色(アクアまたはグラファイト)の枠で示されます。

【*1 type-ahead:この後のセクションで説明される先行入力(type-ahead)はキー入力がキューに入ることを指しているが、ここでのtype-aheadはFinderなどでファイル名の先頭数文字を入力すると該当するアイコンにフォーカスが移動する機能を指しているものと思われる。多分。】

図 7-1 文字列入力欄のためのキーボードフォーカス

図 7-2 スクロールする一覧のためのキーボードフォーカス

リスト表示とカラム表示では、選択された項目は列の幅もしくは行の高さ全体が強調表示される必要があります。

カラム表示では、選択された項目は暗く強調表示され、その親項目は明るく強調表示されます。ウインドウが非活性になると、その中の選択範囲のすべては明るい強調表示色となる必要があります。

図 7-3 子項目の第1強調表示色、親項目の第2色

第2強調表示色
第1強調表示色
フォーカス枠

タブキーを押すことでコントロール間を移動します。Shift-Tabは逆方向に移動します。

矢印キーはコントロール内の移動を行います。

リスト表示では、右矢印と左矢印キーは開示三角形を開閉します。

先行入力とキーリピート

ユーザがコンピュータの処理できる速度より早く入力したときや、コンピュータがキー操作を処理できないとき、キー操作は後で処理するためにキュー【待ち行列】に入ります。このキュー処理は先行入力と呼ばれています。

キューに入れることができるキー操作の数には限界(コンピュータによって変わります)がありますが、アプリケーションが長い処理を行っている間にユーザが入力する場合を除けば、普通はそこまで達することはありません。

文字キーが一定の期間押されたままのとき、自動的に繰り返しが始まります。キーリピートと呼ばれるこの機能は、ユーザがキーボードとマウス環境設定で調節することができます。

アプリケーションはキー操作が生じたのがキーリピートによるものか、同じキーが何度も押されたためかを伝えることができます。

あなたのアプリケーションはキーリピートによるキー操作を無視できます。Commandキーとの組み合わせで始まるキーボードショートカットはリピートを無視する必要があるでしょう。

キーリピートはアプリケーションがキーボード入力を受け付ける用意があるときのみ作動します。先行入力の間は機能しません。

選択する

あるオブジェクト上にある操作を実行する前には、ユーザは他のオブジェクトから区別するために、それを選択する必要があります。何かを選択したことを示す即時の視覚的な反応は常に存在します。

選択することがオブジェクト自体を変化させることは決してありません。そして選択は常に選択範囲の外側をクリックすることで取り消すことができます。

ある何者かが、どのようにして選択されるのかは、それが何であるかによります。

選択されたときにそれぞれ異なる方法で扱われる、3つの種類のいずれかにオブジェクトを大別することは有効です。

  • 文字列。アプリケーションは特定の文脈にまとまって現れる文字列を、すべて文字列のブロック—1次元の文字の列として捉えます。

    文字列のブロックの範囲はダイアログの中における単独の入力欄から、ワードプロセッサにおける文書全体にまで及びます。

    どこに現れるかに関わらず、文字列は同じ方法で編集されます。

  • 入力欄の配列。入力欄の1次元配列は一覧であり、2次元配列は表となります。それぞれの入力欄は文字列や画像といった情報を含んでいます。
  • 画像。本項の趣旨に関していえば、画像、もしくは写真は、個々に選択できる別々のオブジェクトです。

以下のセクションでは選択するための一般的なやりかたと、文字列、配列、画像に適用される特定のやりかたを述べています。

選択のしかた

このセクションは選択の技法を説明します。

クリックによる選択

オブジェクトを選択するためのもっとも素直なやりかたは、それを一度クリックすることです。たとえば、アイコンは、Finderにおいてこの方法で選択されます。

図 7-4 単一項目の選択

ドラッグによる選択

ユーザはこの手順に従って複数オブジェクトの範囲を選択することができます…

  1. ユーザは範囲の1方の角にポインタを配置し、マウスボタンを押します。この位置を範囲のアンカーポイント【基点】と呼びます。
  2. マウスボタンを離さずに、ユーザはポインタを任意の方向に移動します。ポインタの移動に応じて、視覚的な反応が、マウスボタンを離したときに選択されるオブジェクトを示します。

    文字列と配列については、選択された領域は連続的に強調表示されます。

    画像の場合は、点線の枠が拡大/縮小して選択された領域を表します。

    適切であれば、ウインドウを越えて選択範囲を広げられるように表示をスクロールさせる必要があります。

  3. 必要な範囲を選択できたら、ユーザはマウスボタンを離します。このボタンが離された地点は範囲のアクティブエンド【活性終点】と呼ばれます。

図 7-5 範囲の選択

選択範囲の変更

ユーザはShiftキーを押しながらマウスボタンをクリックすることで選択範囲を広げることができます。この動作をShift-クリックと呼びます。

文字列において、ユーザが既に選択されている範囲の内側でShift-クリックすると、新しい範囲は古い範囲よりも小さくなります。

配列において、Shift-クリックは選択された範囲を広げるか、選択範囲を現在のセルからユーザがShift-クリックしたところへ移動させることができます。

Shift-クリックを用いた連続的な選択範囲の拡張には2つの形式が存在します。追加形式では、新しい文字列は現在の選択範囲に追加されます。固定位置形式では、ユーザは選択範囲を挿入ポイントの両側に広げることができます。図 7-6は両者の形式における連続的な段階の結果を図示しています。

図 7-6 追加形式と固定位置形式におけるShift-クリック

手順 追加形式 固定位置形式
1.ユーザはクリックすることで挿入ポイントを単語「attention」の前に置きます。
【"|"でキャレットを表しています。】
Pay no |attention to the
man behind the curtain.
Pay no |attention to the
man behind the curtain.
2.ユーザは単語「behind」の後ろをShift-クリックして選択対象を右に広げます。 Pay no attention to the
man behind
the curtain.
Pay no attention to the
man behind
the curtain.
3.ユーザは単語「Pay」の前をShift-クリックして選択対象を左に広げます。 Pay no attention to the
man behind
the curtain.
Pay no attention to the
man behind the curtain.
4.ユーザは文章の終わりをShift-クリックして選択対象を右に広げます。 Pay no attention to the
man behind the curtain.
Pay no attention to the
man behind the curtain.

あなたのアプリケーションでどちらの形式を使用するかを検討する際、追加形式はユーザに選択範囲をどちらの方向にも広げさせることで、より高い柔軟性を提供するということを心に留めて置いてください。

Shift-クリックは結果として、連続した選択範囲となる必要があります—古いアンカーポイントと、新しいアクティブエンドの間のすべてを含むように、選択範囲は広げられます。Command-クリックは不連続の選択範囲となる必要があります。不連続の選択範囲では、ユーザは選択済みのオブジェクトに隣接していないオブジェクトを追加することで、選択範囲を広げることができ、現在の選択範囲と新しいオブジェクトの間にあるオブジェクトは、選択範囲に含まれません。

図 7-7 不連続の選択範囲

配列や文字列では、Shift-クリックは連続した選択範囲を広げ、Commandキーを押しながらクリックすることでユーザは不連続の選択範囲を作ることができます。Command-クリックするたびに新しいオブジェクトが既存の選択範囲に追加されます。もし、Command-クリックで選択されたオブジェクトのひとつが選択範囲の既存の部分であれば、追加される代わりに選択範囲から取り除かれます。

図 7-8 配列の中の不連続の選択範囲

A B C D
1
2
3
4
5

1.セルB2、B3、C2、C3が選択されています。

A B C D
1
2
3
4
5

2.ユーザはCommandキーを押しながらD5をクリックします。

A B C D
1
2
3
4
5

3.ユーザはCommandキーを押しながらC3をクリックします。

すべてのアプリケーションが不連続の選択範囲に対応しているわけではありません。そしてこれに対応することによってユーザが行うことのできる操作を制限することがあります。たとえば、ワードプロセッサは不連続の選択範囲を作った後で、ユーザにフォントを選択させることができますが、ユーザの入力で文字を置き換えることはさせません。なぜなら、選択範囲のどの部分の文字が置き換わるかが明白ではないからです。

文字列における選択範囲

文字列のブロックとは文字の列のことです。文字列の選択範囲は0文字からブロック全体までの長さをとる、この列の部分列です。

挿入ポイント(長さ0の文字列選択範囲)は、ユーザが入力を始めたときに文字列が挿入される位置、もしくはクリップボードの内容が貼り付けられる位置を示しています。ユーザは文字列内のどこかをクリックすることで挿入ポイントの場所を定めます。挿入ポイントは最も近い文字境界に現れます。もしユーザが行末の文字のどこか右をクリックすれば、挿入ポイントは行末の文字のすぐ後ろに現れます。もしユーザが行頭の文字の左をクリックしたら、挿入ポイントは行頭の文字のすぐ前に現れます。

ウインドウ内の選択された文字列は、ユーザがアピアランス環境設定で選択した色で強調表示されます。ウインドウが非活性となったとき、文字列は強調表示されたまま、ただし元の強調表示色の1パーセントである、第2【強調表示】色となる必要があります。

CarbonとCocoaは共に、他のユーザインタフェースの重要な色と同様に、現在の強調表示色を得る方法を提供します。あなたのアプリケーションは、あなたが作成したいかなるカスタムコントロールにおいても、特定の色の値をハードコーディングするのではなく、これらの定義色を使用する必要があります。

マウスで選択する

ユーザはドラッグによって文字列の範囲を選択することができます。範囲は文字、単語、行、あるいは段落など、アプリケーションが定義した要素から構成されます。

文字列入力欄では、クリックは以下の動作を行う必要があります…

  • シングルクリックは文字列内のポインタの指す場所に挿入ポイントを設置します。
  • 単語の中でのダブルクリックはその単語を選択します。選択範囲は「賢い」ふるまいを提供する必要があります。たとえば、もしユーザが選択された単語を削除したら、単語の後ろの空白も削除されるべきです。
  • 空白でのダブルクリックはその空白を選択します。
  • トリプルクリックはアプリケーションによる定義に従って、次の論理的な単位を選択します。あるワードプロセッサ文書において、単語の中でのトリプルクリックはその単語を含む段落を選択します。
単語を構成するもの

以下の単語の定義は合衆国、カナダ、その他の国々で適用されます。多くの国々で、その地方の数字、日付、通貨の形式を反映して定義は異なります。以下の一覧に記載されていない文字をダブルクリックすることは、結果としてその文字だけの選択範囲となります。

単語とは以下のいずれかの文字を含む、連続した列として定義されています…

  • 数字
  • ハードスペース【A nonbreaking space】(Option-スペースまたはCommand-スペース)
  • 通貨記号($、¢、£、¥)
  • パーセント記号【%】
  • 数字の間のコンマ【,】
  • 数字の前のピリオド【.】
  • 字、または数字の間のアポストロフィ【’】
  • ハイフン【-】、ただし半角ダッシュ【–,en dash】(Option-ハイフン)や、全角ダッシュ【—,em dash】(Shift-Option-ハイフン)は除く

単語の例を挙げます…

  • $123,456.78
  • shouldn’t
  • 3 1/2 (ハードスペースを用いる場合)
  • 0.5%

ひとつ以上の単語として扱われる文字列の例を挙げます…

  • 7/10/6
  • Blue cheese(標準スペース)
  • “Wow!”(引用符と感嘆符は単語の一部ではありません)

いくつかの文脈では—たとえば、プログラミング言語では—ユーザに対になった丸かっこ(もしくは大かっこや角かっこ)のどちらか一方をダブルクリックすることで、その間にある文字と同様に左右のかっこを共に選択できるようにするのも適切でしょう。これはユーザが「【」か「】」をダブルクリックすることで、

【x+y-(4*3)^(n.1)】

という式全体を選択できるということです。

矢印キーで文字列を選択する

「Shiftと矢印キーで文字列選択範囲を広げる」(95ページ)を参照してください。

スプレッドシートにおける選択範囲

単独の入力欄(セル)を選択するためには、ユーザはその中でクリックします。またユーザはTabやReturnキーで移動することでも入力欄を選択できます。

入力欄の内容の一部を選択するためには、ユーザはまず入力欄を選択し、次に一部分を選択するために再度クリックする必要があります。

ユーザは表の行や列をすばやく選択できなければいけません。たとえば、列見出しをクリックすることでその列を選択すべきです。また、表は不連続の入力欄を選択するためにCommand-クリックに対応することができます。

タブキーを押すことで、あなたのアプリケーションが決めた順番に入力欄を巡回し、Shift-Tabは逆方向に移動します。一般的には、順序は左から右へ、次に上から下です。最後の入力欄からTabを押すことで最初の入力欄を選択します。

もし特定の文脈において、行という概念が意味を成さないのであれば、ReturnキーはTabキーと同じ効果を持つ必要があります。

画像における選択範囲

画像オブジェクトの選択にはいくつかの慣習があります。このセクションは選択範囲の反応を表すための二つの方法を説明します。この他の状況では他の解決方法が求められるでしょう。

オブジェクト単位の画像文書は個別の画像オブジェクトの集合です。あるオブジェクトを選択するためには、ユーザはそれを1度クリックします。するとオブジェクトはユーザがそのオブジェクトを移動したり大きさを変更するためのハンドルと一緒に扱われます。

オブジェクト単位の画像文書では、ユーザはマウス単独か、マウスとキーボードの組み合わせで選択を行うことができます。ユーザは点線の矩形をドラッグして、そこに含まれるすべてのオブジェクトを選択することができます。矩形の輪郭の内側にあるのが一部分であったとしてもです。

また、ユーザは最初のオブジェクトを選択し、次にShift-クリックやCommand-クリックを用いて他のオブジェクトを選択することができます。もしオブジェクトに定義された順序があれば、Shift-クリックは連続した選択範囲となり、Command-クリックは不連続の選択範囲を提供する必要があります。定義された順番がなければ、どちらの動作も不連続の選択範囲となります。連続した選択範囲と不連続の選択範囲の例は、「選択のしかた」(103ページ)で示されます。

ビットマップ単位の画像文書—個別のオブジェクトというよりピクセルの連続—では、ユーザは選択ツールの内側に囲まれたピクセルの範囲を選択します。

文字列を編集する

文字列を選択するためのやりかたに加えて、文字列を編集するための標準的な方法がいくつかあります。

文字列を挿入する

文字列を挿入するためには、ユーザは文字列を挿入したいところをクリックして挿入ポイントを設置してから、入力を始めます。アプリケーションは新しい文字が加えられるたびに挿入ポイントを右へ(言語によっては左へ)移動します。

複数行の文字列ブロックを扱うアプリケーションは、ある行の終わりから次の行の始まりへ、単語の途中で切らずに自動的に文字列を連続させる、回り込み【ワードラップ】に対応する必要があります。

文字列を削除する

ユーザがDelete(もしくはBackspace)キーを押したとき、二つのうちのどちらかが起こります…

  • 文字列が選択されていれば、選択範囲全体が削除されます。
  • 現在の選択範囲がなければ、挿入ポイントの前にある文字が削除されます。

どちらの場合でも、挿入ポイントは文書の削除された文字、または文字列に置き換わります。削除された文字列はクリップボードへ行きませんが、ユーザはすぐに編集メニューから「取り消し」を選択することで、削除した内容を元に戻すことができます。

また、あなたは現在の挿入ポイントを含んでいる単語を削除するために、もしくは単語の挿入ポイントより左にある部分を削除するために、Option-Delete(もしくはOption-Backspace)を実装することもできます。もしこれを実装するのであれば、必ずこのふるまいを説明書に明記してください。

もしキーボードにForward Delete(Fwd Del)キーがあれば、挿入ポイントの後にある文字は、ユーザがこのキーを押すたびに削除されます。

選択範囲を置き換える

もし、ひとつ以上の文字が選択されているときにユーザが入力を始めたら、入力された文字は選択範囲に置き換わります。削除された文字はクリップボードへ行きませんが、ユーザはすぐに編集メニューの「取り消し」を選択することで、置き換えた内容を元に戻すことができます。

賢いカットアンドペースト

賢いカットアンドペーストとは、単語の間に必要な空白を補う編集機能の組み合わせのことです。この機能がなぜ役に立つのかを理解するために、賢いカットアンドペーストのない文字列アプリケーションにおける以下のイベントの流れを検討してみましょう…

  1. ユーザの文書内のこのような文章を、

    Returns are only accepted if the merchandise is damaged.

    ユーザは以下のように変更しようとしているとします。

    Returns are accepted only if the merchandise is damaged.

  2. ユーザは単語「only」をダブルクリックで選択します。文字は強調表示されますが、隣接する空白はどちらも選択されません。
  3. ユーザは編集メニューの「カット」を選択し、単語「if」のすぐ前をクリックし、「ペースト」を選択します。
  4. この時点で文章はこのように読めます。

    Returns are accepted onlyif the merchandise is damaged.

    文章を修正するために、ユーザは「are」と「accepted」の間の余分な空白を取り除き、「only」と「if」の間に空白を加えなければいけません。

もしあなたのアプリケーションで賢いカットアンドペーストに対応するのであれば、これらのガイドラインに従ってください…

  • もしユーザが単語、もしくは単語の範囲を選択したら、選択範囲自体を強調表示しますが、選択範囲に隣接する空白は強調表示されません。
  • ユーザが「カット」を選択したとき、選択範囲の前の文字が空白であれば、選択範囲に加えてその空白も切り取ってください。

    選択範囲の前の文字が空白ではないが、選択範囲の後の文字が空白であれば、選択範囲に加えてその空白も切り取ってください。

  • ユーザが「ペースト」を選択したとき、現在の選択範囲の左右どちらかの文字が単語の一部であれば(そして単語の内側でなければ)、貼り付ける前に空白を挿入してください。

賢いカットアンドペーストは、アプリケーションが「単語を構成するもの」(107ページ)で説明されている単語の定義に対応している場合のみ使用するようにしてください。 これらの規則は、ユーザがどのように選択範囲を作成したかに関わらず、ひとつ以上の完全な単語を構成する選択範囲に適用されます。

注:賢いカットアンドペーストはすべての言語に適用してはいけません。たとえば、タイ、中国、日本語は、【単語の間に】空白を含みません。

文字列入力欄を編集する

もしあなたのアプリケーションが文字列を主体とするアプリケーションではないのであれば、たとえダイアログのなかに文字列入力欄があったとしても、このセクションで説明されている文字列編集機能を完全に提供する必要はないでしょう。

理想的には、文字列編集を含むアプリケーションは以下の機能に対応している必要があります…

  • ユーザは入力欄の全体を選択してから、新しい値を入力したり、文字列を削除したり、入力欄の部分文字列を選択してから、それを置き換えたり、ダブルクリックで単語を選択できること。
  • ユーザは「編集メニュー」(165ページ)で説明されるとおり、「取り消し」、「カット」、「コピー」、「ペースト」、「削除」を選択できること。
  • アプリケーションは適切な編集内容の確認を行うこと。

    たとえば、ある入力欄では数字を表す文字列だけが正常値である場合に、アプリケーションはユーザが数字以外を入力したら警告を行う必要があります。

    文字列入力欄における、いつエラーをチェックして変更を適用するかについてのより完全な議論は、「変更を受け入れる」(213ページ)を参照してください。

可能なときは、ユーザの入力に応じて文字列入力欄の自動的な補完に対応しましょう。あなたは入力欄を頻繁に入力される情報や、履歴一覧からの情報で満たすことができます。もしこれを行うのであれば、ユーザが何を入力し、あなたのアプリケーションがどんな情報を提供したのかが明確になるように、できれば強調表示を行うことで、あなたが何を自動的に補完したのかを示してください。

もし、あなたのアプリケーションがユーザからの特定の情報の断片を必要とするのであれば、あなたは必要な文字列入力欄や選択コントロールのそれぞれに接したアスタリスクやカスタムアイコンを表示する必要があると考えてよいでしょう。

けれども、そうすることは、あなたのユーザインタフェースを散らかった、見栄えのしないものにすることがあります。これを避けるためには、まずあなたのユーザインタフェースを、ユーザがあなたの要求に応じることが簡単になるようにデザインすることから始めましょう。

次に、もしユーザが特定の文字列入力欄を満たすことを忘れていたら、そこに注意を引くために、あなたはその入力欄に接したアスタリスクやカスタムアイコンを表示することができます。

たとえば、あなたのアプリケーションがあるサービスを設定するための情報を必要とするのであれば、ラジオボタン、ポップアップメニュー、その他の未選択状態にできない選択コントロールを保障することでユーザの選択を楽にしましょう。

文字列入力欄については、ユーザが現在の文脈から抜けようとするまで待ってから(たとえば、「続ける」、「OK」をクリックすることで)、空欄のままの入力欄の隣に「必須」アイコンを表示してください。

優れた設定の体験をあなたのユーザに提供するための更なるガイドラインは、「設定アシスタント」(80ページ)を参照してください。

パスワードを入力する

ユーザが文字列入力欄にパスワードを入力するとき、入力された文字はそれぞれユーザが入力した文字数と一致する丸印として表示される必要があります。ユーザがDeleteキーで一文字削除したら、文字列入力欄から丸印が一つ削除され、丸印が実際の文字の代理であるかのように、挿入ポイントは丸印一つ分後ろに移動します。パスワード入力欄に丸印で表された文字列をダブルクリックすることで、文字列入力欄のすべての丸印を選択します。

ユーザが文字列入力欄を抜けたとき(たとえばTabを押して)、文字列入力欄の丸印の数は入力欄がパスワードの実際の文字数を反映しないように変更されるべきです。


←第3部:アクア インタフェース
→第8章:ドラッグアンドドロップ