(57)【要約】  タッチスクリーンデバイス用のユーザインターフェイスを効率的かつ容易に実現するためのシステムおよび方法。カーソルは単純な入力を用いてユーザにより配置されてもよい。デバイスはカーソルをおおまかに配置するように動作し、ユーザからのさらなる入力時にカーソルの配置を精緻化する。テキストはカーソルに関連付けられたグリッパを使用して選択されてもよい。ユーザインターフェイスはユーザの指またはグリッパで選択されたテキストを遮ることなくテキストの選択を可能にする。テキストの複数行ブロック内のテキストを選択するために、動的セーフティゾーンがユーザのためのテキスト選択を簡素化するために実施される。
2014529137.tif 000002
【特許請求の範囲】
【請求項１】
文字列を表示するコンピューティングデバイスの表示画面上にカーソルを配置するための方法であって、
ユーザから前記文字列に関連付けられた前記表示画面上の第１の入力位置を指示する第１の入力を受信するステップと、
前記第１の入力位置に基づいて、第１の複数の配置位置の中から第１のカーソル位置を選択するステップであって、前記第１の複数の配置位置の各々は前記文字列の文字に隣接しているステップと、
前記表示画面上で前記第１のカーソル位置にカーソルを表示し、前記コンピューティングデバイスを、機能が前記文字列に対する前記第１のカーソル位置に少なくとも部分的に基づいて実行される、第１の状態に配置するステップと、
前記デバイスが前記第１の状態にある間、前記文字列に関連付けられた前記表示画面上の第２の入力位置を指示する第２の入力をユーザから受信するステップと、
前記第２の入力位置に基づいて、第２の複数の配置位置の中から第２のカーソル位置を選択するステップであって、前記第２の複数の配置位置の各々は前記文字列の文字に隣接しているステップと、
前記表示画面上で前記第２のカーソル位置に前記カーソルを表示するステップと、
を備え、
前記第１の複数の配置位置は、前記第２の複数の配置位置よりも文字列内でより少ない位置を備える、
ことを特徴とする方法。
【請求項２】
前記第１の複数の配置位置は、前記文字列の後の位置および前記文字列の前の位置を備え、
前記第２の複数の配置位置の各々は、前記文字列の２つの隣接文字間の位置を備える、
請求項１に記載の方法。
【請求項３】
前記第１の入力位置が前記文字列の第１の半分以内の位置に対応する場合に、前記文字列の前の位置である前記第１のカーソル位置を選択するステップと、
前記第１の入力位置が前記文字列の第２の半分以内の位置に対応する場合に、前記文字列の後の位置である前記第１のカーソル位置を選択するステップと、をさらに備える、  請求項２に記載の方法。
【請求項４】
前記第１の入力位置が前記文字列の先頭で文字の第１の所定数に対応する場合に、前記文字列の前の位置である前記第１のカーソル位置を選択するステップと、
前記第１の入力位置が前記文字列の末尾で文字の第２の所定数内である場合に、前記文字列の後の位置である前記第１のカーソル位置を選択するステップと、をさらに備える、
請求項２に記載の方法。
【請求項５】
前記第１の複数の配置位置は、前記文字列の先頭で文字の第１の所定数内にはなく、前記文字列の末尾で文字の第２の所定数内にはない、前記文字列の各文字に隣接する中間配置位置、をさらに備え、
前記第１の入力位置が特定の中間配置位置に対応する場合に、前記特定の中間配置位置である前記第１のカーソル位置を選択するステップと、をさらに備える、
請求項４に記載の方法。
【請求項６】
コンピュータシステムであって、
表示画面と、
ユーザから開始位置、パス、および、フィニッシング位置を備える第１のドラッグ入力を受信するように構成された少なくとも１つのセンサと、
前記表示画面上に文字列および第１のグリッパを表示し、前記グリッパは前記文字列の第１の文字に関連付けられた第１のグリッパ位置に表示され、
前記開始位置が前記第１のグリッパ位置に対応する場合に、
前記フィニッシング位置に対応する前記文字列の第２の文字を決定し、
前記第１の文字および第２の文字との間の前記文字列の一部を強調表示し、
第２のグリッパを前記第２の文字に関連付けられた第２のグリッパの位置に表示し、前記第１のグリッパを前記第１のグリッパ位置に表示する
ように構成された少なくとも１つのプロセッサと、を備える、
ことを特徴とするコンピュータシステム。
【請求項７】
前記少なくとも１つのプロセッサは、さらに、
前記開始位置が前記第１のグリッパの位置に対応する場合に、前記ドラッグ入力が前記少なくとも１つのセンサにより受信されている間、前記第１のグリッパを前記表示画面上で表示中止するように構成される、
請求項６に記載のコンピュータシステム。
【請求項８】
前記少なくとも１つのプロセッサは、さらに、
前記少なくとも１つのセンサが、前記第１のグリッパ位置に対応するタップ位置で、前記第２のグリッパ位置で、または、テキストの前記強調表示された部分に関連付けられた位置でタップ入力を受信する場合に、前記表示画面上にコンテキストメニューを表示するように構成される、
請求項６に記載のコンピュータシステム。
【請求項９】
前記第１のグリッパは前記ユーザから前記第１のドラッグ入力を受信する前に表示され、前記第１のグリッパ位置はカーソル位置の下方にあり、
前記少なくとも１つのプロセッサは、さらに、前記テキストの第１の文字に隣接する前記カーソル位置に前記表示画面上でカーソルを表示するように構成される、
請求項８に記載のコンピュータシステム。
【請求項１０】
前記少なくとも１つのプロセッサは、さらに、前記第１の文字および前記第２の文字が、前記第１のグリッパおよび前記第２のグリッパの幅よりもより近く一緒にある場合に、前記第１のグリッパを更新された第１のグリッパ位置に再表示し、前記第２のグリッパ位置を前記第１のグリッパおよび前記第２のグリッパが重ならないように前記更新された第１のグリッパ位置から離して配置するように構成される、
請求項６に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
タッチスクリーンデバイスは多くの場合煩雑なオンスクリーンユーザインターフェイスを有する。タッチスクリーンとのインタラクトのための様々な方法が当技術分野において公知である。例えば、入力デバイスとしてスタイラスペンまたは指などの使用がある。入力デバイスとして１本または複数の指を使用する際にユーザエクスペリエンス（ユーザ体験）がより複雑なものになり得る。指を使用してカーソルを配置しテキストを選択しようとすると、マウスなどの他の入力デバイスと比べて精度がはるかに低いので難しい場合がある。例えば、単語内の正確な位置にカーソルを配置することは単語の大きさに対する指の大きさのために難しい場合がある。
【０００２】
ユーザは、コンピューティングデバイスにより表示されているテキストを編集することができるようにカーソルを配置したいことがある。同様に、テキストは、コピー、切り取り、またはテキストを貼り付けするかまたは新しいテキストを入力することにより上書きすることができるように選択されてもよい。当技術分野で知られているこれらの操作は、タッチスクリーン上で１本または複数の指を使用することの不正確さのために、タッチスクリーンデバイスで実現することは困難であることが証明されている。テキストを選択する速さおよび容易さもユーザインターフェイスが選択されたテキストを長押しするなどの複雑なコマンドの入力をユーザに要求する際には減少する。上記の操作は携帯用電子機器ではさらに困難な問題である。
【０００３】
当技術分野で知られているユーザインターフェイスは、ユーザにより入力される際にテキストが挿入される具体的な位置をユーザが識別するのを難しくすることがあるようにカーソルを表示する。さらに、テキストを選択する際に現在のユーザインターフェイスではユーザの指が選択されるテキスト部分を遮らざるをえないことがしばしばある。このように、これらのユーザインターフェイスは、直感的でなくかつ不必要な手と目の協調を必要とする選択されたテキストのオフセット表現をしばしば利用する。
【０００４】
複数行のテキストを選択することが、テキストの行が通常ユーザの指の大きさに比べて小さな垂直方向のスペースしか占有しないため難しい場合がある。人間が直線状に指を移動させることも非常に困難である。このことは、ユーザが１つの行のテキストを選択しようとするが、ユーザの指がテキストの行で定義された垂直方向のスペース外に移動する場合に、ユーザの入力を意図的に変更する行であるとしてコンピューティングデバイスに解釈させるというエラーを引き起こす。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現代的なタッチスクリーンデバイスでは、ユーザはデバイスの効率的な操作を可能にする直感的でシンプルなユーザインターフェイスを期待している。
【課題を解決するための手段】
【０００６】
本明細書の記載は、シンプルなカーソル配置およびオクルージョンフリー（閉塞フリー、制限無し）のテキスト選択でのユーザインターフェイスを実装するための技術である。ユーザインターフェイスは、モバイルデバイス、例えばハンドヘルドデバイス、ラップトップ、またはタブレットコンピュータのユーザが迅速かつ効率的にこれらの操作を実行できるように最適化される。
【０００７】
カーソルの配置はユーザの簡単なタップ入力で達成されてもよい。最初に、カーソルがおおまかに配置されてよい。ユーザからのさらなる入力で、カーソルがより正確に配置されてもよい。ユーザがインタラクトしてもよい画面上の位置の視覚的な表示は「グリッパ（”ｇｒｉｐｐｅｒ”）」と呼ばれ、それが関連付けられているテキスト行の下方に表示されてもよい。本ユーザインターフェイスは、また、ユーザがより正確に単一のテキスト行のテキストを選択することを可能にする「セーフティゾーン（”ｓａｆｔｙ  ｚｏｎｅ”）」を実装してもよい。
【０００８】
いくつかの実施形態では、カーソルはユーザからの位置指示を受信することによりコンピューティングデバイスの表示画面上に配置されてもよく、ユーザからの指示はテキストまたは文字列を指示する。初期のカーソル位置が、表示されているコンテンツに関する他の情報と組み合わされて、位置指示に基づいて選択され、カーソルがその位置に表示され、初期のカーソル位置はユーザにより指示される位置に対しておおまかに位置決めされる。コンピューティングデバイスは機能の実行が初期のカーソル位置に基づいてされた状態に置かれる。第２の位置指示が次に受信されてもよい。より正確なカーソル位置は第２の位置指示に基づいて選択されてもよく、カーソルがより正確なカーソル位置に表示される。
【０００９】
いくつかの実施形態では、表示画面、センサおよびプロセッサを有するコンピュータシステムはテキストを選択するためのユーザインターフェイスを実装する。テキストなどの文字列は「グリッパ」と共に表示画面上に表示される。ユーザはセンサにより決定されるグリッパを、文字列の第１の文字に関連付けられている第１の位置から文字列の第２の文字までドラッグしてもよい。第１および第２の文字との間のテキストが強調表示され、グリッパは第１の位置に再度表示され、第２のグリッパが文字列の第２の文字に対応した位置に表示される。
【００１０】
いくつかの実施形態では、テキストの複数行が表示画面により表示されてもよい。テキストの一部分が選択されてもよく、テキストを強調表示することにより指示される。ユーザは選択されたテキストの終了点をドラッグすることにより選択されているテキストの一部分を調整してもよい。ドラッグ入力が受信されると、選択されたテキストはユーザが指示している現在位置に基づいて更新される。第１のモードでは、ユーザが閾値距離を越えて移動しない場合は、終了点が行を変更しないように、デバイスは、ユーザにより指示された垂直位置のエラーに対して比較的大きな閾値を許容する。一旦閾値距離を越え、デバイスがユーザからのドラッグ入力を受信し続けると、デバイスは比較的大きな閾値よりも小さい閾値距離が使用される第２のモードに入る。このように、第２のモードでは、ユーザは比較的小さな閾値距離を単に通過させることにより、選択されたテキストの終了点を行から行へ移動させることができる。
【００１１】
選択して強調表示するいくつかの方法はコンピュータ読み取り可能な記憶装置に記憶された命令を実行するコンピューティングシステムのプロセッサにより実行されてもよい。
【００１２】
上記は添付の特許請求の範囲により定義される本発明の非限定的な要約である。
【００１３】
添付の図面は縮尺通りに描かれることを意図していない。図面では、様々な図に示されている同一又はほぼ同一の各コンポーネントは、同様の数字により表される。明瞭さの目的のために、すべての図面ですべてのコンポーネントに符号が付けられている訳ではない。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態が動作し得る例示的な環境のブロック図である。
【図２】本発明の実施形態が動作し得る例示的なコンピューティングデバイスの簡略図である。
【図３Ａ】本発明のいくつかの実施形態において使用される例示的な文字列の分配を示す。
【図３Ｂ】本発明のいくつかの実施形態において使用される例示的な文字列の分配を示す。
【図３Ｃ】本発明のいくつかの実施形態において使用される例示的な文字列の分配を示す。
【図４Ａ】本発明のいくつかの実施形態において使用される例示的なカーソル配置を示す。
【図４Ｂ】本発明のいくつかの実施形態において使用される例示的なカーソル配置を示す。
【図４Ｃ】本発明のいくつかの実施形態において使用される例示的なカーソル配置を示す。
【図５Ａ】本発明のいくつかの実施形態において使用される例示的なテキスト選択技法を示す。
【図５Ｂ】本発明のいくつかの実施形態において使用される例示的なテキスト選択技法を示す。
【図５Ｃ】本発明のいくつかの実施形態において使用される例示的なテキスト選択技法を示す。
【図５Ｄ】本発明のいくつかの実施形態において使用される例示的なコンテキストメニューを示す。
【図６Ａ】本発明のいくつかの実施形態が回避する重複グリッパでの例示的なユーザインターフェイスを示す。
【図６Ｂ】重複グリッパを防止する本発明のいくつかの実施形態の例示的なユーザインターフェイスを示す。
【図７Ａ】本発明のいくつかの実施形態において使用される例示的な複数行テキストの選択技法を示す。
【図７Ｂ】本発明のいくつかの実施形態において使用される例示的な複数行テキストの選択技法を示す。
【図７Ｃ】本発明のいくつかの実施形態において使用される例示的な複数行テキストの選択技法を示す。
【図７Ｄ】本発明のいくつかの実施形態において使用される例示的な複数行テキストの選択技法を示す。
【図８Ａ】本発明のいくつかの実施形態において使用される例示的なグリッパを示す。
【図８Ｂ】本発明のいくつかの実施形態において使用される例示的なグリッパを示す。
【図８Ｃ】本発明のいくつかの実施形態において使用される例示的なグリッパを示す。
【図８Ｄ】本発明のいくつかの実施形態において使用される例示的なグリッパを示す。
【図８Ｅ】本発明のいくつかの実施形態において使用される例示的なグリッパを示す。
【発明を実施するための形態】
【００１５】
本発明者らは、タッチスクリーンデバイスのための使いやすく効率的なユーザインターフェイスを提供するためには、カーソルを配置することが単純で直接的であり、かつ指を使用してコマンドをデバイスに入力することから生じる不正確さを考慮することが望ましいことを認識し理解している。本発明者らは、ユーザが直感的、効率的なユーザエクスペリエンスの結果、テキストを指で遮らずに選択されているテキストを直接インタラクトすることを可能にするユーザインターフェイスを提供することをさらに認識し理解している。
【００１６】
図１は、本発明が実施され得る適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲について何ら限定を示唆するものではない。コンピューティング環境１００は、例示的な動作環境１００に示すコンポーネントのいずれかまたはその組み合わせに関する依存性または要件を有すると解釈されるべきではない。
【００１７】
本発明の実施形態は、多数の他の汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明で使用するのに好適であり得る周知のコンピューティングシステム、環境、および／または構成の例は、これらに限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、携帯電話、タブレットコンピュータ、ネットブック、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境等を含む。
【００１８】
コンピューティング環境は、プログラムモジュールなどのコンピュータ実行可能命令を実行してもよい。一般に、プログラムモジュールは特定のタスクを実行する、または、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明の実施形態は、また、通信ネットワークを介してリンクされるリモート処理デバイスによりタスクが実行される、分散コンピューティング環境で実施されてもよい。分散コンピューティング環境において、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートの両方のコンピュータ記憶媒体に配置されてもよい。
【００１９】
図１に関連して、効率的でユーザフレンドリなユーザインターフェイスを実現するための例示的なシステムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントは、これらには限定されないが、処理ユニット１２０（すなわちプロセッサ）、システムメモリ１３０、およびシステムメモリを含む様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１を含んでよい。システムバス１２１はメモリバスまたはメモリコントローラ、周辺バス、および任意の様々なバスアーキテクチャを使用するローカルバスを含むいくつかのタイプのバス構造のいずれであってもよい。一例として、限定はしないが、このようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクス規格協会（ＶＥＳＡ）ローカルバス、およびメザニンバスとしても知られている周辺コンポーネントインターコネクト（ＰＣＩ）バスが含まれる。
【００２０】
コンピュータ１１０は、様々なコンピュータ可読媒体を含んでいてもよい。コンピュータ可読媒体は、コンピュータ１１０によりアクセスできるものであって、揮発性および不揮発性の媒体、リムーバブルおよび非リムーバブル媒体の両方を含むことができる任意の利用可能な媒体であり得る。一例として、限定はしないが、コンピュータ可読媒体はコンピュータ記憶媒体および通信媒体を含んでもよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または、他のデータなどの情報を記憶するための任意の方法または技術で実装された、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体の両方を含む。コンピュータ記憶媒体は、限定はしないが、所望の情報を保管するために使用することができ、コンピュータ１１０によりアクセスできるＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または、他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または、他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置、または、他の磁気記憶装置、または、他の任意の媒体等を含む。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波または他の移送機構などの変調データ信号におけるその他のデータを具現化し、任意の情報配信媒体を含む。「変調データ信号（”ｍｏｄｕｌａｔｅｄ  ｄａｔａ  ｓｉｇｎａｌ”）」という用語は、信号内の情報を符号化するような方法で設定または変更された特性の１つまたは複数を有する信号を意味する。一例として、限定はしないが、通信媒体は有線ネットワークまたは直接有線接続などの有線媒体、および、音響、ＲＦ、赤外線、および、他の無線媒体などの無線媒体を含む。上記のいずれの組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。
【００２１】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１、および、ランダムアクセスメモリ（ＲＡＭ）１３２のような、揮発性および／または不揮発性メモリ形式のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間での情報の転送を助ける基本ルーチンを含む基本入力／出力システム１３３（ＢＩＯＳ）は、通常ＲＯＭ１３１に格納される。ＲＡＭ１３２は即時にアクセス可能な、および／または、処理ユニット１２０により現在操作されているデータおよび／またはプログラムモジュールを通常含む。一例として、限定はしないが、図１はオペレーティングシステム（ＯＳ）１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２２】
コンピュータ１１０は、また、他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータ記憶媒体を含んでよい。単なる例として、図１は非リムーバブル、不揮発性磁気媒体に対し読み取りまたは書き込みを行うハードディスクドライブ１４１、リムーバブル、不揮発性磁気ディスク１５２に対し読み取りまたは書き込みを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭ、ＤＶＤ、または、他の光学媒体などのようなリムーバブル、不揮発性光ディスク１５６に対し読み取りまたは書き込みを行う光ディスクドライブ１５５を示す。例示的な動作環境で使用できる他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータ記憶媒体には、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１はインターフェイス１４０などのような非リムーバブルメモリインターフェイスを介してシステムバス１２１に通常接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５はインターフェイス１５０などのようなリムーバブルメモリインターフェイスによりシステムバス１２１に通常接続される。
【００２３】
上述した図１に示すドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ１１０用の他のデータのストレージを提供する。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、および、プログラムデータ１４７を保管するものとして示される。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、および、プログラムデータ１３７と同じでもあり得るし、異なることもあり得ることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、および、プログラムデータ１４７は、最低でもそれらが異なるコピーであることを示すために、ここでは異なる番号が与えられている。
【００２４】
ユーザは、キーボード１６２、および、一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス１６１などの入力デバイスを介して、コンピュータ１１０にコマンドおよび情報を入力してもよい。これらの入力デバイスはいくつかの実施形態において存在し得るが、コンピュータ１１０の動作に必要とされない。いくつかの実施形態では、表示画面１９１は、ユーザの１本または複数の指、または、スタイラス、または、ペンのような、他の入力デバイスから入力を受信することができるタッチスクリーンセンサ１７２を含む。他の入力デバイス（図示せず）はマイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ（衛星放送受信アンテナ）、スキャナなどを含んでいてもよい。これら、および、他の入力デバイスは、システムバスに結合されたユーザ入力インターフェイス１６０を介して処理ユニット１２０にしばしば接続されるが、パラレルポート、ゲームポート、または、ユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェイス、および、バス構造により接続されてもよい。モニタ１９１、または、他のタイプの表示デバイスも、また、ビデオインターフェイス１９０などのようなインターフェイスを介してシステムバス１２１に接続される。
【００２５】
ＯＳ１３４は、タッチスクリーンに関連付けられるタッチスクリーンエンジンを備えていてもよい。タッチスクリーンエンジンは、タッチセンサ１７２からの入力を受信し、入力を処理してＯＳ１３４の他のコンポーネント、アプリケーションプログラム１３５、または、他のプログラムモジュール１３６などのような他のコンポーネントへの入力に関する情報を提供する。タッチスクリーンセンサ１７２からの入力は、画面１９１上に表示される文字、または、他のアイテムの選択を指示してもよい。入力は、また、ユーザにより選択されたようにカーソルの位置を指示してもよい。タッチスクリーンエンジンは、また、他のコンポーネントから情報を受信し、情報を表示画面１９１上にレンダリングしてもよい。例えば、ＯＳ１３２は、表示１９１上で、コンテキストメニューに表示するタッチスクリーンエンジンに情報を提供してもよい。本発明の実施形態は、コンポーネントが選択およびカーソル位置を識別する方法を変更するために実施されてもよい。実施形態は、また、ユーザインターフェイスが、文字選択およびカーソル位置を指示するために提示される方法を変更してもよい。
【００２６】
図２は、本発明の一実施形態の例示的なコンピューティングデバイス２００の簡略図を示す。コンピューティングデバイス２００は、図１に関連する上記のコンポーネントのいくつかまたはすべてを有してもよいが、図１のすべての機能を含むように限定されるものではない。コンピューティングデバイス２００の図示されたコンポーネントは、任意の方法で配置されてもよく、図２に示す特定のレイアウトまたはコンポーネントに限定されるものではない。
【００２７】
コンピューティングデバイス２００は、１つまたは複数の文字列２６０を表示する表示画面２５０を備える。文字列は、いくつか例を挙げると、任意の文字、例えば、文字、数字、句読点、空白文字を含んでもよい。文字列は単一の単語、文、段落、または、文字の任意の他の集合であってもよい。図２の例示的な実施形態は、文字、スペース、および、句読点を含むテキストの複数行の文章を備える文字列２６０を示す。本明細書では、ラテン文字を含むテキストが文字の一例として用いられているが、本発明の実施形態は、任意の特定の実施に限定されるものではない。例えば、いくつかの実施形態は、日本語、中国語、韓国語、アラビア語、または、ヒンディー語の文字を使用してもよい。本発明の実施形態は、文字列が縦方向に配列される縦書き言語で使用されてもよい。
【００２８】
コンピューティングデバイス２００の表示画面２５０は、１つまたは複数のタッチスクリーンセンサ２４０と関連している。センサ、および、表示画面の組み合わせは、タッチスクリーンと呼ばれてよい。このように、コンピューティングデバイス２００は、タッチスクリーンデバイスと呼ばれてよい。コンピューティングデバイス２００は、タッチスクリーン技術の任意のタイプを使用してもよい。例えば、タッチスクリーンは、抵抗性、容量性、音響、赤外線、または、他の任意のタッチスクリーン技術であってもよい。入力は、スタイラス、ペン、または、１本または複数の指のようなユーザの身体によって、タッチスクリーンセンサ２４０により受信されてもよい。本発明の実施形態は、タッチスクリーンの任意の特定の実施に限定されるものではない。
【００２９】
１つまたは複数のタッチスクリーンセンサ２４０を介して入力を受け付けることに加えて、コンピューティングデバイス２００は、ユーザからの入力を受け付けるための１つまたは複数のボタン２３０を有してよい。ボタンは、コンピューティングデバイス２００の前面、背面、または、側面にあってもよい。それらは機械式ボタン、回転式入力デバイス、容量性ボタン、または、当技術分野で公知の入力デバイスの他の任意のタイプであってもよい。図１に関連して説明したように、コンピューティングデバイス２００は、また、ユーザからの入力を受信するためのキーボード、マウス、または、他の入力デバイスを有してよいが、これらは必ずしも必須ではない。図２は、コンピューティングデバイス２００への方向情報を指示するための四方向の指向性パッドとしてのボタン２３０を示す。コンピューティングデバイスに対して、オン／オフ、または、スタンバイモードに移行するかどうかを指示する電源ボタン２２０も示されている。本発明の実施形態は、ボタンまたは入力デバイスの任意の特定の実施に限定されるものではない。
【００３０】
コンピューティングデバイス２００のユーザは、表示画面２５０に表示されるテキスト２６０に対して機能を実行したい場合がある。機能を実行するために、ユーザは、カーソルの所望の配置および／または選択される所望のテキストを指示するために、タッチスクリーンを使用してもよい。カーソルは、キャレット（ｃａｒｅｔ）、または、矢印などの場所の任意の視覚的なインジケータであってもよい。
【００３１】
機能は、カーソルの位置、または、ユーザにより選択されたテキストに依存してよい。機能は、また、デバイスの他の設定に依存してもよい。例えば、ユーザにより、カーソルが特定の位置に配置され、追加のテキストが入力された場合、追加のテキストはカーソルの位置に挿入されてもよく、または、追加のテキストは、デバイスが挿入モード、または、上書きモードのどちらにあるかに基づいて、カーソル以下の既存のテキストを上書きしてもよい。貼り付け機能も、また、以前に切り取り、または、コピーされたテキストがカーソル位置に挿入されてもよいようにカーソルの配置に基づいて実行されてよい。別の例では、削除コマンドを選択し、カーソルの前、または、カーソルの後の文字などのようなカーソルに直接隣接する、１つまたは複数の文字を削除してもよい。
【００３２】
テキストが選択されている場合、上記と同じ機能が実行されてもよいが、動作は選択されているテキストに基づいて異なることになる。例えば、テキストが選択された時に追加のテキストが入力されるか、または、貼り付けされた場合、選択されたテキストは、追加のテキストを用いて上書きされることになる。削除コマンドを選択すると、選択されたテキストを削除する。テキストが選択された際に、ユーザが利用可能な追加機能があってもよい。例えば、選択されたテキストが、コピー、または、切り取りされてもよい。また、選択されたテキストのスタイルは、ユーザにより変更されてもよい。例えば、選択されたテキストは、ボールド、または、イタリックにされてもよく、フォントが変更されてもよく、フォントのサイズが変更されてもよい。
【００３３】
カーソルが特定の場所にあるかまたはテキストが選択されているかどうかに基づいた機能のこの異なる動作は、デバイスが第１の状態および第２の状態にあるとして説明されてもよい。
【００３４】
コンピューティングデバイス２００により決定された指示位置が、タッチスクリーン上でユーザタッチが検出された物理的な位置に正確に対応していなくてもよいように、コンピューティングデバイス２００は、ユーザの選択に補正を行ってよいことに留意すべきである。例えば、タッチスクリーンデバイスのユーザには、指示したい実際の位置よりもわずかに低い位置で画面をタッチすることが知られている。これは、コンピューティングデバイスが、自動的に補正できる単なる視点の問題である。このように、本発明の実施形態は、この効果、および、他の同様の効果を説明するための既に補正されたユーザの位置であってもよい。タッチスクリーンセンサ２４０を介してユーザにより受信される入力は、任意の適切な入力コマンドであってもよい。いくつかの実施形態では、入力は、ユーザが一瞬画面に触れたことを示す「タップ入力」であってもよい。タップは、当技術分野で公知の技術により検出されてもよい。一瞬とは、通常１秒未満である。いくつかの実施形態では、入力は、ドラッグ入力であってもよく、ユーザは、開始位置で指を画面にタッチし、画面上で指をドラッグすることによりパスを作成し（画面との接触を維持しながら）、終了位置で指を離すことによりパスを終端する。他の実施形態では、入力は、プレスアンドホールド（ｐｒｅｓｓ  ａｎｄ  ｈｏｌｄ）入力であってもよく、ユーザが画面にタッチし、暫くの間それを保持（ｈｏｌｄ）し、次に、画面との接触を終了する。入力のこれらタイプの各々は、当技術分野で知られている異なる技術を用いて検出されてもよい。本発明の実施形態は、入力の任意の特定のタイプに限定されるものではない。
【００３５】
ユーザの指の大きさ、例えば１−２センチの幅または高さに起因して、タッチスクリーンを介して受信された位置指示は、画面に表示されたアイテムに対して不正確であり得る（サイズで１ｍｍの端数）。したがって、本発明のいくつかの実施形態でのユーザインターフェイスは、ユーザからの第１の位置指示に際し、選択された文字列に対しておおよその位置にカーソルを置くことになる。次に、ユーザが、より正確にカーソルを置くことを望む場合、第２の指示がデバイスに入力されてもよく、入力に関連付けられたより正確な位置に、カーソルが配置される。カーソルのこのおおまかな、または、ざっくりした配置は、任意の方法で実施されてよく、本発明の実施形態は、この点に限定されるものではない。コンピューティングデバイスが、おおまかな位置を使用してカーソルを配置した場合、コンピューティングデバイスは、第１の状態にあると言ってよい。コンピューティングデバイスが、より正確な位置を使用してカーソルを配置した場合、コンピューティングデバイスは、第２の状態にあると言ってよい。いくつかの実施形態では、デバイスが、正確な配置、または、おおまかな配置のどちらを使用するかは、表示されるオブジェクトの特性に依存することになる。例えば、表示が、所定の閾値よりも大きいテキストを含む場合、そのデバイスは、カーソルの正確な配置を実施するだけでよい。いくつかの実施形態では、所定のテキストサイズ閾値は、ユーザの指のおおよその大きさに関連し得る。このように、ユーザの指の大きさが、画面上に表示されるアイテムとほぼ同じサイズである場合には、デバイスは、おおまかな配置を使用しなくてもよい。
【００３６】
カーソル４２０のおおまかな配置は、任意の適切な方法で実施されてよい。いくつかの実施形態では、入力は、表示画面上の特定の文字列を指示するユーザから受信される。コンピューティングデバイス２００は、その単語に関連付けられた位置にカーソルを配置するコマンドである入力を決定する。カーソルを配置することが可能な位置の数は、正確な配置が使用されている場合に比べて低減されてもよい。より少ない可能な位置が、おおまかなカーソル配置をもたらすのに対し、細かなカーソル配置は、多数の可能な位置を有する。例えば、おおまかなカーソルの配置は、図４Ａに示す文字列３００の先頭、または、図４Ｂに示す文字列の末尾にカーソルを配置することだけを可能にしてもよい。カーソルが文字列の先頭または末尾のどちらに配置されているかを決定することは、任意の適切な方法で決定されてよい。例えば、単語は、前半と後半のような複数文字の部分に分割されてもよい。ユーザ入力の位置が、前半を指示する場合、カーソルは、文字列の先頭に表示される。一方、ユーザの入力が、後半を指示する場合、カーソルは、文字列の末尾に表示される。おおまかな配置のこのタイプは、ユーザ入力が単語の先頭または末尾の位置を指示していない場合であっても、ユーザが、どこか途中ではなく、単語の先頭または末尾にカーソルを配置したいことがあるという事実を説明している。このように、おおまかな配置は、ユーザにとって単語の先頭または末尾を指定するのを容易にするが、より正確なカーソル配置モードに切り替えるための簡単な方法を提供する。
【００３７】
文字列の先頭および末尾が、おおまかなカーソル配置のための唯一の選択肢である上記の例では、コンピューティングデバイス２００は、任意の適切な方法で先頭または末尾にカーソルを配置するかどうかを決定してよい。いくつかの実施形態では、図３Ａおよび図３Ｂに示すように、文字列３００は、２つの部分に分割される。ユーザの入力が文字列の先頭部分を指示している場合には、カーソル４２０は、文字列の先頭、すなわち文字列３００の先頭の文字３１０の前に配置される。ユーザの入力が、文字列の末尾部分を指示している場合には、カーソル４２０は、文字列の末尾、すなわち文字列の末尾文字３２０の後に配置される。
【００３８】
文字列は、任意の適切な方法で、部分に分割されてもよい。例えば、図３Ａは、各部分の文字が同数であるように、文字列「Ｃｏｍｐｕｔｅｒ」が半分に分割される様子を示す。第１の部分３３０は、「Ｃｏｍｐ」を含み、第２の部分３４０は、「ｕｔｅｒ」を含む。あるいは、図３Ｂは、同じ文字列３００が、各半分に同数の画素があるように半分に分割される様子を示す。第１の部分３５０は、「Ｃｏｍ」および文字「ｐ」の小部分を含み、第２の部分３６０は、文字「ｐ」の残りの部分および文字「ｕｔｅｒ」を含む。部分のサイズは、文字列を分割する方法に応じて異なることに注意されたい。本発明の実施形態は、文字列を等しい部分に分割することに限定されない。例えば、ユーザインターフェイスの設計者が、ユーザが文字列の先頭よりも文字列の末尾にカーソルを配置することを望む可能性がより高いと信じている場合には、末尾部分が先頭部分よりも意図的に大きくてもよい。本発明の実施形態はセグメンテーションの特定の実施に限定されるものではない。
【００３９】
さらに、本発明の実施形態は、文字列３００を２つの部分に分割することに限定されるものではない。例えば、図３Ｃで文字列３００は、３つの部分に分割され、先頭部分３７０は、文字列３００の最初の３文字を含み、末尾部分３８０は、文字列３００の最後の３文字を含み、先頭部分３７０および末尾部分３８０の間の中間部３９０は、文字列３００の残りの文字を含む。当業者であれば、文字の任意の所定数が先頭および末尾部分を定義するために使用されてもよいことを理解するであろう。図３Ｃの図説は、一例として３文字を使用した。
【００４０】
ユーザの入力が、文字列３００の先頭部分３７０に対応する位置を指示している場合に、カーソル４２０は、図４Ａに示すように文字列３００の先頭文字３１０の前に配置される。ユーザの入力が、文字列３００の末尾部分３８０に対応する位置を指示している場合に、カーソル４２０は、図４Ｂに示すように文字列３００の末尾文字３２０の後に配置される。ユーザの入力が、文字列３００の中間部３９０に対応する位置を指示している場合に、カーソルは、任意の適切な方法で配置されてよい。いくつかの実施形態では、カーソルは、中間部３９０の先頭に配置されてもよい。他の実施形態では、コンピューティングデバイスは、中間部３９０の末尾にカーソルを配置する。いくつかの実施形態では、中間部の中央にカーソルを配置してもよい。さらに別の実施形態では、ユーザの入力が中間部３９０に対応する際に、コンピューティングデバイス２００は、ユーザの入力により指示される位置に対応する位置に配置されるように正確な配置を使用して、カーソルを配置してもよい。例えば、図３Ｃでは、ユーザが文字列の「ｐ」および「ｕ」との間の位置を指示している場合、図４Ｃに示すように、カーソルは、その位置に配置される。他方では、ユーザが「ｐ」の先頭近傍の場所を指示している場合、カーソルは、「ｐ」の前に配置される。本発明の実施形態は、カーソル配置の特定の実施に限定されるものではない。
【００４１】
一旦、コンピューティングデバイス２００が、おおまかにカーソル４２０を配置すると、ユーザは、同じ文字列３００内の、より正確な位置にカーソル４２０を配置したい場合がある。カーソルを配置することができる場所の数は、おおまかな配置を使用する時に利用可能な位置の数よりも大きい。カーソル４２０の正確な配置、または、細かな配置は、任意の適切な方法で実装されてもよい。例えば、ユーザが同じ文字列３００内の第２の位置を指示している場合、コンピューティングデバイス２００は、複数の可能な配置位置から第２の位置に対応する位置を選択する。コンピューティングデバイス２００が正確なカーソル配置を行う際には、おおまかなカーソル配置中に利用可能であった可能な配置位置の数よりも、より多数の可能な配置位置が存在する。いくつかの実施形態では、複数の可能な配置位置は、文字列３００の各文字に隣接する各位置を含んでいてもよい。例えば、ユーザの第１の入力は、第１の位置に対応してよく、カーソルは、文字列３００の先頭におおまかに配置されてもよい（図４参照）。文字「ｐ」および「ｕ」との間の第２の位置に対応する第２の入力が受信された場合、コンピューティングデバイスは、図４Ｃに示すように「ｐ」および「ｕ」との間にカーソル４２０を配置する。
【００４２】
いくつかの実施形態では、おおまかなカーソル配置用の第１の入力、および、正確なカーソル配置用の第２の入力は、両方共にタップ入力であってよい。これによりユーザは、ドラッグ入力、または、プレスアンドホールド入力などのような入力に頼ることなく、非常に迅速かつ正確に所望の位置にカーソルを素早く配置することができる。タップ入力は、携帯機器に特に有利である。本発明の実施形態は、ユーザが使用する入力のタイプに限定されるものではない。
【００４３】
いくつかの実施形態では、表示画面２５０がカーソル４２０を表示する際に、「グリッパ」４１０も表示される。グリッパは、画面上のグラフィカル表示であり、ユーザはインタラクトし、コンピューティングデバイス２００へさらなる入力情報を伝えることができる。グリッパは、任意の適切な方法で実装されてもよい。例えば、図４Ａ−図４Ｃに示すように、グリッパ４１０は、カーソル４２０の下方に表示されてもよい。本発明の実施形態は、グリッパの任意の特定のサイズに限定されるものではない。例えば、グリッパは、サイズが５ｍｍから１５ｍｍの範囲であってよい。いくつかの実施形態では、グリッパは、８ｍｍ幅である。グリッパは、ある寸法が別の寸法より大きくされてもよい。例えば、グリッパは、１０ｍｍの高さ、および、６ｍｍの幅を有する楕円形であってもよい。グリッパの正確なサイズは重要ではなく、任意のサイズが使用されてよい。いくつかの実施形態では、グリッパのサイズは、画面サイズおよび解像度とは無関係である。例えば、携帯電話機の画面に表示されるグリッパは、コンピュータに関連する大きなタッチスクリーンディスプレイ画面上に表示されるグリッパと同じ幅を有してよい。結果として、レンダリングされる際に、グリッパをレンダリングするためにコンピューティングデバイス２００により使用されるパラメータは、選択されたサイズに従うように選択されてもよい。これらのパラメータは画面の高さ、画面の幅、ピクセルサイズ、および／または、画面の解像度を含んでいてもよい。
【００４４】
図８Ａ−８Ｅは、グリッパの例示的な実施形態を示す。以下でより詳細に説明するように、ユーザによりテキストが選択される際に、それは強調表示されてよく、２つのグリッパが表示されてよい。つまり、選択されたテキストの先頭に１つのグリッパが、かつ、選択されたテキストの末尾に１つのグリッパが表示される。図８Ａは、第１のグリッパ８１０および第２のグリッパ８２０が、同一の円である実施形態を示す。円の内部は、ソリッドカラー、完全に透明、または、ソリッドカラーと完全に透明との間の任意の透明度、であってよい。
【００４５】
図８Ｂは、グリッパ８２０および８２２の例を示しており、内部にグラフィックを伴う円である。任意の適切なグラフィックが使用されてもよい。図示の例では、グリッパがインタラクティブであり、コマンドを入力するために使用されてもよいことを、ユーザが理解するように、テクスチャを指示するために縦の行が使用される。
【００４６】
図８Ｃは、末尾グリッパ８３２の鏡像である先頭グリッパ８３０を示す。２つのグリッパは外側を向いた三角形である。円形のグリッパと同じように、三角形の内部は完全に不透明、完全に透明、または、その間のどこであってもよい。図８Ｄも、また、三角形のグリッパ８４０と８４２を示しているが、どこが選択されたテキストの先頭および末尾であるかをより正確に指示するための縦線が追加される。
【００４７】
図８Ｅは、非標準的な形状であるグリッパ８５０および８５２を示す。これらは、完全に丸い形状よりも選択されたテキストの先頭および末尾をより正確に指示することができる頂点近傍のポイントを有し、下方で丸められている。
【００４８】
上記のグリッパは、例示的な目的のものであり、本発明の実施形態は、任意の特定の形状に限定されない。例えば、任意の画像またはアイコンが、グリッパイメージ用にユーザにより選択されてもよい。このように、グリッパは、ユーザの好みの経験に合わせてパーソナライズされてもよい。いくつかの実施形態では、グリッパは、選択された文字に関連付けられているテキストの行の下方に常に表示される。テキストが選択されず、代わりにカーソルが表示されている場合に、グリッパは、カーソルの下方に表示されてもよい。さらに、当業者であれば、本明細書に請求された発明の実施形態により使用することができ、かつ、カバーされる、図示されていないグリッパ形状および配置の他の多くの変形があることを理解するであろう。例えば、縦書き言語が表示されている場合、グリッパは、テキストの左側に表示されてもよい。
【００４９】
上述したように、コンピューティングデバイス１１０は、タッチスクリーンセンサ１７２以外の様々なデバイスからの入力を受信してもよい。いくつかの実施形態では、カーソル４２０がこれらの他のデバイスを使用して配置されている場合、タッチスクリーンエンジンは、表示画面１９１上にグリッパ４１０を表示しなくてもよい。例えば、キーボード１６２またはボタン２３０の矢印キーがカーソルを移動するために使用される場合、グリッパは、表示されなくてもよい。
【００５０】
テキストを選択するためのグリッパ使用が、図５Ａ−５Ｃと併せて以下で説明される。図５Ａは、図４Ｂで示されるのと同じカーソル４２０の位置を示す。カーソル４２０は、文字列３００の末尾文字３２０の後に任意の適切な方法で、例えば、おおまかなカーソル配置により配置されてよい。コンピューティングデバイス２００は、ユーザが指でグリッパを選択する際に、カーソル４２０およびグリッパ４１０に関連付けられたテキストが、グリッパまたはユーザの指により遮られないように、グリッパ４１０をカーソル４２０の下方に表示する。ユーザは、「ドラッグ入力（”ｄｒａｇ  ｉｎｐｕｔ”）」を実施するためにグリッパをプレスしドラッグしてもよい。いくつかの実施形態では、タッチスクリーンエンジンが、ユーザからドラッグ入力を受信したが、ドラッグ入力の初期位置がグリッパに対応しない際に、テキストが、スクロールまたはパンして、追加のテキストを表示する。それが利用可能な場合である。
【００５１】
図５Ｂは、ユーザの指が、テキストの行に沿った方向に表示画面２５０を横切ってトレースしてよいパス５２５を示す。この例では、パス５２５はグリッパ４１０に対応する位置で始まり、テキストの行の方向に沿って左に進み、ユーザが画面２５０から指を離した時に「×」で示す位置で最終的に終端する。テキストを視覚的に遮らないように、グリッパ４１０が十分テキストの下方にあるので、パスは、テキストが選択されている間、ユーザが依然としてテキストでの視界の視線を維持することができるように文字列の下方にある。
【００５２】
いくつかの実施形態では、文字列の文字は、選択を指示するパス５２５がユーザから受信されると強調表示される。例えば、ユーザの指が文字「ｒ」の下方のパスをトレースすると、強調表示された部分は文字を包含するように伸びる。強調表示は、選択された文字の背景の陰影５２０であってもよく、文字が選択されていることをユーザに指示してもよい。ユーザの指が継続すると、パス５２５により横切られる他の文字は、ユーザが表示画面２５０から指を持ち上げることによりドラッグ入力を完了するまで強調表示された部分の一部となる。ドラッグ入力の終了位置は、文字５３０に対応し、文字５３０および元のカーソル位置に対応する文字３２０間のテキストが選択される。上述したように、パスは、文字列の下方にあるので、ユーザは選択された文字での視界の視線を維持できる。
【００５３】
いくつかの実施形態では、タッチスクリーンエンジンは、ドラッグ入力がユーザにより入力さている間は、グリッパ４１０および／またはカーソル４２０を表示しない。これにより、ユーザの気をそらす、または、混乱させるかもしれない不必要なグラフィックを排除し、ユーザは、強調表示されている文字に簡単に集中することができる。
【００５４】
図５Ｃは、ドラッグ入力が完了した後の選択されたテキストを示す。タッチスクリーンエンジンは、カーソル４２０の元の位置に対応する文字３２０およびパス５２５が終了した場所に対応する文字５３０との間のテキストを強調表示するために表示画面１９１に命令する。グリッパ４１０は、ドラッグ入力が受信される前と同じ位置に表示されてもよい。タッチスクリーンエンジンは、文字列３００の選択された文字の先頭に新しいグリッパ５１０を表示する。選択されたテキストは、グリッパ５１０、または、グリッパ４１０のいずれかにより、同じようなインタラクションによって、さらに変更されてもよい。ユーザは、グリッパの１つに対応する開始位置で、さらにドラッグ入力を提供することにより、より多くの、または、より少ない文字を選択してもよい。
【００５５】
いくつかの実施形態では、タッチスクリーンセンサ１７２は、図５Ｃに示すグリッパ４１０に対応するユーザからのドラッグ入力を受信してもよい。ドラッグ入力は、グリッパ５１０の反対側で終了してもよい。例えば、ドラッグ入力が文字列３００の文字「Ｃ」で終了した場合、次にドラッグ入力を解除すると、タッチスクリーンエンジンは、文字「Ｃｏｍｐ」、すなわちドラッグ入力が開始された時のグリッパ５１０の位置およびドラッグ入力の終了ポイントに対応した位置との間のテキスト、を選択する。
【００５６】
いくつかの実施形態では、タッチスクリーンエンジンは、２つのグリッパが重ならないようにグリッパの形状および／または位置を変更する。図６Ａは、グリッパが重なることを許可されている場合に存在する問題を示す。このような状況は、選択されたテキストの幅がグリッパの幅の２倍よりも小さくなるような結果をもたらすような文字数が少ない場合に発生することがある。これは、ハンドヘルドデバイスなどの画面サイズが小さく、画面サイズおよび解像度に関係なくグリッパが固定されたサイズに設定されている場合にも発生することがある。グリッパ６１０は、文字列６００の選択された文字の先頭に関連付けられ、グリッパ６２０は、選択された文字の末尾に関連付けられる。上述したように、選択された文字は、強調表示される６３０。グリッパ６１０およびグリッパ６２０との間の重なりは、ユーザに対して特定のグリッパを選択することを困難にする。重なりは、ユーザを視覚的に混乱させるかもしれない。図６Ｂは、グリッパを同じサイズに保持するが、グリッパを選択されたテキストの両端から離れて移動した結果を示す。グリッパ６１０およびグリッパ６２０の両方は、例えば図５Ｃにおいて、より多くの文字が選択された場合よりも強調表示されたテキストから、さらに離れて表示される。これにより、重なりあうグリッパを防止し、ユーザを混乱させずに、ユーザが簡単に各グリッパと個別にインタラクトすることができる。
【００５７】
一旦、ユーザがテキストを選択し、タッチスクリーンエンジンが選択されたテキストを強調表示すると、図５Ｃに示すように、ユーザは、テキストの選択部分に基づいて実行する機能を選択してよい。上述のように、機能の例としては、テキストの上書き、テキストの再フォーマット、テキストの削除、または、テキストのコピー、などであってもよい。選択されたテキストに基づいて実行され得る別の機能には、コンテキストメニュー５５０の表示がある。コンテキストメニュー５５０は、例えば、強調表示されたテキストに対応する入力、または、図５Ｄに示す２つのグリッパ４１０および５１０の１つを提供することにより表示されてもよい。入力は、例えば、タップ入力の形態であってもよい。コンテキストメニュー５５０は、ユーザに選択されたテキストに対して実行され得る様々な追加機能を提供する。機能オプションは、ＯＳ１３４またはアプリケーションプログラム１３５からタッチスクリーンエンジンに提供されてもよい。例えば、ウェブブラウザアプリケーションが画面上の表示用にタッチスクリーンエンジンにテキスト情報を提供している場合、コンテキストメニューのための情報を提供するのはウェブブラウザであってもよい。コンテキストメニュー５５０により提供される様々な追加機能は、例えば、選択された文字を切り取り、または、コピーするためのオプションであってもよい。機能は、選択されたテキストを再フォーマットするためのオプションを含むこともできる。コンテキストメニュー５５０は、また、以前にコピーされた文字を貼り付けし、選択されたテキストを上書きするオプションを提供してもよい。コンテキストメニューは、本明細書に記載されていない多くの他のオプションを提供してもよいが、当業者であれば、本明細書に記載の本発明の実施形態に含まれることを理解するであろう。さらに、コンテキストメニューは、任意の形状またはサイズであってもよい。例えば、コンテキストメニューは、図５Ｄに示すように、機能が縦方向のリストに表示される長方形のメニューであってもよい。いくつかの実施形態では、コンテキストメニューは、円形または楕円形であって、径方向（放射状）に機能を表示するものであってもよい。本発明の実施形態は、コンテキストメニューの任意の特定のサイズまたは形状に限定されず、また、それらが上述した特定の機能のいずれかを提供することに限定されるものではない。
【００５８】
同様に、図５Ａに示すように、テキストが選択されておらず単一のグリッパが表示される場合であっても、グリッパ４１０のタップ入力は、コンテキストメニューの表示を結果としてもたらしてよい。テキストが選択されていないので、コンテキストメニューは、切り取り、または、コピーするオプションを表示しなくてもよいが、貼り付け機能、または、任意の他の適切な機能を提供してもよい。
【００５９】
文字選択の上述の議論は、１行のテキストに限定されていた。しかしながら、複数の行を占有するテキストブロックから文字のサブセットを選択することも本発明のいくつかの実施形態の一態様である。具体的には、ユーザがテキストの行とは別の行のテキストをいつ選択しようとするかを決定する能力は、ユーザからのドラッグ入力の開始に関連していた。ユーザの指からの入力は不正確であり、真っ直ぐではなくユーザの意図したパスから外れたタッチスクリーン上のパスをヒトはトレースする傾向がある。このように、本発明のいくつかの実施形態は、テキストの各行に関連する「セーフティゾーン」を提供する。セーフティゾーンは、テキストの行を囲む領域であり、ユーザからのドラッグ入力に関連付けられたパスがセーフティゾーン内に留まる限り、コンピューティングデバイス２００は、ユーザがテキストの同じ行に留まる選択をするように意図していたと決定する。セーフティゾーンは、また、ユーザにより開始された選択がカーソルが最初に関連付けされた行で始まることを確認する。いくつかの実施形態では、セーフティゾーンの境界を定義するテキストの行から離れた閾値距離は、ユーザのアクションに基づいて変更されてもよい。
【００６０】
本発明のいくつかの実施形態の例として、図７Ａは、一番上の行７１０、中央の行７２０、および、一番下の行７３０を占めるテキスト７００を示す。各行は１つの方向、例えば、水平に延びており、一方で、各行は、第２の方向、例えば、垂直に次の行に隣接している。カーソル７１２は、第１の行７１０の単語「ｑｕｉｃｋ」の先頭に位置している。カーソルは、上述の任意のカーソル配置技術を使用して、その特定の位置に配置されていてもよい。タッチスクリーンエンジンは、グリッパ７１４をカーソル７１２の下方に表示する。
【００６１】
ユーザは、グリッパ７１４で始まるドラッグ入力を入力し、第２の行７２０に関連付けられた位置で終端するパス７１６をたどってもよい。セーフティゾーン境界７４０は、図７Ａに破線で示されているが、破線は表示画面上に表示されなくてもよい。境界７４０は、それが関連付けられているテキストの第１の行７１０から一定の距離である。距離は、任意の数のパラメータの関数であってもよい。例えば、距離は、テキストから離れたいくらかの所定の長さ、または、テキストから離れた所定数の画素であってもよい。いくつかの実施形態では、距離は、動的であってもよい。距離は、縦の行の高さ、テキストの行間のスペースのサイズ、画面サイズ、または、画面の解像度の関数であってもよい。図７Ａに示す例では、境界７４０は、テキストの第２の行７２０が占める縦のレベルにある。ドラッグ入力のパス７１６が、境界７４０を通過しない場合、コンピューティングデバイスは、ユーザが第２の行７２０内のテキストを選択することを意図していなかったと判断する。例えば、図７Ａに示されるパス７１６は、境界７４０の直上、および、テキストの第１の行７１０の文字「ｏ」および「ｗ」との間の位置に対応した水平位置で終端する。したがって、コンピューティングデバイスは、ユーザは、第１の行７１０のテキスト「ｑｕｉｃｋ  ｂｒｏ」を選択したかったのだと判断する。
【００６２】
図７Ｂは、図７Ａのパス７１６に対応する上記ドラッグ入力を受信した後に何が表示されるかを示す。タッチスクリーンエンジンは、テキスト「ｑｕｉｃｋ  ｂｒｏ」を強調表示し７２２、強調表示されたテキストの先頭に第１のグリッパ７１４があり、強調表示されたテキストの末尾に第２のグリッパ７２４がある。ユーザは、グリッパ７２４に対応する開始ポイントで第２のドラッグ入力を入力し、パス７２６をたどり、テキストの第２の行７２０の「ｏ」および「ｖ」との間、かつ、境界７４０の下方で終端してよい。ドラッグ入力が境界７４０の下方で終端したので、コンピューティングデバイス２００は、ユーザが第２の行７２０内のテキストを選択することを意図していたと判断する。したがって、図７Ｃは、第１の行の第１のグリッパ７１４に関連付けられた位置の後のすべての文字が選択され、第２の行の先頭からパス７２６の終端に関連付けられた場所までのすべての文字が強調表示される７２２ことを示す。
【００６３】
図７Ｃは、また、第１の行７１０のセーフティゾーンに関連付けられた閾値距離の変化を示す。ユーザがドラッグ入力を入力している間、パス７２６が第１の行７１０のセーフティゾーンに関連付けられ境界７４０を横切る場合、境界の位置は、境界７４１により示されるように、第１の行のテキストに近くなるようにシフトする。テキスト選択中に、ユーザにパスの場所における余裕を与えることにより、ユーザにとって単一行でテキストを選択することがより簡単になり、ユーザはテキストのブロック内の隣接する行を含めるように選択されたテキストを拡げたいことをユーザの入力で示すことができる。より遠くにある境界７４０を用いることは第１の動作モードと関連する。境界７４０に関連付けられた閾値距離を通り過ぎることにより、別の行上のテキストを選択するユーザの意図が、一旦、明らかになると、コンピューティングデバイスは、元の閾値距離よりもより小さいある値の閾値距離に減少させることにより、より容易に選択されたテキストの終了ポイントを変更させる。この減少された距離の境界は第２の動作モードに関連する。
【００６４】
初期境界７４０が横切られた後、ドラッグ入力が、まだユーザにより入力されている間、第２のモードが実行される。コンピューティングデバイス２００が第２のモードで動作する際、各行は、コンピューティングデバイス２００が第１のモードで動作する際よりもテキストの行からより短い距離離れたセーフティゾーン境界を有する。例えば、セーフティゾーン境界は、境界７４１と同じ減少された距離閾値を有することができる。図７Ｃは、テキストの第２の行７２０のセーフティゾーンに関連付けられている下方の境界７４２を示す。
【００６５】
ユーザは、コンピューティングデバイス２００のタッチスクリーンを使用して第３のドラッグ入力を入力してもよい。図７Ｃは、選択されたテキストの先頭に関連付けられたグリッパ７１４で始まる、このドラッグ入力に関連付けられたパス７３６を示す。上述したように、第１のモードでは、行を変更するための閾値距離はテキスト行から比較的遠く離れており、境界７４０により示される。一旦、パス７３６が境界７４０を横切ると、コンピューティングデバイスは第２のモードに入り、閾値は減少し、境界７４１により表される。テキストの第２の行７２０に関連付けられた第２のモードのセーフティゾーン境界は、境界７４２により表される。パス７３６は、第３の行７３０の文字「ｌ」および文字「ａ」との間のスペースに関連付けられた位置で終端する。図７Ｄに示すように、選択されたテキストの先頭と最初に関連付けられていたグリッパ７１４は、第３のドラッグ入力後、選択されたテキストの末尾に関連付けられる。同様に、選択されたテキストの末尾に最初に関連付けられていたグリッパ７２４は、第３のドラッグ入力後、選択されたテキストの先頭に関連付けられる。
【００６６】
いくつかの実施形態では、ドラッグ入力がユーザから受信されると、強調表示７２２は、各ドラッグ入力に関連付けられたパスに沿って、現在の位置に基づいて更新される。いくつかの実施形態では、ドラッグ入力が受信されている間グリッパ７１４および７２４が表示されなくてもよい。
【００６７】
上述のセーフティゾーンは、テキストの行が配向している方向には適用されない。例えば、上述の説明では、セーフティゾーンは、テキストの行に対して直交する方向、例えば、垂直方向に適用される。テキストの行の方向、例えば、水平方向に沿ったテキストの強調表示された部分の終点の決定は、図５Ａ−５Ｃに関連して説明したのと同じ方法で行われてもよい。この水平方向に沿って、テキストの強調表示された部分は、ユーザのドラッグ入力が文字を通過する時に一度に１つの文字が更新されてもよい。
【００６８】
本発明の少なくとも１つの実施形態のいくつかの態様をこのように説明してきたが、様々な変更、修正、および、改良が当業者には容易に思い浮かぶであろうことを理解されたい。
【００６９】
このような変更、修正、および、改良は本開示の一部であることが意図され、および、本発明の趣旨および範囲内にあることが意図される。さらに、本発明の優位性が示されるものの、本発明のすべての実施形態が必ずしも上述のすべての優位性を含んでいる訳ではないことが理解されるべきである。いくつかの実施形態は、本明細書およびいくつかの例で優位性として説明した任意の機能を実装していなくてもよい。よって、前述の説明および図面はほんの一例である。
【００７０】
本発明の上述の実施形態は、任意の多数の方法で実施することができる。例えば、実施形態は、ハードウェア、ソフトウェア、または、それらの組み合わせを用いて実装されてもよい。ソフトウェアで実装する際、ソフトウェアコードは、単一のコンピュータに提供されるか、または、複数のコンピュータ間で分散されるかに関わらず、任意の適切なプロセッサ、または、プロセッサの集合で実行され得る。そのようなプロセッサは、集積回路部品内の１つまたは複数のプロセッサで集積回路として実装されてもよい。また、プロセッサは、任意の適切なフォーマットの回路を用いて実装されてもよい。
【００７１】
本明細書で概説する様々な方法またはプロセスは、オペレーティングシステムまたはプラットフォームの任意の種々のものを採用する１つまたは複数のプロセッサ上で実行可能なソフトウェアとしてコーディングされてもよい。加えて、このようなソフトウェアは、任意のいくつもの適切なプログラミング言語および／またはプログラミングまたはスクリプティングツールを使用して書かれてもよいし、また、フレームワークまたは仮想マシン上で実行される実行可能な機械語コードまたは中間コードとしてコンパイルされてもよい。
【００７２】
用語「プログラム」または「ソフトウェア」は、上述したように、本発明の様々な態様を実施するためのコンピュータまたは他のプロセッサをプログラムするために使用することができる任意のタイプのコンピュータコードまたはコンピュータ実行可能命令のセットを指すために、一般的な意味で本明細書で使用されている。加えて、この実施形態の一態様によれば、実行される際に本発明の方法を実行する１つまたは複数のコンピュータプログラムは、単一のコンピュータまたはプロセッサ上に常駐する必要はなく、本発明の様々な態様を実施するためにいくつもの異なるコンピュータまたはプロセッサ間のモジュール方式で分散されてもよいことが理解されるべきである。
【００７３】
コンピュータ実行可能命令は、１つまたは複数のコンピュータまたは他のデバイスにより実行されるプログラムモジュールなどのような多くの形態であってもよい。一般に、プログラムモジュールは、特定のタスクを実行するか、または、特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、などを含む。通常、プログラムモジュールの機能は、様々な実施形態で、所望により組み合わせるかまたは分散させてもよい。
【００７４】
また、データ構造は、任意の適切な形態のコンピュータ可読媒体に保管されてもよい。説明を簡単にするために、データ構造は、データ構造内の位置を介して関連するフィールドを有することが示されてもよい。このような関係は、フィールド間の関係を伝達するコンピュータ可読媒体内の位置でフィールド用のストレージを割り当てることにより同様に達成されてもよい。しかしながら、ポインタ、タグ、または、データ要素間の関係を確立する他の機構の使用を含め、任意の適切な機構がデータ構造のフィールド内の情報間の関係を確立するために使用されてもよい。
【００７５】
本発明の様々な態様は、単独で、組み合わせて、または、上記に記載された実施形態で具体的に説明していない様々な配置で、使用されてもよく、それ故に、上記の説明に記載された、または、図面に示されたコンポーネントの詳細および配置へのその適用に限定されない。例えば、一実施形態において説明した態様は、他の実施形態で説明した態様と任意の方法で組み合わされてもよい。
【００７６】
また、本発明は、例示が提供されている方法として具体化されてもよい。方法の一部として実行される動作は、任意の適切な方法で順序付けされてもよい。よって、実施形態は、たとえ例証的な実施形態においてシーケンシャル動作として示されていても、いくつかの動作を同時に実行することを含んでいてもよく、図示とは異なる順序で動作が実行されるものとして構成されてもよい。
【００７７】
例えば、上記に開示された一実施形態は、テキストの文字列内でカーソルのおおまかなおよび正確な配置をするように指示される。別の実施形態は、グリッパを使用してテキスト文字列を選択するように指示される。これらの実施形態は、グリッパ用のテキストの選択を行いながら、ざっくりとした配置および正確な配置が使用されるように組み合わせられてもよい。例えば、ユーザからのドラッグ入力の終了位置は、最初におおまかな配置を使用して決定されてもよい。次に、ユーザからのさらなる入力で、グリッパは、より正確に配置されてもよい。ユーザからの任意の適切な入力が受信されてもよい。例えば、ユーザは、テキストの選択された文字列内でタップ入力を提供してもよく、または、グリッパを正確に配置するためにグリッパに関連付けられた追加のドラッグ入力を提供してもよい。
【００７８】
「第１の」、「第２の」、「第３の」などの序数用語の使用は、請求項の要素を変更するための特許請求の範囲において、それ自身により任意の優先度、優先順位、または、もう１つ別の請求項の要素への順序または方法の動作が実行される時間的順序を暗示しておらず、特定の名称を有する１つの請求項の要素を、請求項の要素を区別するために同じ名称を有する別の要素から（序数用語の使用のために）区別するためのラベルとしてのみ使用される。
【００７９】
また、本明細書で使用する表現および用語は、説明の目的のためであり、限定とみなされるべきではない。「含む」、「備える」、「有する」、「包含する」、「伴う」、および、本明細書でのその変形の使用は、その後に列挙される項目およびその等価物並びに追加の項目を包含することを意味する。
【図１】
2014529137.tif 000003
【図２】
2014529137.tif 000004
【図３Ａ】
2014529137.tif 000005
【図３Ｂ】
2014529137.tif 000006
【図３Ｃ】
2014529137.tif 000007
【図４Ａ】
2014529137.tif 000008
【図４Ｂ】
2014529137.tif 000009
【図４Ｃ】
2014529137.tif 000010
【図５Ａ】
2014529137.tif 000011
【図５Ｂ】
2014529137.tif 000012
【図５Ｃ】
2014529137.tif 000013
【図５Ｄ】
2014529137.tif 000014
【図６Ａ】
2014529137.tif 000015
【図６Ｂ】
2014529137.tif 000016
【図７Ａ】
2014529137.tif 000017
【図７Ｂ】
2014529137.tif 000018
【図７Ｃ】
2014529137.tif 000019
【図７Ｄ】
2014529137.tif 000020
【図８Ａ】
2014529137.tif 000021
【図８Ｂ】
2014529137.tif 000022
【図８Ｃ】
2014529137.tif 000023
【図８Ｄ】
2014529137.tif 000024
【図８Ｅ】
2014529137.tif 000025
【国際調査報告】
2014529137.tif 000026
2014529137.tif 000027