(57)【要約】  ウェブアプリケーションが、ジェスチャまたはタッチスクリーンでテキストを編集するためのカスタム選択を提供する。本アプリケーションは、プラットフォームを横切って一貫したユーザインターフェース体験を提供するために、ネイティブブラウザハンドルを選択ハンドルで置き換える。本アプリケーションはまた、ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキームを提供する。本アプリケーションは、複数のデバイスおよびブラウザと互換性のあるセマンティックイベントの一貫した流れにブラウザイベントを標準化する。本アプリケーションはまた、ブラウザ内でジェスチャまたはタッチに最適化されたユーザインターフェースを提供する。本アプリケーションは、ジェスチャまたはタッチ入力を判定し、入力のタイプに従ってユーザインターフェースを最適化する。
2015523643.tif 000002
【特許請求の範囲】
【請求項１】
タッチスクリーンでコンテンツを編集するためのカスタム選択を提供するための、コンピューティングデバイスで実行される方法であって、
コンテンツの範囲の選択を検出するステップと、
前記選択の終了位置を求めるステップと、
ネイティブブラウザハンドルを置き換えるための選択ハンドルを作成するステップと、
前記終了位置で前記選択ハンドルをレンダリングするステップと
を含む、方法。
【請求項２】
請求項１に記載の方法であって、
前記選択の前記終了位置で２つの追加の選択ハンドルを作成して、前記選択を管理するためのユーザインターフェースを提供するステップ
をさらに含む方法。
【請求項３】
請求項１に記載の方法であって、
入力のタイプを検出するステップと、
前記選択ハンドルを提供して、前記入力のタイプに従って選択挙動を再作成するステップと
をさらに含む方法。
【請求項４】
ブラウザタッチイベントの意味解釈のためのスキームを提供するための、コンピューティングデバイスで実行される方法であって、
ウェブアプリケーションとブラウザの間の抽象化層でタッチおよびジェスチャ対応デバイスから一連のブラウザイベントを受信するステップと、
前記一連のブラウザイベントを、前記一連のブラウザイベントの挙動をエミュレートするセマンティックイベントの流れに変換するステップと
を含む、方法。
【請求項５】
請求項４に記載の方法であって、
イベントハンドラマネージャ内のレジスターイベントハンドラで前記一連のブラウザイベントからの１つのブラウザイベントを受信するステップと、
前記１つのブラウザイベントを、前記レジスターイベントハンドラを介して少なくとも１つの関連入力マネージャに送信するステップと
をさらに含む方法。
【請求項６】
請求項５に記載の方法であって、
対応する入力マネージャで前記１つのブラウザイベントを処理するステップと、
前記１つのブラウザイベントに関連する他の入力マネージャに通信を送信して、前記１つのブラウザイベントをさらに処理するステップと
をさらに含む方法。
【請求項７】
請求項６に記載の方法であって、
前記１つのブラウザイベントのドキュメントオブジェクトモデル要素を処理するステップと、
前記他の入力マネージャに照会して、前記１つのブラウザイベントをさらに処理するステップと
をさらに含む方法。
【請求項８】
ブラウザ内でタッチに最適化されたユーザインターフェースを提供するための、コンピューティングデバイスで実行される方法であって、
ジェスチャ入力、タッチ入力およびマウス入力のうちの１つとして入力のタイプを検出するステップと、
検出された前記入力のタイプに最適化されたユーザインターフェースを起動するステップと
を含む、方法。
【請求項９】
請求項８に記載の方法であって、
前記ジェスチャ入力、前記タッチ入力および前記マウス入力のうちの１つとして前記入力のタイプを検出できなかったことに応答して、前記ユーザインターフェースのために、前記ジェスチャ入力と、前記タッチ入力と、前記マウス入力との間で選択するためのオプションを提供するステップ
をさらに含む方法。
【請求項１０】
請求項８に記載の方法であって、
前記マウス入力が検出された前記入力のタイプである場合に、元のユーザインターフェースコントロールを使用するステップと、
検出された前記入力のタイプが、前記タッチ入力および前記ジェスチャ入力のうちの１つである場合に、拡大されたユーザインターフェースコントロールを使用するステップと
をさらに含む方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]ジェスチャまたはタッチデバイスに表示された編集可能なテキストは、オペレーティングシステムユーティリティを介して管理される。ドラッグハンドルなどのシステムユーティリティは、挿入ポイントを置くことまたはコンテンツの上で選択することを助ける。ユーティリティは、ユーザがブラウザ挙動に従って制限されたコンテンツを管理することに依拠する。ウェブページが、より豊かなウェブアプリケーション体験を提供するために、コンテンツとのユーザ対話を制御する場合、ユーティリティは、誤作動することもユーザを妨害することもある。
【０００２】
[0002]ドラッグおよびクリックを含むシナリオにおいて、ブラウザは、従来のシステムでは一貫性なしにイベントを処理することがある。加えて、従来のシステムは、複雑な形でウェブアプリケーションに対する新たな入力に対処することがある。従来のシステムは、孤立したハンドラにわたって分散されたクリックおよびドラッグを処理するための論理を介してそのような課題に対処する。従来のシステムによる他の解決法は、同様のイベントのイベントハンドラ内でコードを複製することを含む。
【０００３】
[0003]ユーザは、様々なデバイス、すなわちジェスチャまたはタッチモニターを有する、デスクトップ、スレート、およびラップトップからウェブアプリケーションにアクセスすることができる。ほとんどのデバイスは、マウス、ジェスチャ、タッチ、または同等の入力機構をサポートする。マウスに基づく入力でうまく機能するユーザインターフェース（ＵＩ）は、カーソルがなく不正確な指があるジェスチャまたはタッチ入力では必ずしもうまく機能しない。
【発明の概要】
【０００４】
[0004]本概要は、発明を実施するための形態で以下にさらに説明される概念の選択を簡潔な形で紹介するために提供される。本概要は、特許請求されている主題の重要な特徴または本質的特徴を排他的に識別するものではなく、特許請求されている主題の範囲を判定する助けになることを意図されてもいない。
【０００５】
[0005]実施形態は、挿入ポイントの下でおよび範囲選択の最後に選択ハンドルを作成することによって、選択を操作するためのユーザインターフェースを提供することを目的とする。選択ハンドルは、ブラウザハンドルに置き換わることができる。選択ハンドルは、ジェスチャまたはタッチに基づく環境でアプリケーションまたはオペレーティングシステム選択挙動を複製することができる。選択ハンドルは、ジェスチャまたはタッチ対応プラットフォームおよびブラウザにわたる選択一貫性を提供することができる。選択ハンドルは、コンテンツを消費する代わりにコンテンツを編集するのにより適するように選択挙動を実施することができる。
【０００６】
[0006]他の実施形態は、ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキームを提供することを目的とする。アプリケーションの抽象化層は、他のアプリケーションとブラウザの間のインターフェースの役割を果たすことができる。タッチまたはジェスチャ対応デバイス内の検出されるブラウザイベントは、非決定的であり、デバイスおよびブラウザにわたって変わり得る。実施形態によるアプリケーションを実行するシステムは、ブラウザイベントを受信し、そのブラウザイベントをセマンティックイベント（クリック、コンテキストメニュー、ドラッグなど）の一貫した流れに標準化することができる。
【０００７】
[0007]さらに他の実施形態は、ブラウザのためのジェスチャまたはタッチに最適化されたユーザインターフェースを提供することを目的とする。実施形態によるアプリケーションを実行するシステムでは、ユーザインターフェースは、ユーザアクションに応答して提示され得る。ユーザインターフェースは、タッチおよびマウスなどの入力の検出されたタイプに適合するように最適化され得る。別法として、ユーザインターフェースの特定の部分の挙動は、入力のタイプに基づいて変更され得る。加えて、初期化中に提示されるデフォルトユーザインターフェースは、提示された選択基準に従ってユーザ変更可能でもよい。
【０００８】
[0008]これらのおよび他の特徴および利点は、以下の詳細な説明を読み関連の図面を検討すれば明らかになろう。前述の概要および以下の詳細な説明の両方が説明を目的とし、特許請求されるものとしての態様を限定しないことを理解されたい。
【図面の簡単な説明】
【０００９】
【図１】実施形態が実装され得る例示的ネットワーク図である。
【図２】実施形態による例示的デフォルトおよびカスタム選択挙動の流れを示す図である。
【図３】実施形態によるブラウザとアプリケーションの間のイベントを管理する例示的抽象化層を示す図である。
【図４】実施形態によるユーザインターフェースの最適化を示す流れ図である。
【図５】実施形態による入力のタイプに基づくテーブルコントロールのための最適化されたユーザインターフェースの例を示す図である。
【図６】実施形態による入力の検出されたタイプに基づく色およびフォントコントロールのための最適化されたユーザインターフェースの例を示す図である。
【図７】入力の検出されたタイプに基づくスタイルおよび検索コントロールのための最適化されたユーザインターフェースと実施形態による最適化されたユーザインターフェースを可能にするために提示される選択コントロールの例を示す図である。
【図８】実施形態によるシステムが実装され得るネットワーク環境の図である。
【図９】実施形態が実装され得る例示的コンピューティング動作環境のブロック図である。
【図１０Ａ】挿入ポイントの下でおよび範囲選択の最後に選択ハンドルを提供するプロセスの論理流れ図である。
【図１０Ｂ】ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキームを提供するプロセスのための論理流れ図である。
【図１０Ｃ】ブラウザのためのジェスチャまたはタッチに最適化されたユーザインターフェースを提供するプロセスのための論理流れ図である。
【発明を実施するための形態】
【００１０】
[0021]前述で簡潔に説明されたように、挿入ポイントの下でおよび範囲選択の最後に選択ハンドルを作成することによって、選択を操作するためにユーザインターフェースが提供され得る。ブラウザジェスチャまたはタッチイベントの意味解釈のためにスキームも提供され得る。加えて、ジェスチャまたはタッチに最適化されたユーザインターフェースが、ブラウザのために提供され得る。
【００１１】
[0022]以下の詳細な説明では、その一部を形成し、実例として特定の実施形態または例が示される、添付の図面が参照される。これらの態様は結合させることができ、他の態様が使用可能であり、そして、本開示の趣旨および範囲を逸脱することなしに構造的変更が行われ得る。したがって、以下の詳細な説明は限定的意味で解釈されるべきではなく、本開示の範囲は、添付の特許請求の範囲およびそれらと同等のものによって定義される。
【００１２】
[0023]実施形態が、コンピューティングデバイスでオペレーティングシステムを実行するアプリケーションプログラムと連動して実行するプログラムモジュールとの一般的関連で説明されることになるが、態様は他のプログラムモジュールとの組合せでも実装され得ることが、当業者には理解されよう。
【００１３】
[0024]一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造体、および、特定のタスクを実行するまたは特定の抽象化データタイプを実装する他のタイプの構造体を含む。さらに、実施形態は、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサーに基づくまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、および同等のコンピューティングデバイスを含む他のコンピュータシステム構成で実施され得ることが、当業者には理解されよう。実施形態はまた、タスクが、通信ネットワークを介してリンクされた遠隔処理デバイスによって実行される、分散コンピューティング環境でも実施され得る。分散コンピューティング環境で、プログラムモジュールは、ローカルメモリ記憶装置および遠隔メモリ記憶装置の両方に置かれ得る。
【００１４】
[0025]実施形態は、コンピュータ実装されたプロセス（方法）、コンピューティングシステムとして、あるいは、コンピュータプログラム製品またはコンピュータ可読媒体などの製造品として、実装され得る。コンピュータプログラム製品は、コンピュータシステムによって可読であり、コンピュータまたはコンピューティングシステムに例示的プロセスを実行させるための命令を備えるコンピュータプログラムをコード化する、コンピュータ記憶媒体でもよい。コンピュータ可読記憶媒体は、コンピュータ可読メモリデバイスである。コンピュータ可読記憶媒体は、たとえば、揮発性コンピュータメモリ、不揮発性メモリ、ハードドライブ、フラッシュドライブ、フロッピー（登録商標）ディスク、またはコンパクトディスク、および同等の媒体のうちの１つまたは複数を介して、実装され得る。
【００１５】
[0026]本明細書を通して、「プラットフォーム」という用語は、ジェスチャまたはタッチスクリーンでコンテンツを編集するためのカスタム選択、ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキーム、およびブラウザ内のジェスチャまたはタッチに最適化されたユーザインターフェースを提供するためのソフトウェアおよびハードウェアコンポーネントの組合せでもよい。プラットフォームの例は、複数のサーバを介して実行されるホスト型サービス、単一コンピューティングデバイスで実行されるアプリケーション、および同等のシステムを含むが、これらに限定されない。「サーバ」という用語は、一般に、通常はネットワーク環境で、１つまたは複数のソフトウェアプログラムを実行するコンピューティングデバイスを示す。しかし、サーバはまた、ネットワーク上のサーバとして見られる１つまたは複数のコンピューティングデバイスで実行される仮想サーバ（ソフトウェアプログラム）として実装することもできる。これらの技術および例示的動作のさらなる詳細が、以下に提供される。
【００１６】
[0027]図１を参照すると、ダイアグラム１００は、実施形態が実装され得る例示的ネットワーク図を示す。ダイアグラム１００に示されたコンポーネントおよび環境は、説明を目的とする。実施形態は、様々なコンピューティングデバイスおよびシステム、ハードウェアおよびソフトウェアを使用する様々なローカルの、ネットワーク化された、クラウドに基づくおよび同様のコンピューティング環境で実装され得る。
【００１７】
[0028]ダイアグラム１００に示された例示的環境で、タッチスクリーンでコンテンツを編集するためのカスタム選択が、ローカルにインストールされたまたはウェブのアプリケーションによって、固定コンピューティングデバイス（デスクトップもしくはラップトップコンピュータ）、またはハンドヘルドコンピュータ、タブレット１０６、スマートフォン１０８、車載コンピュータなどのモバイルデバイスなどのタッチおよびジェスチャのうちの一方または双方に基づく入力機構を有するクライアントデバイスで提供され得る。コンテンツは、テキスト、テーブル、画像などでもよく、実施形態による技法を使用して作成または編集されてもよい。
【００１８】
[0029]ウェブアプリケーションの場合、サーバ１０２は、サービス（たとえば、スプレッドシートサービス、文書処理サービス、電子メールサービス、または同様のもの）を提供することができ、そのサービスは、１つまたは複数のネットワーク１０４を介してウェブアプリケーションを介してアクセスされ得る。一般に、特定のサービスが、スプレッドシート、ワードプロセッシング文書、プレゼンテーション、電子メール、グラフィックス文書、および同等のものなどの様々な種類の文書を見るおよび編集するためのユーザインターフェースを表示することができるクライアントデバイス１０６および１０８上のブラウザによって、アクセスされ得る。
【００１９】
[0030]実施形態によるアプリケーションは、クライアントデバイス１０６および１０８で検出されたジェスチャ、タッチ、およびマウスのイベントをインターセプトすることができる。アプリケーションは、ジェスチャおよびタッチイベントがブラウザまたはデバイス依存の選択ハンドルを起動するのを止めることができる。代わりに、アプリケーションは、入力に最適化された選択ハンドルを起動して、複数のプラットフォームにわたってコンテンツ選択のための一貫した体験を提供することができる。
【００２０】
[0031]図２は、実施形態による例示的デフォルトおよびカスタム選択挙動の流れを示す。ダイアグラム２００で、ウェブアプリケーションなどのアプリケーションは、ブラウザの選択挙動およびオペレーティングシステム（ＯＳ）選択ハンドルをトリガするイベントをインターセプトすることができる。アプリケーションは、それらのブラウザイベントをキャンセルすることができ、ＯＳがそれらのイベントを見ることおよびそれらのイベントに基づいてアクションすることを阻止することができる。アプリケーションは、ブラウザおよびＯＳのうちの一方または双方のイベントに対応する選択を決定することができる。アプリケーションは、その選択に対応する選択ハンドルを表示することができる。アプリケーションは、範囲選択の終わりを見つけ、終わりの位置に従って対応する選択ハンドルをレンダリングすることができる。
【００２１】
[0032]デフォルト選択挙動２０２で、検出されたジェスチャまたはタッチイベントなどのブラウザイベント２０４は、アプリケーション、たとえばブラウザ内のテキストなどのコンテンツの選択を開始することができる。検出されたブラウザイベントは、ブラウザ動作を開始して、オペレーティングシステム２０６での選択を処理することができる。オペレーティングシステムは、選択ユーティリティを初期化することができる。
【００２２】
[0033]カスタム選択挙動２０８では、ウェブアプリケーションは、ブラウザイベントをインターセプトするおよびそのイベントを選択ユーティリティで置き換えるユーザインターフェースを提供することができる。加えて、アプリケーションは、ジェスチャまたはタッチイベント２１０などのブラウザイベントを検出することができる。アプリケーションはまた、ブラウザイベントをインターセプトすることができ、イベントをキャンセルすることができる２１２。さらに、アプリケーションは、ブラウザによって提供される選択ユーティリティを使用し、選択を行うことができる２１４。
【００２３】
[0034]実施形態によるアプリケーションは、テキストの範囲の選択を検出することができる。選択は、ジェスチャまたはタッチ入力、マウス入力、キーボード入力などを介してもよい。加えて、アプリケーションは、検出された選択の挿入ポイントの下で選択ハンドルを作成することができる。次に、アプリケーションは、ネイティブブラウザハンドルを入力に最適化された選択ハンドルで置き換えることができる。
【００２４】
[0035]加えて、アプリケーションは、選択の終わりに２つの追加の選択ハンドルを作成して、選択を管理するためのユーザインターフェースを提供することができる。ユーザインターフェースは、ユーザが選択を拡張または縮小するための選択を行うことができるようにすることが可能である。アプリケーションはまた、ネイティブブラウザハンドルの選択の挙動をエミュレートすることができる。アプリケーションは、検出された入力のタイプに従ってデフォルトブラウザ選択挙動をエミュレートし、デフォルトの挙動を再作成するための適切なハンドルを提供することができる。さらに、アプリケーションは、選択の代替挙動を提供することができる。アプリケーションは、代替選択挙動に関連するルールを実行することができる。一例は、選択に関連する通知を示すことを含み得る。
【００２５】
[0036]図３は、ブラウザと実施形態によるウェブアプリケーションの間のイベントを管理する例示的抽象化層を示す。ダイアグラム３００で、イベントハンドラマネージャ（ＥＨＭ）３０６は、ブラウザ３０２から入力マネージャにブラウザイベント３０４を送信することができる。１つまたは複数の入力マネージャ３０８、３１０、および３１２が存在し得る。
【００２６】
[0037]入力マネージャは、イベントを処理することができる。入力マネージャは、イベントをウェブアプリケーション３１６によって理解可能なセマンティックイベント３１４に変えることができる。セマンティックイベント３１４は、次いで、イベントハンドラマネージャ３０６によってアプリケーションに送信され得る。例示的シナリオでは、入力マネージャがジェスチャまたはタッチイベントをブラウザから受信し得る場合、入力マネージャは、ブラウザイベントをウェブアプリケーション３１６に送信するためのジェスチャまたはタッチクリックイベントにコンバートすることができる。
【００２７】
[0038]実施形態によるスキームは、ブラウザに由来するイベント（タッチ開始、タッチ終了、タッチ移動など）のためのレジスターイベントハンドラを含み得る。レジスターイベントハンドラは、ブラウザイベントを受信したとき、イベントを入力マネージャに経路指定することができる。入力マネージャは、アプリケーションによって理解可能なセマンティックイベント（たとえば「クリック」）の知識を有し得る。入力マネージャはまた、セマンティックイベントを構成する一連のブラウザイベントに関する情報（たとえば、タッチ開始に続くタッチ終了が、クリックイベントを構成する）を保持することができる。入力マネージャは、ブラウザイベントを受信し、セマンティックイベントに関するそれらの内部知識を使用して、アプリケーションにセマンティックイベントの発生を知らせるかどうかを決定することができる。
【００２８】
[0039]入力マネージャはまた、複数の入力マネージャがブラウザイベントを処理する場合に他の入力マネージャと通信する能力を有し得る。一例は、クリックイベントまたはコンテキストメニューイベントのいずれかを起動するブラウザからのタッチ開始イベントを含み得る。結果として、２つの異なる入力マネージャが、ブラウザイベントを処理することができる。
【００２９】
[0040]入力マネージャは、イベントのドキュメントオブジェクトモデル（ＤＯＭ）要素に情報のキャッシュを置くことによって、通信することができる。各入力マネージャは、イベントを受信したときにＤＯＭ要素を処理することができ、他の入力マネージャに照会し、同イベントのさらなる処理を決定することができる。
【００３０】
[0041]イベントハンドラマネージャはまた、イベントを入力マネージャに経路指定する順番を決定することができる。イベントハンドラマネージャは、優先度付きキューで入力マネージャを記憶することによって、イベントの経路指定を順序付けることができる。例示的シナリオでは、１の優先度を有する入力マネージャは、２の優先度を有する入力マネージャより前にイベントを受信することができる。等しい優先度を有する入力マネージャは、ランダムな順序でイベントを受信することができる。加えて、入力マネージャは、クリックなどのセマンティックイベントの発生を判定したときに、アプリケーションに通知することができる。入力マネージャはまた、他の入力マネージャに通知して、関連するセマンティックイベントのリッスンを停止することができる。
【００３１】
[0042]実施形態によるアプリケーションで、イベントハンドラマネージャコードは、入力マネージャからブラウザイベントを受信するコードの部分と、ブラウザイベントで動作するもう１つの部分と、ブラウザイベントをコンバートするさらにもう１つの部分とを分ける代わりに、１つの大きなコンポーネントを包含することが可能である。さらに、入力マネージャは、各入力マネージャによって処理されるイベントに関連するＤＯＭ要素に情報のキャッシュを付加する代わりに互いへの参照を保持することによって、互いの間で通信することができる。
【００３２】
[0043]例示的一実施形態によれば、ドラッグイベントを処理する入力マネージャは、マウスおよびジェスチャまたはタッチイベントを受け取り、それらをアプリケーションによって理解可能なドラッグイベントに標準化することができる。たとえば、ドラッグ入力マネージャ（ＤＩＭ）は、キーボードイベントを処理する入力マネージャとコンテキストメニューイベントを処理する入力マネージャとによって既に使用されるイベントハンドラマネージャを使用することによって、ドラッグイベントを管理することができる。ＥＨＭは、ＤＯＭにおけるブラウザのイベントハンドラプロキシの登録を追跡することができ、アプリケーションの残りのイベントハンドラはＤＯＭに対して登録する。加えて、ＥＨＭを使用する入力マネージャは、ブラウザイベントを受信し、次いで、それらをアプリケーションによって理解可能なセマンティックイベントに標準化することができる。入力マネージャは、次いで、アプリケーション内の適切なリスナーに通知するＥＨＭに標準化されたセマンティックイベントを渡して返すことができる。
【００３３】
[0044]ＤＩＭは、マウスダウン、マウスアップ、マウス移動、クリック、タッチダウン、タッチアップ、タッチ移動、およびタッチキャンセルを含むいくつかのブラウザイベントをＥＨＭを介して登録することができる。ＤＩＭは、ドラッグイベントを判定するために、マウスダウンまたはタッチダウンイベントをリッスンすることができる。ＤＩＭは、マウス移動またはタッチ移動イベントを受信しながら、ドラッグ閾値と運動デルタを比較することができる。マウス移動またはタッチ移動イベントが起点値から十分遠くに移動した場合、ＤＩＭは、ドラッグアダプターにドラッグイベントを送信することによって、ドラッグイベントをトリガすることができる。ドラッグアダプターは、特定のＤＯＭ要素に接続されたウェブアプリケーションコンパニオン（ＷＡＣ）内に存在するコードでもよい。ＤＩＭはまた、マウスイベント引数またはジェスチャまたはタッチイベント引数のいずれかをドラッグアダプターに送信して、アダプターがマウスドラッグとタッチドラッグを区別することを可能にすることができる。
【００３４】
[0045]特定のイベントについてＥＨＭで登録された入力マネージャは、優先度付きキュー内に置かれ得る。ブラウザイベントは、ＥＨＭがブラウザイベントをとらえたときに優先度の順番で入力マネージャに通知することができる。結果として、ＤＩＭは、マウス、ジェスチャ、タッチ、または同様のイベントを受信して、ドラッグイベントとしてＤＩＭによって解釈されたイベントを追加の処理のためにマウス入力マネージャ（ＭＩＭ）またはタッチ入力マネージャ（ＴＩＭ）に同時に送信しながら、ドラッグが起こっているかを判定することができる。
【００３５】
[0046]ＤＩＭは、ＭＩＭおよびＴＩＭより高い優先度でＥＨＭで登録され得る。ＤＩＭがドラッグイベントとしてＤＩＭによって解釈されたイベントの処理を開始してＭＩＭまたはＴＩＭがそれらのイベントを処理するのを阻止するとき、ＤＩＭはそれらのイベントをキャンセルすることができる。例示的シナリオでは、ＤＩＭの阻止は、コンテキストメニューがタッチドラッグ中に起動するのを止めることができる。
【００３６】
[0047]いくつかの例で、ドラッギングに特有のソースコードが、ＭＩＭから取り除かれ、ＤＩＭ内に置かれ得る。ＭＩＭは、ＥＨＭを介して送信することができる。ＥＨＭは、ＥＨＭ機能を複製するＭＩＭソースコードを取り除くことができる。ＭＩＭは、ドラッギングに関連しないマウスイベントを受信および標準化するように最適化されたソースコードでもよい。
【００３７】
[0048]ＴＩＭは、ドラッギングと無関係のジェスチャまたはタッチイベントを受信し、アプリケーションによる使用のためにイベントを標準化することができる。ＴＩＭはまた、ブラウザプロキシーハンドラおよびアプリケーションハンドラ管理のためにＥＨＭを使用することができる。ＴＩＭは、以下のブラウザイベント、すなわちタッチダウン、タッチアップ、タッチ移動、およびクリックのためにＥＨＭに登録することができる。ＴＩＭは、タップイベント、タッチおよびホールドイベントを受信し、それらのイベントをＷＡＣが理解できるイベントに標準化することができる。ＴＩＭは、タップイベントをクリックイベントに標準化することができる。ＴＩＭは、以下のイベント、すなわちユーザがモバイルブラウザでタップするときの、タッチダウン、タッチアップ、およびクリックを受信することができる。
【００３８】
[0049]クリックイベントを検出したとき、ＴＩＭは、そのイベントにジェスチャまたはタッチイベント引数オブジェクトをアタッチした後に、クリックイベントをアプリケーションに送信することができる。ＴＩＭは、クリックイベントがマウスイベントではなくてジェスチャまたはタッチイベントに由来することをアプリケーションに知らせるために、ジェスチャまたはタッチイベントをアタッチすることができる。モバイルブラウザは、一般に、タッチダウンまたはタッチアップイベントがブラウザによって検出され、クリックイベントとして解釈された後に、クリックイベントを生成することができる。例示的シナリオでは、ブラウザがユーザはタップではなくてフリックまたはドラッグしようとしたと判定した場合、クリックイベントは検出され得ない。ＤＩＭは、ドラッグイベントの直後に生じたクリックイベントをフィルタで取り除くことができる。ＴＩＭは、素早く続けた２つのタップをダブルクリックイベントに標準化することができる。ブラウザで素早く続けた２つのタップを行うユーザはまた、以下のイベント、すなわちタッチダウン、タッチアップ、およびクリックを生成することができる。
【００３９】
[0050]ＴＩＭはまた、クリックイベントをアプリケーションに送信し、第２のタップのリッスンを開始することができる。ＴＩＭが所定の時間内（ユーザまたはシステムは時間値を定義することができる）に第２のクリックイベントを受信し得る場合、ＴＩＭは、第２のクリックイベントをアプリケーションに送信することができ、続いてアプリケーションにダブルクリックイベントが送信される。クリックおよびダブルクリックの両方が、アプリケーションによって処理され得る。ダブルタップによって起動されたダブルクリックとともにクリックの処理は、アプリケーションにダブルタップおよびダブルクリックに一貫して動作させることができる。
【００４０】
[0051]ＴＩＭは、タッチおよびホールドイベントをコンテキストメニューイベントに標準化することができる。ユーザがブラウザのスクリーンでタッチおよびホールドし得るとき、ＴＩＭは、タッチダウンイベントを受信することができる。タッチダウンイベントを受信したとき、ＴＩＭは、所定の時間の後にコンテキストメニューを表示することができるタイマーを起動することができる。所定の時間が過ぎた後、ＴＩＭは、コンテキストメニューイベントをアプリケーションに送信することができる。タッチアップイベントが所定の時間が経過する前に検出された場合、タイマーはキャンセルすることができ、コンテキストメニューは表示され得ない。ＴＩＭがコンテキストメニューイベントを送信した後は、ユーザがタッチおよびホールドを終了しない場合には、ＴＩＭは、コンテキストメニューを表示した後にドラッグイベントを処理することを阻止するために、ブラウザを介してタッチアップイベントをシミュレートすることができる。
【００４１】
[0052]アプリケーション開発者は、カスタムコンポーネントをレジスターに提供し、ジェスチャまたはタッチイベントに応答することを可能にされ得る。ＴＩＭはジェスチャまたはタッチイベントをマウスイベントまたはコンテキストメニューイベントに標準化することによって動作することができるので、カスタムコンポーネントは、レジスターハンドラを介してＭＩＭまたはコンテキストメニューのための入力マネージャに登録することができる。
【００４２】
[0053]ＥＨＭは、ＴＩＭがクリックイベントを標準化し、ＥＨＭにクリックイベントを処理するように要求するとき、アプリケーションハンドラに送信することができる。アプリケーションにおける本ハンドラ方法は、イベントを処理するために情報に沿って送信するために使用することができるイベントハンドラ引数オブジェクトを受信することができる。
【００４３】
[0054]スクロール可能なコンテンツは、通常は、インラインフレーム内に存在し得る。アプリケーションにおける任意のスクローリングは、２本の指によって生成されたイベントを含み得る。実施形態によれば、イベントハンドラマネージャは、タブレットおよび同様のデバイスの基本的な一本指のスクローリングを提供することができる。そのような実施形態は、以下のアクション、すなわち（１）ＤＯＭ要素にアタッチされた新たなスクロールドラッグアダプターを作成し、（２）優先度「最後」を有するＤＯＭ要素のＤＩＭにアダプターを登録する、を実行することができる。ＤＩＭは、要素にアタッチされたドラッグアダプターのキューをサポートすることができる。ＤＩＭは、順番にスクローリングイベントを処理し、現在のドラッグアダプターがドラッグイベントを処理することができない場合には、次のドラッグアダプターにイベントを送信することができる。優先度「最後」は、そのドラッグアダプターがドラッグイベントを処理する前に、他のドラッグアダプターが処理する機会を有することを意味し得る。
【００４４】
[0055]スクロールドラッグアダプターは、ドラッグアダプターインターフェースを実装することができる内部クラスでもよい。インターフェースは、関連ＤＯＭ要素でスクローリングイベントを処理することができる。オンドラッグ開始方法は、現在の位置を記憶することができる。オンドラッグ移動方法は、新たな位置と前の位置の差を計算することができる。オンドラッグ移動方法は、その差に合わせるために、ＤＯＭ要素のスクロールの上位置およびスクロールの左位置を設定することができる。ポイントおよびタイムスタンプのリストが、処理された各ドラッグ移動イベントについて記録され得る。オンドラッグエンド方法では、放物線回帰が計算されて指の加速を判定し、それに応じてページ動画を実行することができる。
【００４５】
[0056]図４は、実施形態によるユーザインターフェースの最適化を示す流れ図を示す。ダイアグラム４００で、実施形態によれば、アプリケーションは、ユーザインターフェース（ＵＩ）によって表示されたアンカー４０２でクリックイベントを検出することができる。アプリケーションは、クリックイベント４０４のジェスチャまたはタッチ入力に関する判定を行うことができる。アプリケーションがタッチ入力を判定し得る場合、アプリケーションは、ジェスチャまたはタッチに最適化されたＵＩを表示することができる４０６。アプリケーションがジェスチャまたはタッチとして入力のタイプを判定することができない場合、アプリケーションは、マウス入力に関する判定を行うことができる４０８。アプリケーションがマウスに基づくものとして入力のタイプを判定した場合、アプリケーションは、マウス入力に最適化されたＵＩを表示することができる４１０。そうでない場合、アプリケーションは前の状態または静的状態でＵＩを示すことができる４１２。
【００４６】
[0057]アプリケーションは、動的ＵＩをインスタンス化するアンカー要素を起動することができる。例示的シナリオでは、ボタンコントロールは、新たなウィンドウ枠を起動することができる。もう１つの例示的シナリオでは、編集可能なサーフェスコントロールは、キャレットを起動することができる。
【００４７】
[0058]ＵＩは、アプリケーションがジェスチャまたはタッチ入力を検出する場合に、ジェスチャまたはタッチに基づく制御に最適化され得る。例示的シナリオでは、大きなＵＩコントロールが、検出されたジェスチャまたはタッチ入力のためにＵＩによって使用され得る。ＵＩは、アプリケーションがマウス入力を検出する場合に、マウスに基づく制御に最適化され得る。例示的シナリオでは、ＵＩは、ＵＩ内のホバーなどのマウス制御中心機能を可能にすることができる。
【００４８】
[0059]コンテキストメニュー制御はまた、ＵＩの入力のタイプに従って同様に最適化され得る。アプリケーションがマウスイベントによって起動されたコンテキストメニューを検出した場合、マウス制御に最適化されたコンテキストメニューが、ＵＩ内で起動され得る。別法として、ジェスチャまたはタッチ制御に最適化されたコンテキストメニューが、コンテキストメニューを起動するために検出されたジェスチャまたはタッチイベントに応答してＵＩ内で起動され得る。
【００４９】
[0060]アプリケーションは、クリック（またはコンテキストメニュー）イベントのために登録すること、クリックイベントを検出すること、および、入力のタイプのクリックイベントを評価することによって、アンカーで使用される入力のタイプを判定することができる。ブラウザが、入力のタイプを提供することができない場合、入力のタイプは、入力マネージャアプリケーションプログラミングインターフェース（ＡＰＩ）を使用し、取得され得る。入力マネージャＡＰＩのクリック入力マネージャ（ＣＩＭ）コンポーネントは、クリックイベントについて通知し、クリックイベントの入力のタイプを送信することができる。ＣＩＭは、複数のイベントをリッスンして入力のタイプを判定することができる。ＣＩＭは、オンクリックイベント、および他のブラウザ特有のジェスチャまたはタッチイベントをリッスンすることができる。タッチ開始イベントがクリックの直前に生じた場合（たとえば３００ミリ秒未満）、アプリケーションは、クリックイベントがジェスチャまたはタッチ入力の結果であったと結論を下すことができる。別法として、入力マネージャは、クリックイベントを起動することを直ちに決定し、入力マネージャがタッチ移動イベントなしにタッチ開始イベントに続けてタッチ終了イベントを受信するときにはいつでも、ジェスチャまたはタッチ入力を判定することができる。ジェスチャまたはタッチ入力でのポインターイベントが、クリックイベントの直前に生じる場合、アプリケーションは、ジェスチャまたはタッチ入力に由来するクリックイベントを判定することができる。ポインターイベントは、ジェスチャまたはタッチイベントではあり得ない。ブラウザによって実装されるカスタムポインターイベントは、ジェスチャまたはタッチ、ペン、およびマウス入力を含むがこれらに限定されないブラウザによってサポートされるあらゆる入力のタイプについて起動し得る。ブラウザは、カスタムポインターを介して検出されたイベントの入力のタイプを送信することができる。別法として、アプリケーションは、ジェスチャイベントをリッスンし、そのジェスチャイベントに関するブラウザによって提供される情報を使用して、入力のタイプを判定することができる。
【００５０】
[0061]ＵＩは、最初に、マウス入力のために最適化され得る。その後、アプリケーションは、ジェスチャまたはタッチ入力のためのサイズおよびスペーシングパラメータを実装するカスケーディングスタイルシート（ＣＳＳ）を適用することによって、ジェスチャまたはタッチ入力カスタマイズを実装することができる。ＣＳＳクラスは、ブラウザのＤＯＭまたはＵＩ要素のその部分でジェスチャまたはタッチ特有のスタイリングを起動するトップＣＳＳレベルに追加され得る。別法として、アンカーがジェスチャまたはタッチ入力を介して起動され得るときに、完全に異なるＤＯＭ要素が、動的ＵＩで生成され得る。アプリケーションはまた、キーボードに基づく入力に最適化されたＵＩを起動することができる。加えて、アプリケーションは、ペンに基づく入力に最適化された動的ＵＩを起動することができる。
【００５１】
[0062]ＵＩの挙動は、検出された入力のタイプに基づいて変化し得る。アプリケーションは、ＵＩのコンポーネントでの検出されたクリックイベントに従って、ＵＩの挙動を変更することができる。別法として、アプリケーションは、指タップによって起動された検出されたジェスチャまたはタッチイベントに従って、ＵＩの挙動を変更することができる。例示的シナリオでは、ＵＩは、分割ボタンコントロールを表示することができる。ＵＩは、ユーザが分割ボタンコントロールのタイプを変更することを可能にするドロップダウンメニューを表示することができる。ユーザがマウスでボタンコントロールをクリックする場合、アプリケーションは、ボタンコントロールに関連する動作を実行することができる。別法として、ユーザがボタンコントロールをタップする場合、ＵＩは、メニューを表示することができる。入力マネージャは、分割ボタンコントロールでのユーザアクションに従って、入力のタイプを判定することができる。
【００５２】
[0063]アプリケーションは、ユーザエージェントストリングおよびブラウザ特有のＡＰＩを使用して静的またはブート時間ＵＩを最適化することができる。アプリケーションは、ブラウザに関する情報を使用して、ブラウザのマウス、ジェスチャもしくはタッチ、または組合せ入力機能を判定することができる。静的ＵＩは、マウス入力のみの機能を有するブラウザを検出すると、マウス入力に最適化され得る。静的ＵＩの最適化はまた、同様に、ジェスチャもしくはタッチ入力または組合せ入力のシナリオに従って、カスタマイズされ得る。加えて、ボタンコントロールは、その両方がブラウザによる機能として検出され得るときに、ジェスチャまたはタッチおよびマウス入力の間で静的ＵＩを切り替えるために提供され得る。ボタンコントロールは、ブラウザクッキーでユーザセッション間にその状態を持続することができる。
【００５３】
[0064]図５は、実施形態による入力のタイプに基づいてテーブルコントロールのための最適化されたユーザインターフェースの例を示す。ダイアグラム５００は、マウス入力５０２およびジェスチャまたはタッチ入力５１２に従って最適化された例示的テーブルコントロールを表示する。
【００５４】
[0065]ＵＩを管理するアプリケーションは、ＵＩでのユーザアクションの入力のタイプを検出することができる。検出されるユーザアクションは、ジェスチャもしくはタッチ入力またはマウスに基づく入力でもよい。ＵＩは、マウス入力のためのテーブルコントロール５０２を表示するように最適化され得る。ＵＩは、標準サイズテーブルコントロール５０４および標準サイズのテーブルサイズ選択コントロール５０６を表示することができる。標準サイズは、アプリケーションの開発中に決定されたＵＩの各コンポーネントのシステム設定でもよい。ユーザは他のタイプの入力と比較してより正確にマウスポインターを移動させることができ得るので、ＵＩは標準サイズのコントロールを表示し得る。
【００５５】
[0066]別法として、ＵＩは、検出されるジェスチャまたはタッチ入力のための最適化されたテーブルコントロール５１２を表示することができる。ＵＩは、大きなサイズのテーブルコントロール５１４および大きなサイズのテーブルサイズ選択コントロール５１６を表示することができる。大きなサイズは、ディスプレイ特性に従って判定される各ＵＩコンポーネントのシステム設定でもよい。ユーザは、ジェスチャまたはタッチ入力を介してＵＩの細かな制御を実現することができなくなり得るので、ＵＩは、大きなサイズのコントロールを表示することができる。
【００５６】
[0067]図６は、実施形態による検出された入力のタイプに基づく色およびフォントコントロールのための最適化されたユーザインターフェースの例を示す。ダイアグラム６００は、検出された入力のタイプに従って最適化された例示的色およびフォントコントロールを表示する。
【００５７】
[0068]ＵＩを管理するアプリケーションは、入力のマウスまたはジェスチャもしくはタッチに基づくタイプのいずれかとしてＵＩでのユーザアクションの入力のタイプを検出することができる。アプリケーションがマウスタイプの入力を検出した場合、ＵＩは、対応するユーザアクションに関連するマウスタイプの入力に最適化された色コントロール６０２またはフォントコントロール６１０を表示することができる。ＵＩは、標準サイズ色選択コントロール６０６を有する色コントロール６０２または標準サイズフォント選択コントロール６１４を有するフォントコントロールを表示することができる。ユーザは他のタイプの入力と比較してより正確にマウスポインターを移動させることができ得るので、ＵＩは標準サイズのコントロールを表示することができる。
【００５８】
[0069]別法として、アプリケーションがジェスチャまたはタッチタイプの入力を検出した場合、ＵＩは、対応するユーザアクションに関連するジェスチャまたはタッチ入力に最適化された色コントロール６０４またはフォントコントロール６１２を表示することができる。ＵＩは、大きなサイズの色選択コントロール６０８を有する色コントロール６０４または大きなサイズのフォント選択コントロール６１６を有するフォントコントロール６１２を表示することができる。ユーザは、ジェスチャまたはタッチ入力を介してＵＩの細かな制御を実現することができなくなり得るので、ＵＩは大きなサイズのコントロールを表示することができる。
【００５９】
[0070]図７は、検出された入力のタイプに基づくスタイルおよび検索コントロール向けに最適化されたユーザインターフェースと、実施形態による最適化されたユーザインターフェースを可能にするために提示される選択コントロールとの例を示す。ダイアグラム７００は、検出された入力のタイプに従って最適化された例示的テキストスタイルおよび検索コントロール、ならびに、入力のタイプを選択するためのドロップダウンコントロールを表示する。
【００６０】
[0071]アプリケーションは、ＵＩでのユーザアクションの入力のタイプをマウスまたはジェスチャもしくはタッチ入力のいずれかとして検出することができる。アプリケーションがマウス入力を検出した場合、ＵＩは、マウス入力に最適化されたテキストスタイルコントロール７０２または対応するユーザアクションに関連する検索コントロール７１０を表示することができる。ＵＩは、標準テキストスタイル選択コントロール７０６を有するテキストスタイルコントロール７０２または標準サイズの検索ボックスコントロール７１４を有する検索コントロール７１０を表示することができる。ユーザは、他のタイプの入力と比較してより正確にマウスポインターを移動させることができ得るので、ＵＩは、標準サイズのコントロールを表示することができる。
【００６１】
[0072]別法として、アプリケーションがジェスチャまたはタッチ入力を検出した場合、ＵＩは、ジェスチャまたはタッチ入力に最適化されたフォントスタイルコントロール７０４または対応するユーザアクションに関連する検索コントロール７１２を表示することができる。ＵＩは、大きなサイズのフォントスタイル選択コントロール７０８を有するフォントスタイルコントロール７０４または大きなサイズの検索ボックスコントロール７１６を有する検索コントロール７１２を表示することができる。ユーザは、ジェスチャまたはタッチ入力を介してＵＩのより細かな制御を提供することができなくなり得るので、ＵＩは、大きなサイズのコントロールを表示することができる。
【００６２】
[0073]アプリケーションはまた、ユーザがドロップダウンメニューコントロール７２０を介して入力のタイプを選択することを可能にし得る。アプリケーションは、ユーザにＵＩのどこでも指でタップしてドロップダウンメニュー７２６を起動するように通知することができる。ＵＩはまた、バレットアクション７２２のためのドロップダウンメニューの制御サーフェスをクリックするようにユーザに知らせる通知を表示することができる。バレットアクションは、入力のタイプ、たとえば、入力のタイプの挙動の管理に関連する追加のコントロールを提供することができる。加えて、ＵＩは、ドロップダウンメニューの矢印コントロール７２４をクリックして選択コントロールを起動して入力のタイプを選択するようにユーザに知らせるための通知を表示することができる。
【００６３】
[0074]いくつかの実施形態によれば、タッチまたはジェスチャ対応の入力デバイスおよび表示画面は、文書を見る／編集するために、およびユーザインターフェースを介してユーザから入力を受信するために、使用され得る。ジェスチャ対応の入力デバイスおよび表示画面は、ユーザによるタッチ入力または光学的に取得されたジェスチャが認識されることを可能にする任意の技術を使用することができる。たとえば、いくつかの技術は、熱、指の圧力、高キャプチャー率カメラ、赤外線、光キャプチャー、同調電磁誘導、超音波受信機、トランスジューサーマイクロフォン、レーザー測距器、影キャプチャーなどを含むが、これらに限定されない。タッチ対応のまたはジェスチャ対応のデバイスのユーザインターフェースは、ワードプロセッシングアプリケーション、プレゼンテーションアプリケーション、スプレッドシートアプリケーションおよびウェブページコンテンツに関連するコンテンツおよび文書と、表示されたコンテンツと対話するための動作のメニューとを表示することができる。ユーザは、ジェスチャを使用してユーザインターフェースと対話して、文書、テーブル、スプレッドシート、チャート、リスト、および任意のコンテンツ（たとえば、音声、ビデオなど）などのコンテンツにアクセスする、作成する、見る、および編集することができる。ジェスチャ対応の入力デバイスは、タッチまたはジェスチャ対応のコンピューティングデバイスに特有の機能を使用することができるが、従来のマウスおよびキーボードと連動することもできる。本明細書で使用されるようなタップまたはスワイプアクションなどのジェスチャまたはタッチ入力アクションは、指、ペン、マウス、または同様のデバイスを介して、ならびに、所定のキーボード入力の組合せ、視標追跡および音声命令のうちの１以上を介して、ユーザによって提供され得る。
【００６４】
[0075]図２から７の例示的シナリオおよびスキーマは、特定のコンポーネント、データータイプ、および構成で示される。実施形態は、これらの例示的構成によるシステムに限定されない。ジェスチャまたはタッチスクリーンでコンテンツを編集するためのカスタム選択、ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキーム、および、ブラウザ内のジェスチャまたはタッチに最適化されたユーザインターフェースの提供は、アプリケーションおよびユーザインターフェースでより少ないまたは追加のコンポーネントを使用する構成で実装され得る。さらに、図２から７に示された例示的スキーマおよびコンポーネントとそれらのサブコンポーネントとは、本明細書に記載の原理を使用する他の値を有する同様の形で実装され得る。
【００６５】
[0076]図８は、実施形態によるシステムが実装され得るネットワーク化された環境である。ローカルおよび遠隔リソースは、ホスト型サービスなどの１つまたは複数のサーバ８１４または単一サーバ（たとえばウェブサーバ）８１６によって、提供され得る。アプリケーションは、ネットワーク８１０を介してラップトップ８１１、タブレットデバイス８１２またはスマートフォン８１３（「クライアントデバイス」）などの個々のコンピューティングデバイス上のクライアントインターフェースと通信することができる。
【００６６】
[0077]前述のように、ジェスチャまたはタッチスクリーンでコンテンツを編集するためのカスタム選択、ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキーム、および、ブラウザ内のジェスチャまたはタッチに最適化されたユーザインターフェースは、ブラウザと対話するウェブアプリケーションを介して提供され得る。クライアントデバイス８１１〜８１３は、前述のように遠隔サーバ（たとえばサーバ８１４のうちの１つ）で実行されるアプリケーションへのアクセスを可能にすることができる。サーバは、直接にまたはデーターベースサーバ８１８を介してデーターストア８１９から／に関連データーを取り出す、または格納することができる。
【００６７】
[0078]ネットワーク８１０は、サーバ、クライアント、インターネットサービスプロバイダー、および通信媒体の任意のトポロジーを備え得る。実施形態によるシステムは、静的または動的トポロジーを有し得る。ネットワーク８１０は、企業ネットワークなどの安全なネットワーク、ワイヤレスオープンネットワークなどの安全対策の施されていないネットワーク、またはインターネットを含み得る。ネットワーク８１０はまた、公衆交換電話網（ＰＳＴＮ）またはセルラーネットワークなどの他のネットワークを介して通信を統合することができる。さらに、ネットワーク８１０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）または同様のものなどの短距離ワイヤレスネットワークを含み得る。ネットワーク８１０は、本明細書に記載のノード間で通信を提供することができる。一例として、そして限定ではなく、ネットワーク８１０は、音波、ＲＦ、赤外線および他のワイヤレス媒体などのワイヤレス媒体を含み得る。
【００６８】
[0079]多数の他のコンピューティングデバイス、アプリケーション、データーソース、およびデーター分散システムが、ジェスチャまたはタッチスクリーンでコンテンツを編集するためのカスタム選択、ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキーム、およびブラウザ内のジェスチャまたはタッチに最適化されたユーザインターフェースを提供するために使用され得る。さらに、図８で論じられるネットワーク化された環境は、単に説明を目的とする。実施形態は、例示的アプリケーション、モジュール、またはプロセスに限定されない。
【００６９】
[0080]図９および関連する論考は、実施形態が実装され得る適切なコンピューティング環境の簡潔な概要を提供することを意図されている。図９を参照すると、コンピューティングデバイス９００など、実施形態によるアプリケーションのための例示的コンピューティング動作環境のブロック図が示される。基本的構成で、コンピューティングデバイス９００は、少なくとも１つのプロセッシングユニット１６０２およびシステムメモリ９０４を含み得る。コンピューティングデバイス９００はまた、プログラムの実行で協力する複数のプロセッシングユニットを含み得る。コンピューティングデバイスの正確な構成およびタイプに応じて、システムメモリ９０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）、または、それらの２つの何らかの組合せでもよい。システムメモリ９０４は、通常は、ワシントン州レドモンドのＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮのＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなど、プラットフォームの動作の制御に適したオペレーティングシステム９０５を含む。システムメモリ９０４はまた、プログラムモジュール９０６、アプリケーション９２２、およびユーザインターフェースモジュール９２４などの１つまたは複数のソフトウェアアプリケーションを含み得る。
【００７０】
[0081]アプリケーション９２２は、ジェスチャまたはタッチスクリーンでコンテンツを編集するためのカスタム選択、ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキーム、および、実施形態によるブラウザ内のジェスチャまたはタッチに最適化されたユーザインターフェースのうちの１以上を提供することができる。ユーザインターフェースモジュール９２４は、タッチおよびジェスチャのうちの一方または双方対応のデバイスと連動した前述のサービスの提供においてアプリケーション９２２を助けることができる。この基本的構成は、破線９０８内のそれらのコンポーネントによって図９に示される。
【００７１】
[0082]コンピューティングデバイス９００は、追加の特徴または機能を有し得る。たとえば、コンピューティングデバイス９００はまた、たとえば磁気ディスク、光ディスク、またはテープなど、複数の追加のデーター記憶装置（取外し可能および取外し不可能のうちの一方または双方である）を含み得る。そのような追加のストレージは、取外し可能なストレージ９０９および取外し不可能なストレージ９１０によって図９に示される。コンピュータ可読記憶媒体は、コンピュータ可読命令、データー構造体、プログラムモジュール、または他のデーターなどの情報の記憶のための任意の方法または技術で実装された、揮発性のおよび不揮発性の、取外し可能なおよび取外し不可能な媒体を含み得る。コンピュータ可読記憶媒体は、コンピュータ可読メモリデバイスである。システムメモリ９０４、取外し可能なストレージ９０９および取外し不可能なストレージ９１０は、すべて、コンピュータ可読記憶媒体の例である。コンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは、所望の情報を記憶するために使用することができるおよびコンピューティングデバイス９００によってアクセス可能な任意の他の媒体を含むが、これらに限定されない。任意のそのようなコンピュータ可読記憶媒体は、コンピューティングデバイス９００の部分でもよい。コンピューティングデバイス９００はまた、キーボード、マウス、ペン、音声入力デバイス、ジェスチャまたはタッチ入力デバイス、および同等の入力デバイスなどの入力デバイス９１２を有し得る。ディスプレイ、スピーカ、プリンタおよび他のタイプの出力デバイスなどの出力デバイス９１４もまた含まれ得る。これらのデバイスは、当技術分野ではよく知られており、ここで長く論じられる必要はない。
【００７２】
[0083]コンピューティングデバイス９００はまた、デバイスが分散コンピューティング環境、衛星リンク、セルラーリンク、および同等の機構でワイヤレスネットワークを介するなどして他のデバイス９１８と通信することを可能にする、通信接続９１６を含み得る。他のデバイス９１８は、通信アプリケーション、ストレージサーバ、および同等のデバイスを実行するコンピュータデバイスを含み得る。通信接続９１６は、通信媒体の一例である。通信媒体は、コンピュータ可読命令、データー構造体、プログラムモジュール、あるいは、搬送波または他の伝送機構などの変調されたデーター信号内の他のデーターをその中に含むことが可能であり、任意の情報配信媒体を含む。「変調されたデーター信号」という用語は、信号内に情報をコード化するようにその特性の１つまたは複数が設定または変更された信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体と、音波、ＲＦ、赤外線および他のワイヤレス媒体などのワイヤレス媒体とを含む。
【００７３】
[0084]例示的実施形態はまた、方法を含む。これらの方法は、本明細書に記載の構造体を含む、任意の数の手段で実装され得る。１つのそのような手段は、本明細書に記載のタイプのデバイスの機械操作による。
【００７４】
[0085]別の任意選択の手段は、いくらかを実行する１人または複数の人間のオペレータと連動して実行されることになる方法の個々の動作のうちの１つまたは複数を目的とする。これらの人間のオペレータは、互いに同一場所に配置される必要はないが、各々が、プログラムの一部を実行する機械のみとともにあってもよい。
【００７５】
[0086]図１０Ａ〜Ｃは、挿入ポイントの下、範囲選択の終わりでの選択ハンドル、ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキーム、およびブラウザのための入力最適化ユーザインターフェースを提供するプロセスの論理流れ図である。プロセス１０００、１００２、および１００４は、いくつかの例でウェブアプリケーションなどのアプリケーションによって実装され得る。
【００７６】
[0087]プロセス１０００は、アプリケーションがテキストの範囲の選択を検出し得る動作１０１０で開始し得る。動作１０２０で、アプリケーションは、選択の挿入ポイントの下で選択ハンドルを作成することができる。アプリケーションは、ブラウザによって生成された選択に関連するイベントをインターセプトおよびキャンセルすることができる。次に、アプリケーションは、動作１０３０で、ネイティブブラウザハンドルを選択ハンドルで置き換えることができる。
【００７７】
[0088]プロセス１００２は、アプリケーションがそのアプリケーションとブラウザの間の抽象化層でタッチおよびジェスチャ対応のデバイスから一連のブラウザイベントを受信し得る動作１０４０で開始し得る。動作１０５０で、アプリケーションは、受信されたブラウザイベントを複数のデバイスおよびブラウザと互換性のあるセマンティックイベントの一貫した流れに標準化することができる。
【００７８】
[0089]プロセス１００４は、アプリケーションが入力を検出することができる動作１０６０で開始し得る。動作１０７０で、アプリケーションは、検出された入力のタイプに基づいて最適化されたユーザインターフェースを起動することができる。次に、アプリケーションは、動作１０８０で、検出された入力のタイプに基づいてユーザインターフェースの一部の挙動を修正することができる。
【００７９】
[0090]いくつかの実施形態は、通信モジュール、メモリ、およびプロセッサーを含むコンピューティングデバイスで実装することができ、プロセッサーは、メモリに記憶された命令とともに前述のような方法または同等のものを実行する。他の実施形態は、前述のような方法または同等のものを実行するためのそこに記憶された命令を有するコンピュータ可読記憶媒体として実装され得る。
【００８０】
[0091]プロセス１０００、１００２、および１００４に含まれる動作は、説明を目的とする。ジェスチャまたはタッチスクリーンでコンテンツを編集するためのカスタム選択、ブラウザジェスチャまたはタッチイベントの意味解釈のためのスキーム、および、実施形態によるブラウザ内のジェスチャまたはタッチに最適化されたユーザインターフェースの提供は、より少ないまたは追加のステップを有する同様のプロセスによって、ならびに、本明細書に記載の原理を使用する異なる順番の動作で、実装され得る。
【００８１】
[0092]前述の仕様、例、およびデーターは、実施形態の構成の製造および使用の完全な説明を提供する。主題は、構造的特徴および方法論的動作のうちの一方または双方に特有の言語で説明されたが、添付の特許請求の範囲に定義された主題は必ずしも前述の特定の特徴または動作に限定されないことを理解されたい。そうではなくて、前述の特定の特徴および動作は、本特許請求の範囲および実施形態を実装する例示的な形として開示される。
【図２】
2015523643.tif 000003
【図４】
2015523643.tif 000004
【図９】
2015523643.tif 000005
【図１０Ａ】
2015523643.tif 000006
【図１０Ｂ】
2015523643.tif 000007
【図１０Ｃ】
2015523643.tif 000008
【図１】
2015523643.tif 000009
【図３】
2015523643.tif 000010
【図５】
2015523643.tif 000011
【図６】
2015523643.tif 000012
【図７】
2015523643.tif 000013
【図８】
2015523643.tif 000014
【国際調査報告】
2015523643.tif 000015
2015523643.tif 000016
2015523643.tif 000017
2015523643.tif 000018