(57)【特許請求の範囲】
【請求項１】
タッチ感知ディスプレイと、１つ以上のプロセッサと、前記１つ以上のプロセッサによって実行するための１つ以上のプログラムを記憶するメモリとを備えている電子デバイスであって、
前記１つ以上のプログラムは、
前記タッチ感知ディスプレイにおいて、アプリケーションのユーザインタフェースを表示するステップであって、表示される前記ユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含み、前記複数の領域は、各階層レベルにおいて各領域を含み、前記各領域は、前記各階層レベルより下位の階層レベルにおいて２つ以上の子領域を有している、表示するステップと、
前記タッチ感知ディスプレイにおいて、前記各領域に対応するが、前記各領域の前記２つ以上の子領域の内の任意の子領域のヒット領域に対応しない、第１の位置における第１の接触を検出するステップと、
前記第１の接触の検出に応じて、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているかどうかを判定するステップと、
前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されていないという判定に従って、
前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているかどうかを判定するステップと、
前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているという判定に従って、
前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別するステップと、
前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理するステップと
を実行するための命令を含んでいる
ことを特徴とする電子デバイス。
【請求項２】
前記１つ以上のプログラムは、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているという判定に従って、前記アプリケーションを使用して、前記各領域とともに前記第１の接触を処理するための命令を含んでいる
ことを特徴とする請求項１に記載の電子デバイス。
【請求項３】
前記２つ以上の子領域の各子領域は、各ヒット領域を有し、その内の１つは前記対応する子領域とは異なり、
前記検出するステップは、前記第１の位置が、前記子領域の前記各ヒット領域の任意のヒット領域に対応しないことを判定することを含んでいる
ことを特徴とする請求項１または２に記載の電子デバイス。
【請求項４】
前記第１の位置は、前記各領域の前記２つ以上の領域の内の任意の子領域の外に位置している
ことを特徴とする請求項１乃至３のいずれか１項に記載の電子デバイス。
【請求項５】
前記各領域は、前記各階層レベルより上位の階層レベルで親領域を有している
ことを特徴とする請求項１乃至４のいずれか１項に記載の電子デバイス。
【請求項６】
前記１つ以上のプログラムは、前記アプリケーションが、前記各領域の前記２つ以上の子領域の内の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されておらず、また、前記アプリケーションが、前記親領域とともに前記第１の接触を処理するように構成されているという判定に従って、前記アプリケーションを使用して前記親領域とともに前記第１の接触を処理するための命令を含んでいる
ことを特徴とする請求項５に記載の電子デバイス。
【請求項７】
前記１つ以上のプログラムは、前記アプリケーションが、前記各領域の２つ以上の子領域の内の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されていないという判定に従って、前記親領域の接触として前記第１の接触を処理するための命令を含んでいる
ことを特徴とする請求項５に記載の電子デバイス。
【請求項８】
前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別するステップを実行するための命令は、前記各領域の２つ以上の子領域の内、前記第１の位置に関する近接基準を最も満足する子領域を識別するための命令を含んでいる
ことを特徴とする請求項１乃至７のいずれか１項に記載の電子デバイス。
【請求項９】
前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別するステップを実行するための命令は、前記各領域の２つ以上の子領域の内、前記第１の位置に関する近接基準を最も満足する子領域を識別し、また、識別される前記子領域が、前記第１の位置に関する最大距離制限を満足することを確認することを含んでいる
ことを特徴とする請求項１乃至７のいずれか１項に記載の電子デバイス。
【請求項１０】
前記２つ以上の子領域の内の１つ以上の子領域は、所定の近接プロパティを有し、また、少なくとも１つの他の子領域は、前記所定の近接プロパティを有しておらず、
前記識別するステップは、前記第１の位置に関連する前記子領域の位置に従って、前記所定の近接プロパティを有する前記各領域の１つ以上の子領域の各子領域を識別することを含んでいる
ことを特徴とする請求項１乃至７のいずれか１項に記載の電子デバイス。
【請求項１１】
前記各領域が、所定のプロパティのセットの内の少なくとも１つのプロパティを有するユーザインタフェースオブジェクトを含んでいるという判定に従って、前記アプリケーションは、前記各領域とともに前記第１の接触を処理するように構成されていると見なされる
ことを特徴とする請求項１乃至１０のいずれか１項に記載の電子デバイス。
【請求項１２】
前記各領域が、前記第１の接触を含むジェスチャーに応じてアクティベートされるように構成されているユーザインタフェースオブジェクトを備えるという判定に従って、前記アプリケーションは、前記各領域とともに前記第１の接触を処理するように構成されていると見なされる
ことを特徴とする請求項１乃至１０のいずれか１項に記載の電子デバイス。
【請求項１３】
少なくとも１つのイベントレコグナイザーが前記各領域に関連付けられているという判定に従って、前記アプリケーションは、前記各領域とともに前記第１の接触を処理するように構成されていると見なされる
ことを特徴とする請求項１乃至１０のいずれか１項に記載の電子デバイス。
【請求項１４】
前記第１の接触を含むジェスチャーを認識するように構成されているイベントレコグナイザーが、前記各領域に関連付けられているという判定に従って、前記アプリケーションは、前記各領域とともに前記第１の接触を処理するように構成されていると見なされる
ことを特徴とする請求項１乃至１０のいずれか１項に記載の電子デバイス。
【請求項１５】
前記複数の領域は、それらの領域に対応する複数の階層構造のビューを備えていて、
前記複数のビューのそれぞれは、各ビューに関連付けられている少なくとも１つのイベントレコグナイザーを有し、
前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理するステップを実行するための命令は、前記識別される各子領域に対応するビューの少なくとも１つのイベントレコグナイザーによって処理されるべきイベントを生成するための命令を含んでいる
ことを特徴とする請求項１乃至１０のいずれか１項に記載の電子デバイス。
【請求項１６】
前記複数の領域は、それらの領域に対応する複数の階層構造のビューを備えていて、
前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理するステップは、前記識別される各子領域における接触として前記第１の接触を処理することを含んでいる
ことを特徴とする請求項１乃至１０のいずれか１項に記載の電子デバイス。
【請求項１７】
インタフェースを処理する方法であって、
タッチ感知ディスプレイにおいて、アプリケーションのユーザインタフェースを表示するステップであって、表示される前記ユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含み、前記複数の領域は、各階層レベルにおいて各領域を含み、前記各領域は、前記各階層レベルより下位の階層レベルにおいて２つ以上の子領域を有している、表示するステップと、
前記タッチ感知ディスプレイにおいて、前記各領域に対応するが、前記各領域の前記２つ以上の子領域の内の任意の子領域のヒット領域に対応しない、第１の位置における第１の接触を検出するステップと、
前記第１の接触の検出に応じて、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているかどうかを判定するステップと、
前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されていないという判定に従って、
前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているかどうかを判定するステップと、
前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているという判定に従って、
前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別するステップと、
前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理するステップと
を備えることを特徴とする方法。
【請求項１８】
前記２つ以上の子領域の各子領域は、各ヒット領域を有し、その内の１つは前記対応する子領域とは異なり、
前記検出するステップは、前記第１の位置が、前記子領域の前記各ヒット領域の任意のヒット領域に対応しないことを判定することを含んでいる
ことを特徴とする請求項１７に記載の方法。
【請求項１９】
タッチ感知ディスプレイ付きの電子デバイスの１つ以上のプロセッサによって実行するための１つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、
前記１つ以上のプログラムは、
前記タッチ感知ディスプレイにおいて、アプリケーションのユーザインタフェースを表示するステップであって、表示される前記ユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含み、前記複数の領域は、各階層レベルにおいて各領域を含み、前記各領域は、前記各階層レベルより下位の階層レベルにおいて２つ以上の子領域を有している、表示するステップと、
前記タッチ感知ディスプレイにおいて、前記各領域に対応するが、前記各領域の前記２つ以上の子領域の内の任意の子領域のヒット領域に対応しない、第１の位置における第１の接触を検出するステップと、
前記第１の接触の検出に応じて、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているかどうかを判定するステップと、
前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されていないという判定に従って、
前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているかどうかを判定するステップと、
前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているという判定に従って、
前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別するステップと、
前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理するステップと
を実行するための命令を含んでいる
ことを特徴とするコンピュータ可読記憶媒体。
【請求項２０】
前記２つ以上の子領域の各子領域は、各ヒット領域を有し、その内の１つは前記対応する子領域とは異なり、
前記検出するステップは、前記第１の位置が、前記子領域の前記各ヒット領域の任意のヒット領域に対応しないことを判定することを含んでいる
ことを特徴とする請求項１９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本発明は、一般的には、ユーザインタフェース処理に関するものであり、これには、限定するものではないが、タッチ入力を認識するための装置及び方法が含まれる。
【０００２】
背景
コンピュータ及び他の電子コンピュータデバイスに対する入力デバイスとして、タッチ感知面を使用することが、近年では益々増えてきている。例示のタッチ感知面は、タッチパッド及びタッチスクリーンディスプレイが含まれる。このような面は、ディスプレイ上のユーザインタフェースオブジェクトを、選択することを及び操作することの少なくとも一方を行うために広く使用されている。
【０００３】
タッチ入力は、通常は、指の接触に基づいている。しかしながら、指（あるいは指先）のサイズは、様々なユーザインタフェース方法（例えば、伝統的なマウスに基づく入力）に対して設計されかつサイズを有するユーザインタフェースオブジェクトを正確に選択することを困難にする場合がある。加えて、ユーザインタフェースオブジェクトは、様々な理由からサイズが小さくなっている（例えば、単一の画面でより多くの情報を表示することができるようにスクリーン／ディスプレイの実際の領域をより多く提供するために）。また、一時的な障害あるいは永久的な障害、ハンディキャップ、あるいは疾患（例えば、視力低下及び運動神経低下の少なくとも一方）を有する人は、ユーザインタフェースオブジェクトを正確に選択すること及び操作することの少なくとも一方を行うことが困難な場合がある。
【０００４】
このように、タッチに基づくジェスチャー及びイベントが、意図するユーザインタフェースオブジェクト外で検出される場合でさえも、タッチに基づくジェスチャー及びイベントを認識し、それに加えて、他の入力ソースからのジェスチャー及びイベントを認識するための包括的なフレームワークあるいはメカニズムを有することが要望されている。
【発明の概要】
【０００５】
要約
上述の欠点を解決するために、いくつかの実施形態では、タッチ感知ディスプレイを有する電子デバイスで方法が実行される。この方法は、前記タッチ感知ディスプレイにおいて、アプリケーションのユーザインタフェースを表示することを含んでいる。表示される前記ユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含んでいる。前記複数の領域は、各階層レベルにおいて各領域を含んでいる。前記各領域は、前記各階層レベルより下位の階層レベルにおいて２つ以上の子領域を有している。前記方法は、また、前記タッチ感知ディスプレイにおいて、前記各領域に対応するが、前記各領域の前記２つ以上の子領域の内の任意の子領域に対応しない、第１の位置における第１の接触を検出することを含んでいる。前記方法は、前記第１の接触の検知に応じて、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているかどうかを判定することを含んでいる。前記方法は、更に、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されていない場合、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているかどうかを判定することを含んでいる。前記方法は、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されている場合、前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別し、そして、前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理することを含んでいる。
【０００６】
いくつかの実施形態に従えば、方法は、タッチ感知ディスプレイを有する電子デバイスにおいて実行される。前記方法は、前記タッチ感知ディスプレイにおいて、複数のアクティベート可能なユーザインタフェースオブジェクトを含むウェブページ（あるいは他の文書）を表示することを含んでいる。前記方法は、前記タッチ感知ディスプレイにおいて、表示されている前記ウェブページに対応する第１の位置における第１の接触を検出することを含んでいる。前記方法は、前記第１の位置における前記第１の接触の検出に応じて、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応するかどうかを判定することを含んでいる。前記方法は、更に、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応しない場合、もしあるのであれば、前記第１の位置に関する所定のルールを最も満足するユーザインタフェースオブジェクトを識別し、そして、識別される前記ユーザインタフェースオブジェクトに対応する動作を実行することを含んでいる。
【０００７】
いくつかの実施形態に従えば、電子デバイスは、タッチ感知ディスプレイと、プログラムを実行するための１つ以上のプロセッサと、前記１つ以上のプロセッサによって実行するための１つ以上のプログラムを記憶するメモリとを含んでいる。前記１つ以上のプログラムは、上述の方法のいずれか１つを実行するために、前記１つ以上のプロセッサによって実行される命令を含んでいる。
【０００８】
いくつかの実施形態に従えば、コンピュータ可読記憶媒体は、電子デバイスの１つ以上のプロセッサによって実行するための１つ以上のプログラムを記憶する。前記１つ以上のプログラムは、上述の方法のいずれか１つを実行するための命令を含んでいる。
【０００９】
いくつかの実施形態に従えば、電子デバイスは、タッチ感知ディスプレイと、１つ以上のプロセッサと、前記１つ以上のプロセッサによって実行するための１つ以上のプログラムを記憶するメモリとを含んでいる。前記１つ以上のプログラムは、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記タッチ感知ディスプレイにおいて、アプリケーションのユーザインタフェースを表示させる命令を含んでいる。表示される前記ユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含んでいる。前記複数の領域は、各階層レベルにおいて各領域を含んでいる。前記各領域は、前記各階層レベルより下位の階層レベルにおいて２つ以上の子領域を有している。前記１つ以上のプログラムは、また、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記タッチ感知ディスプレイにおいて、前記各領域に対応するが、前記各領域の前記２つ以上の子領域の内の任意の子領域に対応しない、第１の位置における第１の接触を検出させる命令を含んでいる。前記１つ以上のプログラムは、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記第１の接触の検出に応じて、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているかどうかを判定させる命令を含んでいる。前記１つ以上のプログラムは、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されていない場合、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているかどうかを判定させる命令を含んでいる。前記１つ以上のプログラムは、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されている場合、前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別させ、前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理させる命令を含んでいる。
【００１０】
いくつかの実施形態に従えば、コンピュータ可読記憶媒体は、タッチ感知ディスプレイ付きの電子デバイスの１つ以上のプロセッサによって実行するための１つ以上のプログラムを記憶する。前記１つ以上のプログラムは、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記タッチ感知ディスプレイ上の表示のために、アプリケーションのユーザインタフェースを表示させる命令を含んでいる。表示される前記ユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含んでいる。前記複数の領域は、各階層レベルにおいて各領域を含んでいる。前記各領域は、前記各階層レベルより下位の階層レベルにおいて２つ以上の子領域を有している。前記１つ以上のプログラムは、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記第１の接触の検出に応じて、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているかどうかを判定させる命令を含んでいる。第１の位置における第１の接触は、前記各領域に対応するが、前記各領域の前記２つ以上の子領域の内の任意の子領域に対応しない。前記１つ以上のプログラムは、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されていない場合、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているかどうかを判定させる命令を含んでいる。前記１つ以上のプログラムは、更に、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されている場合、前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別させ、前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理させる命令を含んでいる。
【００１１】
いくつかの実施形態に従えば、電子デバイスは、タッチ感知ディスプレイと、前記タッチ感知ディスプレイにおいて、アプリケーションのユーザインタフェースを表示する手段とを含んでいる。表示される前記ユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含み、前記複数の領域は、各階層レベルにおいて各領域を含んでいる。前記各領域は、前記各階層レベルより下位の階層レベルにおいて２つ以上の子領域を有している。電子デバイスは、また、前記タッチ感知ディスプレイにおいて、前記各領域に対応するが、前記各領域の前記２つ以上の子領域の内の任意の子領域に対応しない、第１の位置における第１の接触を検出する手段と、前記第１の接触の検出に応じて、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているかどうかを判定する手段とを含んでいる。前記電子デバイスは、更に、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されていない場合、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているかどうかを判定する手段と、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されている場合、前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別する手段と、前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理する手段と含んでいる。
【００１２】
いくつかの実施形態では、タッチ感知ディスプレイ付き電子デバイスで使用するための情報処理装置は、前記タッチ感知ディスプレイにおいて、アプリケーションのユーザインタフェースを表示する手段を含んでいる。表示される前記ユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含み、前記複数の領域は、各階層レベルにおいて各領域を含んでいる。前記各領域は、前記各階層レベルより下位の階層レベルにおいて２つ以上の子領域を有している。前記情報処理装置は、また、前記タッチ感知ディスプレイにおいて、前記各領域に対応するが、前記各領域の前記２つ以上の子領域の内の任意の子領域に対応しない、第１の位置における第１の接触を検出する手段と、前記第１の接触の検出に応じて、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているかどうかを判定する手段とを含んでいる。前記情報処理装置は、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されていない場合、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているかどうかを判定する手段と、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されている場合、前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別する手段と、前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理する手段とを含んでいる。
【００１３】
いくつかの実施形態に従えば、電子デバイスは、タッチ感知ディスプレイと、１つ以上のプロセッサと、前記１つ以上のプロセッサによって実行するための１つ以上のプログラムを記憶するメモリとを含んでいる。前記１つ以上のプログラムは、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記タッチ感知ディスプレイにおいて、複数のアクティベート可能なユーザインタフェースオブジェクトを含むウェブページ（あるいは他の文書）を表示させ、そして、前記タッチ感知ディスプレイにおいて、表示されている前記ウェブページに対応する第１の位置における第１の接触を検出させる命令を含んでいる。前記１つ以上のプログラムは、また、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記第１の位置における前記第１の接触の検出に応じて、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応するかどうかを判定させる命令を含んでいる。前記１つ以上のプログラムは、更に、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応しない場合、もしあるのであれば、前記第１の位置に関する近接基準を最も満足するユーザインタフェースオブジェクトを識別させ、識別される前記ユーザインタフェースオブジェクトに対応する動作を実行させる命令を含んでいる。
【００１４】
いくつかの実施形態に従えば、コンピュータ可読記憶媒体は、タッチ感知ディスプレイ付き電子デバイスにおける１つ以上のプロセッサによって実行するための１つ以上のプログラムを記憶する。前記１つ以上のプログラムは、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記タッチ感知ディスプレイにおいて、複数のアクティベート可能なユーザインタフェースオブジェクトを含むウェブページ（あるいは他の文書）を表示させ、そして、前記タッチ感知ディスプレイにおいて、表示されている前記ウェブページに対応する第１の位置における第１の接触を検出させる命令を含んでいる。前記１つ以上のプログラムは、また、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記第１の位置における前記第１の接触の検出に応じて、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応するかどうかを判定させる命令を含んでいる。前記１つ以上のプログラムは、更に、前記１つ以上のプロセッサによって実行される場合に、前記電子デバイスに、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応しない場合、もしあるのであれば、前記第１の位置に関する近接基準を最も満足するユーザインタフェースオブジェクトを識別させ、識別される前記ユーザインタフェースオブジェクトに対応する動作を実行させる命令を含んでいる。
【００１５】
いくつかの実施形態では、電子デバイスは、タッチ感知ディスプレイと、前記タッチ感知ディスプレイにおいて、複数のアクティベート可能なユーザインタフェースオブジェクトを含むウェブページを表示する手段とを含んでいる。前記電子デバイスは、また、前記タッチ感知ディスプレイにおいて、表示されている前記ウェブページに対応する第１の位置における第１の接触を検出する手段と、前記第１の位置における前記第１の接触の検出に応じて、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応するかどうかを判定する手段とを含んでいる。前記電子デバイスは、更に、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応しない場合、もしあるのであれば、前記第１の位置に関する所定のルールを最も満足するユーザインタフェースオブジェクトを識別する手段と、識別される前記ユーザインタフェースオブジェクトに対応する動作を実行する手段とを含んでいる。
【００１６】
いくつかの実施形態に従えば、タッチ感知ディスプレイ付き電子デバイスで使用するための情報処理装置は、前記タッチ感知ディスプレイにおいて、複数のアクティベート可能なユーザインタフェースオブジェクトを含むウェブページを表示する手段と、前記タッチ感知ディスプレイにおいて、表示されている前記ウェブページに対応する第１の位置における第１の接触を検出する手段と、前記第１の位置における前記第１の接触の検出に応じて、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応するかどうかを判定する手段とを含んでいる。前記情報処理装置は、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応しない場合、もしあるのであれば、前記第１の位置に関する所定のルールを最も満足するユーザインタフェースオブジェクトを識別する手段と、識別される前記ユーザインタフェースオブジェクトに対応する動作を実行する手段とを含んでいる。
【００１７】
いくつかの実施形態では、電子デバイスは、アプリケーションのユーザインタフェースを表示し、指の接触を受け付けるように構成されているタッチ感知ディスプレイユニットを含んでいる。表示される前記ユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含み、前記複数の領域は、各階層レベルにおいて各領域を含んでいる。前記各領域は、前記各階層レベルより下位の階層レベルにおいて２つ以上の子領域を有している。前記電子デバイスは、また、前記タッチ感知ディスプレイユニットに接続されている処理ユニットを含んでいる。前記処理ユニットは、前記タッチ感知ディスプレイユニットにおいて、前記各領域に対応するが、前記各領域の前記２つ以上の子領域の内の任意の子領域に対応しない、第１の位置における第１の接触を検出し、前記第１の接触の検出に応じて、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されているかどうかを判定するように構成されている。前記処理ユニットは、更に、前記アプリケーションが、前記各領域とともに前記第１の接触を処理するように構成されていない場合、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されているかどうかを判定するように構成されている。前記処理ユニットは、更に、前記アプリケーションが、前記各領域の前記２つ以上の子領域の少なくとも１つの子領域とともに前記第１の接触を処理するように構成されている場合、前記第１の位置に関連する前記子領域の位置に従って、前記各領域の前記２つ以上の子領域の各子領域を識別し、前記アプリケーションを使用して、識別される前記各子領域とともに前記第１の接触を処理するように構成されている。
【００１８】
いくつかの実施形態に従えば、電子デバイスは、指の接触を受け付け、そして、複数のアクティベート可能なユーザインタフェースオブジェクトを含むウェブページを表示するように構成されているタッチ感知ディスプレイユニットを含んでいる。前記電子デバイスは、また、前記タッチ感知ディスプレイユニットに接続される処理ユニットを含んでいる。前記処理ユニットは、前記タッチ感知ディスプレイユニットにおいて、表示されている前記ウェブページに対応する第１の位置における第１の接触を検出し、前記第１の位置における前記第１の接触の検出に応じて、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応するかどうかを判定するように構成されている。前記処理ユニットは、更に、前記第１の位置が、前記アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応しない場合、もしあるのであれば、前記第１の位置に関する所定のルールを最も満足するユーザインタフェースオブジェクトを識別し、識別される前記ユーザインタフェースオブジェクトに対応する動作を実行するように構成されている。
【図面の簡単な説明】
【００１９】
【図１】いくつかの実施形態に従う電子デバイスを示すブロック図である。
【図２】いくつかの実施形態に従う例示の電子デバイスの入力／出力処理スタックの図である。
【図３】いくつかの実施形態に従う例示のビュー階層を示す図である。
【図４Ａ】いくつかの実施形態に従うビューの階層を含む例示のユーザインタフェースを示す図である。
【図４Ｂ】いくつかの実施形態に従うビューの階層を含む例示のユーザインタフェースを示す図である。
【図４Ｃ】いくつかの実施形態に従うビューの階層を含む例示のユーザインタフェースを示す図である。
【図５Ａ】いくつかの実施形態に従う各接触を処理する例示の方法を示すフローチャートである。
【図５Ｂ】いくつかの実施形態に従う各接触を処理する例示の方法を示すフローチャートである。
【図５Ｃ】いくつかの実施形態に従う各接触を処理する例示の方法を示すフローチャートである。
【図５Ｄ】いくつかの実施形態に従う各接触を処理する例示の方法を示すフローチャートである。
【図６】いくつかの実施形態に従うウェブページあるいは他の文書上の各接触を処理する例示の方法を示すフローチャートである。
【図７】いくつかの実施形態に従うイベント処理のための例示のコンポーネントを示すブロック図である。
【図８】いくつかの実施形態に従う電子デバイスの機能ブロック図である。
【図９】いくつかの実施形態に従う電子デバイスの機能ブロック図である。
【発明を実施するための形態】
【００２０】
添付の図面で示される一例の実施形態を詳細に参照する。以下の詳細説明では、いくつかの特定の詳細説明が本発明の全体理解を提供するために説明される。しかしながら、本発明はこれらの特定の詳細説明なしで実施できることが当業者には理解されるであろう。他の例では、周知の方法、手順、コンポーネント、回路及びネットワークは、実施形態の態様を不必要に曖昧にしないようするためにその詳細は記載しない。
【００２１】
第１、第２等の用語は、様々な要素を記載するために使用されるが、これらの要素は、これらの用語を限定するものではないことも理解されるであろう。これらの用語は、１つの要素と他の要素とを区別するためだけに使用される。本発明の範囲を逸脱することなく、例えば、第１の接触を第２の接触と呼ぶことができ、また、同様に、第２の接触を第１の接触とも呼ぶことができる。第１の接触と第２の接触はともに接触であるが、それらは同一の接触ではない。
【００２２】
本明細書の記載で使用される用語は、特定の実施形態だけを記載することを目的するものであり、本発明を制限することを意図するものではない。本発明と添付の請求項の記載で使用されるように、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、説明が明確に示していない限り、複数形を含むことが意図されている。本明細書で使用される「ａｎｄ／ｏｒ（及び／あるいは）」は、列挙されている関係項目の１つ以上の任意のものを及びあらゆる取り得る組み合わせを指し、また、包含することも理解されるであろう。「ｃｏｍｐｒｉｓｅｓ（備える）」及び「ｃｏｍｐｒｉｓｉｎｇ（備えている）」は、本明細書で使用される場合には、説明される特徴、整数値、ステップ、動作、要素、及びコンポーネントの少なくとも１つの存在を特定するが、１つ以上の他の特徴、整数値、ステップ、動作、要素、及びコンポーネント、及びそれらのグループの少なくとも１つの存在あるいは追加を除外するものではないことが更に理解されるであろう。
【００２３】
明細書で使用されるように、用語「ｉｆ（もし〜である場合）」は、状況に応じて、「ｗｈｅｎ（である際、場合）」あるいは「ｕｐｏｎ（〜において、時点）」あるいは「ｉｎ  ｒｅｓｐｏｎｃｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（判定に応じて）」あるいは「ｉｎ  ｒｅｓｐｏｎｃｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ（検出に応じて）」を意味するように解釈される場合がある。同様に、表現「ｉｆ  ｉｔ  ｄｅｔｅｒｍｉｎｅｄ（そうであると判定される場合）」あるいは「ｉｆ［ａ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］  ｉｓ  ｄｅｔｅｃｔｅｄ（［記述される条件あるいはイベント］が検出される場合）」は、「ｕｐｏｎ  ｄｅｔｅｒｍｉｎｉｎｇ（判定時）」あるいは「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（判定に応じて）」あるいは「ｕｐｏｎ  ｄｅｔｅｃｉｎｇ  （ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ）（（記述される条件あるいはイベント）の検出時）」あるいは「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ（ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ）（（記述される条件あるいはイベント）の検出に応じて）」を意味するように解釈される場合がある。
【００２４】
本明細書で使用されるように、用語「イベント」は、デバイスの１つ以上のセンサによって検出される入力を意味する。特に、用語「イベント」は、タッチ感知面上のタッチを含んでいる。イベントは、１つ以上のサブイベントを備えている。サブイベントは、典型的には、イベント（例えば、タッチダウン（touch-down）、タッチ移動（touch-move）及びタッチ解除は、サブイベントとすることができる）を変更することを意味する。１つ以上のサブイベントのシーケンスにおけるサブイベント群は、多くの形態を含むことができ、これには、制限するものではないが、キー押下、キー押下保持、キー押下解除、ボタン押下、ボタン押下保持、ボタン押下解除、ジョイスティック移動、マウス移動、マウスボタン押下、マウスボタン解除、ペンスタイラスタッチ、ペンスタイラス移動、ペンスタイラス解除、指接触、指移動、指を離す、音声命令、検出される目の動き、生体測定（バイオメトリック）入力、検出されるユーザの生理変化、及びその他のものが含まれる。イベントは単一のサブイベント（例えば、タッチ感知ディスプレイ上の指接触）を備えることができ、本明細書で使用される用語「サブイベント」は、イベントも意味する。
【００２５】
本明細書で使用されるように、用語「イベントレコグナイザー（event recognizer：イベント認識部）」と「ジェスチャーレコグナイザー」は、交換可能に使用され、どちらもジェスチャーを認識することができるレコグナイザーを意味する。いくつかの実施形態では、イベントレコグナイザーは、他のイベント（例えば、デバイスの動き（モーション））を認識することができる。
【００２６】
タッチ感知面を有するデバイスで動作するアプリケーションを制御するために、タッチに基づくジェスチャーを使用する場合、タッチは、時間的な態様と空間的な態様の両方を有している。時間的な態様である、いわゆる、フェーズ（段階）は、今まさにタッチが開始している時点、タッチが移動しているか動いていないかどうか、及びタッチが終了しているか場合、つまり、指が画面から離されているかを示すものである。タッチの空間的な態様は、タッチが発生するビュー（view）あるいはユーザインタフェース領域のセットである。タッチが検出されるビューあるいは領域は、ビュー階層内のプログラム上のレベルに対応する場合がある。例えば、タッチが検出される最下位レベルのビューは、ヒットビューと呼ばれ、適切な入力として認識されるイベントのセットは、タッチに基づくジェスチャーを開始する最初のタッチのヒットビューの少なくとも一部に基づいて判定することができる。
【００２７】
図１は、いくつかの実施形態に従う、電子デバイス１０２の様々な実施形態を示すブロック図である。電子デバイス１０２は、任意の電子デバイスとすることができ、これには、限定するものではないが、デスクトップコンピュータシステム、ラップトップコンピュータシステム、ネットブックコンピュータシステム、移動電話、スマートフォン、パーソナルデジタルアシスタント、あるいはナビゲーションシステムが含まれる。電子デバイスは、ユーザインタフェースを提示するように構成されているタッチスクリーンディスプレイ（例えば、タッチ感知ディスプレイ１５６）付きのポータブル電子デバイス、ユーザインタフェースを提示するように構成されているタッチスクリーンディスプレイ付きのコンピュータ、ユーザインタフェースを提示するように構成されているディスプレイとタッチ感知面付きのコンピュータ、あるいは任意の形態のコンピュータデバイスとすることにもできる。このコンピュータデバイスには、限定するものではないが、コンシューマ向け電子デバイス、移動電話、ビデオゲームシステム、電子音楽プレーヤ、タブレットＰＣ、電子ブック読上システム、電子ブック、ＰＤＡ、電子オーガナイザー、電子メールデバイス、ラップトップ、ネットブックあるいは他のコンピュータ、キオスクコンピュータ、ベンディングマシーン、スマートアプライアンス等が含まれる。電子デバイス１０２は、ユーザインタフェース１１３を含んでいる。
【００２８】
電子デバイス１０２は、タッチスクリーンディスプレイ（例えば、タッチ感知ディスプレイ１５６）を含んでいる。いくつかの実施形態では、ユーザインタフェース１１３は、オンスクリーンキーボード（不図示）を含むことができ、これは、電子デバイス１２０と対話するためにユーザによって使用される。いくつかの実施形態では、電子デバイス１０２は、１つ以上の入力デバイス１２８（例えば、キーボード、マウス、トラックボール、マイク、物理ボタン（群）、タッチパッド等）も含んでいる。いくつかの実施形態では、タッチ感知ディスプレイ１５６は、２つ以上の個別の同時（あるいは部分的に同時）のタッチを検出するための機能を有し、また、これらの実施形態では、ディスプレイ１５６は、本明細書では、時には、マルチタッチディスプレイあるいはマルチタッチ感知ディスプレイとも呼ばれる。
【００２９】
電子デバイス１０２のタッチ感知ディスプレイ１５６上のタッチに基づくジェスチャーを実行する場合、ユーザは、電子デバイス１０２の１つ以上のＣＰＵ１１０によって処理されるサブイベントのシーケンスを生成する。いくつかの実施形態では、電子デバイス１０２の１つ以上のＣＰＵ１１０は、イベントを認識するためにサブイベントのシーケンスを処理する。
【００３０】
電子デバイス１０２は、典型的には、１つ以上のシングル処理ユニットあるいは１つ以上のマルチコア処理ユニット（「ＣＰＵ」あるいは「ＣＰＵ群」）１１０と、１つ以上のネットワークインタフェースあるいは他の通信インタフェース１１２を含んでいる。電子デバイス１０２は、メモリ１１１と、これらのコンポーネントを相互に接続するための１つ以上の通信バス１１５を含んでいる。通信バス１１５は、システムコンポーネント（不図示）間を相互に接続し、その通信を制御する回路（時には、チップセットと呼ばれる）を含んでいる場合がある。メモリ１１１は、高速ランダムアクセスメモリを含む場合があり、これには、例えば、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭあるいは他のランダムアクセスソリッドステートメモリデバイスがあり、また、メモリ１１１は、不揮発性メモリを含むことができ、これには、例えば、１つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、あるいは他の不揮発性ソリッドステート記憶装置がある。メモリ１１１は、オプションとして、ＣＰＵ（群）１１０からリモートに配置されている１つ以上の記憶装置を含むことができる。メモリ１１１、あるいは選択的には、メモリ１１１内の不揮発性メモリデバイス（群）は、コンピュータ可読記憶媒体を備えている。いくつかの実施形態では、メモリ１１１は、あるいはメモリ１１１内の不揮発性メモリデバイス（群）は、非一時的（non-transitory）コンピュータ可読記憶媒体を備える。いくつかの実施形態では、メモリ１１１あるいはメモリ１１１のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、及びデータ構造、あるいはそれらのサブセットを記憶する。
【００３１】
●オペレーティングシステム１１８、これは、様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するための手順を含んでいる。
【００３２】
●アクセスビリティモジュール１２６、これは、アプリケーションソフトウェア１３２（ブラウザアプリケーション１３３を含んでいる）における１つ以上のソフトウェアアプリケーションの動作を変更するために、あるいはアプリケーションソフトウェア１３２における１つ以上のソフトウェアアプリケーションのアクセスを改善するために、あるいはそれに表示される内容（例えば、ウェブページ）へのアクセスを改善するために、タッチ感知ディスプレイ１５６あるいは入力デバイス（群）１２８からのデータを変更するために使用される。
【００３３】
●通信モジュール１２０、これは、１つ以上の通信インタフェース１１２（有線あるいは無線）と１つ以上の通信ネットワークを介して他のデバイスと電子デバイス１０２とを接続するために使用される。この１つ以上の通信ネットワークには、例えば、インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク及びその類がある。
【００３４】
●ユーザインタフェースモジュール１２２、これは、タッチ感知ディスプレイ１５６上のユーザインタフェースオブジェクトを含むユーザインタフェースを表示するために使用される。
【００３５】
●制御アプリケーション１２４、これは、プロセス（例えば、ヒットビュー判定、スレッド管理、及び／あるいはイベントモニタリング等）を制御するために使用される。いくつかの実施形態では、制御アプリケーション１２４は、ランタイムアプリケーションを含み、他の実施形態では、ランタイムアプリケーションは、制御アプリケーション１２４を含んでいる。
【００３６】
●イベント配信システム１３０、これは、オペレーティングシステム１１８あるいはアプリケーションソフトウェア１３２内の様々の代替実施形態で実現することができる。しかしながら、いくつかの実施形態では、イベント配信システム１３０のいくつかの態様では、オペレーティングシステム１１８で実現されるが、一方、他の態様（例えば、イベントハンドラーの少なくとも１つのサブセット）では、アプリケーションソフトウェア１３２で実現される。
【００３７】
●アプリケーションソフトウェア１３２、これは、１つ以上のソフトウェアアプリケーション（例えば、電子メールアプリケーション、ウェブブラウザアプリケーション１３３、テキストメッセージングアプリケーション等）を含むことができる。それぞれのソフトウェアアプリケーションは、典型的には、少なくとも実行する際には、アプリケーション状態（ステート）を有し、これは、ソフトウェアアプリケーション及び自身のコンポーネント（例えば、ジェスチャーレコグナイザー及び代表）の状態（ステート）を示すものである。以下の、アプリケーション内部状態７３２（図７）を参照されたい。
【００３８】
●文書１３４（例えば、ウェブページ、あるいは各アプリケーション１３２あるいは埋込アプリケーション１４４のユーザインタフェース）、これは、コンテンツ、及びオブジェクト／領域の階層を含むことができる。いくつかの実施形態では、階層内の１つ以上のオブジェクト／領域１３６は、１つ以上の子オブジェクト／領域（例えば、１４０−１及び１４０−２）を有している。いくつかの実施形態では、オブジェクト／領域１３６及び子オブジェクト／領域１４０の少なくとも１つのサブセットは、１つ以上のプロパティ１３８を有し、これには、例えば、ビジビリティ（可視性）（文書１３４がアプリケーション１３２／１３３によって再現されてディスプレイ１５６に表示される場合に、対応するオブジェクト／領域が示されるかあるいは隠れるかを示す）、静的特性（文書１３４が表示される場合、対応するオブジェクト／領域がユーザによって変更されるように構成されているかどうかを示す）、及び所定の近接プロパティ（図５Ｄにおける動作５４６を参照して以下で説明される）がある。いくつかの実施形態では、オブジェクト／領域の階層は、また、親領域／オブジェクトを含み、また、いくつかの場合、オブジェクト／領域１３６の階層レベルよりも上位のレベルでの更なる領域／オブジェクト、及び／あるいは任意の子オブジェクト／領域１４０の任意のものの内のより下位の階層の領域／オブジェクトを含んでいる。いくつかの実施形態では、文書１３４は、埋込アプリケーション１４４も含み、これは、Ｊａｖａスクリプト、Ｊａｖａアプレット、Ａｊａｘ、Ｃｏｍｅｔ、ＡｃｔｉｖｅＸ、あるいは任意の他のプログラミング言語及びツール等に基づくことができる。
【００３９】
●デバイス／グローバル内部状態１４６、ソフトウェアアプリケーション及びそれらのコンポーネント（例えば、ジェスチャーレコグナイザー）の状態を示すアプリケーション状態、どんなアプリケーション、ビューあるいは他の情報がタッチ感知ディスプレイ１５６の様々な領域を占めているかを示すディスプレイ状態、デバイスの様々なセンサ（不図示）、入力デバイス、及び／あるいはタッチ感知ディスプレイ１５６から取得される情報を含むセンサ状態、及びデバイスの位置及び属性の少なくとも一方に関係する位置情報の内の１つ以上を含んでいる。
【００４０】
上述の各要素は、上述のメモリデバイスの１つ以上に記憶することができる。上述の各モジュール、アプリケーションあるいはシステム要素は、本明細書で記載される機能を実行するための命令群のセットに対応する。この命令群のセットは、１つ以上のプロセッサ（例えば、１つ以上のＣＰＵ１１０）によって実行することができる。上述のモジュールあるいはプログラム（即ち、命令のセット）は、別々のソフトウェアプログラム、手順あるいはモジュールとして実現される必要はなく、また、これらのモジュールの様々なサブセットを組み合わせることができ、そうでなければ、様々な実施形態において再構成することができる。いくつかの実施形態では、メモリ１１１は、上述のモジュール及びデータ構造のサブセットを記憶することができる。また、メモリ１１１は、上述していない更なるモジュール及びデータ構造を記憶することができる。
【００４１】
図２は、本発明のいくつかの実施形態に従う例示の電子デバイスあるいは装置（例えば、デバイス１０２）の入力／出力処理スタック２００の図である。電子デバイスのハードウェア（例えば、電子回路）２１２は、入力／出力処理スタック２００の基本レベルにある。ハードウェア２１２は、図１に示されるコンポーネントのような、様々なハードウェアインタフェースコンポーネントを含むことができる。ハードウェア２１２は、上述のセンサ１３０の１つ以上を含むことができる。入力／出力処理スタック２００の以外のすべての要素（１３２、２０４−２１０）はソフトウェア手順、あるいはソフトウェア手順の一部であり、これは、ハードウェア２１２から受信される入力を処理し、そして、ハードウェアユーザインタフェース（例えば、ディスプレイ、スピーカ、デバイスバイブレーションアクチュエータの１つ以上）を通じて提示される様々な出力を生成する。
【００４２】
ドライバあるいはドライバ２１０のセットは、ハードウェア２１２と通信する。ドライバ２１０は、ハードウェア２１２から受信される入力データを受信して、処理することができる。コアオペレーティングシステム（「ＯＳ」）２０８は、ドライバ（群）２１０と通信することができる。コアＯＳ２０８は、ドライバ（群）２１０から受信されるロー（raw）入力データを処理することができる。いくつかの実施形態では、ドライバ２１０は、コアＯＳ２０８の一部と見なすことができる。
【００４３】
ＯＳアプリケーションプログラミングインタフェース（「ＯＳ  ＡＰＩ」）２０６のセットは、コアＯＳ２０８と通信するソフトウェア手順である。いくつかの実施形態では、ＡＰＩ２０６はデバイスのオペレーティングシステムに含まれるが、コアＯＳ２０８より上位のレベルに位置する。ＡＰＩは、本明細書で説明される電子デバイスあるいは装置で動作するアプリケーションによって使用するために設計される。ユーザインタフェース（ＵＩ）ＡＩＰ２０４は、ＯＳ  ＡＰＩ２０６を利用することができる。デバイス上で動作するアプリケーションソフトウェア（「アプリケーション」）１３２は、ユーザと通信するためにＵＩ  ＡＰＩ２０４を利用することができる。ＵＩ  ＡＰＩ２０４は、より下位のレベルの要素と通信することができ、この要素は、最終的には、例えば、マルチタッチディスプレイ１５６のような様々なユーザインタフェースハードウェアと通信するものである。
【００４４】
各レイヤの入力／出力処理スタック２００は、自身の配下のレイヤを利用することができ、これは常に要求とされるものではない。例えば、いくつかの実施形態では、アプリケーション１３２は、時には、ＯＳ  ＡＰＩレイヤ２０６と通信することができる。一般的には、ＯＳ  ＡＰＩ２０６でのレイヤあるいはそれより上のレイヤは、直接には、コアＯＳ２０８、ドライバ（群）２１０、あるいはハードウェア２１２にアクセスしない。これは、これらのレイヤがプライベートなものと見なされるからである。レイヤ１３２におけるアプリケーション及びＵＩ  ＡＰＩ２０４は、通常、ＯＳ  ＡＰＩ２０６を直接コールし、レイヤのコアＯＳ２−８、ドライバ（群）２１０及びハードウェア２１２にアクセスする。
【００４５】
別の方法で説明すると、電子デバイス１０２の１つ以上のハードウェア要素２１２、及びデバイス上で動作するソフトウェア、例えば、ドライバ２１０、コアＯＳ（オペレーティングシステム）２０８、オペレーティングシステムＡＰＩソフトウェア２０６及びアプリケーション及びユーザインタフェースＡＰＩソフトウェア２０４は、１つ以上の入力デバイス（群）１２８及び／タッチ感知ディスプレイ１５６における入力イベント（ジェスチャーにおけるサブイベントに対応する場合がある）を検出し、そして、入力されたイベントが、アプリケーション１３２へ配信するためのイベントに対応するか、また、対応する場合を判定するために、現在アクティブなイベントレコグナイザーのセットによって使用される様々なデータ構造（デバイス１０２のメモリに記憶される）を生成するあるいは更新する。イベント認識処理手順、装置及びコンピュータプログラム製品の実施形態は、以下で詳細に説明する。
【００４６】
図３は、例示のビュー階層３００（領域の階層とも呼ばれる）を示し、ここで、これは、この例では、最外部ビュー３０２（典型的には、最上位ビューである）で表示されるサーチプログラムである。本明細書で使用されるように、いくつかの実施形態では、各ピューは、各領域に対応し、また、いくつかの実施形態では、各ユーザインタフェースオブジェクトは、各領域に対応する。最外部ビュー３０２（あるいは１つ以上の最外部領域）は、通常は、ユーザが直接対話することができるユーザインフェース全体を包含し、そして、従属ビュー（子領域とも呼ばれる）を含んでいる。これには、例えば、
●サーチ結果パネルビュー３０４、これは、サーチ結果をグループ化し、そして、垂直方向にスクロールすることができる。
【００４７】
●サーチフィールドビュー３０６、これは、テキスト入力を受け付ける。
【００４８】
●ホーム行ビュー３１０、これは、クイックアクセス用のアプリケーションをグループ化している。
【００４９】
この例では、各従属ビューは、更に下位のレベルの従属ビュー（あるいは各子領域の子領域）を含んでいる。他の例では、階層３００のビューレベルの数は、階層の様々なブランチにおいて異なっていても良く、これらは、より下位のレベルの従属ビューを有する１つ以上の従属ビューを備えていて、また、１つ以上の他の従属ビューは、任意の下位のレベルの従属ビューを有さなくても良い。図３に示される例を続けると、サーチ結果パネルビュー３０４は、各サーチ結果に対する各従属ビュー３０５（パネル３０４に従属する）を含んでいる。ここで、この例は、マップビュー３０５と呼ばれる従属ビューにおいて１つのサーチ結果を示している。サーチフィールドビュー３０６は、クリアコンテンツ（clear contents）アイコンビュー３０７と呼ばれる従属ビューを含んでいて、これは、そのビュー３０７上のクリアコンテンツにおいて特定の動作（例えば、シングルタッチあるいはタップジェスチャー）をユーザが実行する場合にサーチフィールドビュー３０６におけるサーチフィールドの内容をクリアする。ホーム行ビュー３１０は、従属ビュー３１０−１、３１０−２、３１０−３及び３１０−４を含み、これらは、それぞれ、接触アプリケーション、電子メールアプリケーション、ウェブブラウザ、及びｉＰｏｄミュージックインタフェースに対応する。
【００５０】
言い方を変えれば、サーチ結果パネルビュー３０４は、マップビュー３０５の親領域であり、また、最外部ビュー３０２はサーチ結果パネルビュー３０４の親領域である。同時に、サーチ結果パネルビュー３０４は、最外部ビュー３０２の子領域であり、また、マップビュー３０５は、サーチ結果パネルビュー３０４の子領域である。同様に、サーチフィールドビュー３０６とホーム行ビュー３１０は、最外部ビュー３０２の子領域でもある。
【００５１】
図３では、タッチサブイベント３０１−１が、最外部ビュー３０２内で表されている。サーチ結果パネル３０４とマップビュー３０５の両方を介してタッチサブイベント３０１−１の位置が与えられると、タッチサブイベントは、また、３０１−２及び３０１−３とするビューそれぞれを介して表される。タッチサブイベントの、アクティブな関係するビュー群は、タッチサブイベント３０１−１（例えば、サーチ結果パネルビュー３０４、マップビュー３０５及び最外部ビュー３０２）の位置に対応するすべてのビューを含んでいる。ヒットビューは、アクティブな関係するビュー間の最下位レベルのビューであり、これは、この例では、マップビュー３０５となる。サブイベントの配信とアクティブな関係するビューに関する追加情報は、図７を参照して以下で説明する。
【００５２】
ビュー（及び対応するプログラムのレベル）はネストすることができる。換言すれば、ビューは、他のビューを含むことができる。その結果、第１のビューに関係するソフトウェア要素（群）（例えば、イベントレコグナイザー）は、第１のビュー内のビュー群に関係する１つ以上のソフトウェア要素を含むことができる、あるいはリンクさせることができる。いくつかのビューがアプリケーションに関連付けることができる一方で、他のビューは上位レベルのＯＳ要素、例えば、グラフィカルユーザインタフェース、ウィンドウマネージャ等に関係付けることができる。
【００５３】
図４Ａ−図４Ｃは、いくつかの実施形態に従う、ビューの階層を含む例示のユーザインフェースである。
【００５４】
図４Ａでは、アプリケーション１３２−１は、ビュー階層４０２における複数のビュー４０８（例えば、４０８−１、４０８−２から４０８−Ｎ）を含んでいる。この例では、ヒットビュー４０８−１は、複数の子ビュー４０８−Ａ、４０８−Ｂ及び４０８−Ｃを含み、そして、子ビュー（４０８−Ａから４０８−Ｃ）内の複数のユーザインタフェースオブジェクト（テキスト１  ４１６−１からテキスト４１３−１）を含んでいる。ヒットビュー＋１  ４０８−２（ヒットビュー４０８−１の親ビューとも呼ばれる）は、複数の子ビュー（４０８−１、４０８−Ｄ及び４０８−Ｅ）と、複数の子ビュー（４０８−１、４０８−Ｄ及び４０８−Ｅ）における複数のユーザインタフェースオブジェクト（テキスト１  ４１６−１、テキスト２  ４１６−２、テキスト３  ４１６−３、テキスト４  ４１６−４及びテキスト５  ４１６−５）を含んでいる。各子ビューは、各子ビューに含まれるユーザインタフェースオブジェクトのサイズと一致している場合があるが、この例では、各子ビューは、それが含む各ユーザインタフェースオブジェクトよりも大きい（例えば、子ビュー４０８−Ａはテキスト１  ４１６−１よりも大きい）。このようなビューあるいは領域は、それが含む各ユーザインタフェースオブジェクトに対するヒット領域として使用することができるので、そのヒット領域に対応する位置での接触が検出される場合に、その接触が各ユーザインタフェースオブジェクトの外で検出されるとしても、各ユーザインタフェースオブジェクトに関連付けられている任意の機能がアクティベートされる。いくつかの実施形態では、子ビューのサブセットにおける各子ビューは、各ユーザインタフェースオブジェクトよりも大きく、一方、残りの子ビューは、対応する各ユーザインタフェースオブジェクトのサイズと一致する。
【００５５】
図４Ａは、また、接触４０５がタッチ感知ディスプレイ上で検出されることを示している。接触に対応する、ビュー階層４０２の最下位ビューは、ヒットビューと呼ばれる。この例では、ヒットビュー４０８−１は、接触４０５に対応するビュー階層４０２の最下位ビューである。この例では、接触４０５の位置において、ヒットビュー４０８−１は、任意のユーザインタフェースオブジェクトを含んでいない。
【００５６】
アプリケーション１３２−１が、ヒットビュー４０８−１とともに接触４０５を処理するように構成されている場合、接触４０５は、アプリケーション１３２−１を使用してヒットビュー４０８−１とともに処理される。アプリケーション１３２−１が、ヒットビュー４０８−１とともに接触４０５を処理するように構成されていない場合（例えば、ヒットビュー４０８−１は、任意のジェスチャーレコグナイザーを有していない、あるいは、接触４０５を認識するあるいは認識することを試行するように構成されているヒットビュー４０８−１に接続されているジェスチャーレコグナイザーがない）、任意の他のビュー４０８とともに接触４０５をアプリケーション１３２−１が処理することができるかを判定するために他のビューが評価される。例えば、ヒットビュー４０８−１の子ビュー４０８−Ａから４０８−Ｃは、最初に評価される。この例では、ヒットビュー４０８−１は、接触４０５を認識するあるいは認識することを試行するように構成されている任意のジェスチャーレコグナイザーを有していない。なぜなら、接触４０５の位置は、ヒットビュー４０８−１内の任意のユーザインタフェースオブジェクトのヒット領域に重複していないからである。
【００５７】
アプリケーション１３２−１が、子ビュー４０８−Ａから４０８−Ｃの内の１つとともに接触４０５を処理するように構成されている場合（例えば、子ビュー４０８−Ａから４０８−Ｃの内の子ビュー４０８−Ｃだけが接触４０５を認識するあるいは認識することを試行するように構成されているジェスチャーレコグナイザーを有している場合）、接触４０５は、アプリケーションを使用してその子ビューとともに処理される。アプリケーション１３２−１が子ビュー４０８−Ａから４０８−Ｃの内の２つ以上の子ビューとともに接触４０５を処理するように構成されている場合（例えば、子ビュー４０８−Ａから４０８−Ｃのそれぞれが接触４０５を認識するあるいは認識することを試行するように構成されているジェスチャーレコグナイザーを有している場合）、２つ以上の子ビューの内の１つが接触４０５を処理するために選択される。典型的には、接触４０５に最も近い子ビューが選択される（例えば、テキスト２  ４１６−２を含むビュー４０８−Ｂ）。
【００５８】
アプリケーション１３２−１が、ヒットビュー４０８−１の子ビュー４０８−Ａから４０８−Ｃの内の任意の子ビューとともに接触４０５を処理するように構成されていない場合、ヒットビュー４０８−１の親ビュー（例えば、４０８−２）が評価される。アプリケーション１３２−１が、親ビュー４０８−２（ヒットビュー＋１とも呼ばれる）とともに接触４０５を処理するように構成されている場合、接触４０５は、アプリケーション１３２−１を使用して親ビュー４０８−２とともに処理される。アプリケーションが、親ビュー４０８−２とともに接触４０５を処理するように構成されていない場合、親ビュー４０８−２の他の子ビュー（即ち、ヒットビュー４０８−１以外の親ビュー４０８−２の子ビュー、例えば、子ビュー４０８−Ｄと４０８−Ｅ）が評価される。ヒットビュー４０８−１は、親ビュー４０８−２の子ビューからは除外される。これは、そのビュー（ヒットビュー４０８−１）は、ヒットビュー４０８−２に関して評価されている接触４０５の前に、接触４０５に関して既に評価されているからである。
【００５９】
ヒットビュー４０８−１の１つ以上の子ビューを使用して接触４０５を処理することと同様に、アプリケーション１３２−１が、子ビュー４０８−Ｄから４０８−Ｅの内の1つの子ビューとともに接触４０５を処理するように構成されている場合、接触４０５は、アプリケーションを使用してその１つの子ビューとともに処理される。アプリケーション１３１−２が、２つ以上の子ビュー（例えば、４０８−Ｄと４０８−Ｅ）とともに接触４０５を処理するように構成されている場合、２つ以上の子ビューの１つの子ビューが接触４０５を処理するために選択される。典型的には、接触４０５に最も近い子ビューが選択される（例えば、テキスト４  ４１６−４を含むビュー４０８−Ｄ）。典型的には、接触を処理するために各ビューが一旦選択されると、接触は、接触に関連付けられているイベントが完了するまで、そのビューにバインドされる（接触とそれに後続する任意のジェスチャーあるいはイベントの部分のための、すべてのイベントを処理することを意味する）。
【００６０】
アプリケーション１３２−１が、親ビュー４０８−２の子ビュー４０８−Ｄと４０８−Ｅの任意の子ビューとともに接触４０５が処理するように構成されていない場合、子ビュー４０８−Ｄと４０８−Ｅの子ビュー（不図示）が評価され、これは、親ビューの親ビュー（例えば、祖父母ビュー）の評価、そして、祖父母ビューの子ビューの評価に続くものである。このようないくつかの評価は、最上位ビュー４０８−Ｎの下位ビューのすべてが評価されるまで、ビュー階層４０２を通して繰り返される。
【００６１】
いくつかの実施形態では、アプリケーション１３２−１が、ビュー階層４０２の任意のビューとともに接触４０５を処理するように構成されていない場合、接触４０５は無視される。他の実施形態では、所定の動作（例えば、デフォルトの動作、例えば、デフォルトのユーザインタフェースオブジェクトの選択）が実行される。
【００６２】
図４Ａには示されていないが、いくつかの実施形態では、ヒットビュー４０８−１は、単一のユーザインタフェースオブジェクト（例えば、ボタン）を含む単一の子ビューを含んでいる。アプリケーション１３２−１が、ヒットビュー４０８−１とともにヒットビュー４０８−１上の接触を処理するようには構成されていないが、ヒットビュー４０８−１の単一の子ビューとともにその接触を処理するように構成されている場合、その接触は、アプリケーション１３２−１を使用して単一の子ビューとともに処理される。
【００６３】
図４Ａと同様に、図４Ｂは、タッチ感知ディスプレイに表示されるビュー階層４１２内の複数のビュー４１８（例えば、４１８−１Ａ、４１８−１Ｂ、及び４１８−２から４１８−Ｎ）を含んでいる。この例では、親ビュー４１８−２（ヒットビュー＋１）は、２つのツールバー（４１８−１Ａ及び４１８−１Ｂ）を含んでいる。接触４０７に対応するヒットビュー４１８−１Ａは、第１のツールバー（ツールバー１）を含んでいて、また、複数のビュー（４１８−Ｆから４１８−Ｈ）内のツールバー（４１６−６から４１６−８）上の複数のボタンあるいはアイコンを含んでいる。この例では、各子ビューは、それに含まれる各ユーザインタフェースオブジェクトのサイズ及び形状に一致している。ビュー４１８−１Ｂは、第２のツールバー（ツールバー２）を含み、そして、複数のビュー（４１８−Ｉから４１８−Ｋ）内の複数のボタン（４１６−１０から４１６−１２）を含んでいる。
【００６４】
図４Ｂも、タッチ感知ディスプレイ上で検出される接触４０７を示している。アプリケーション１３２−２が、ヒットビュー４１８−Ａとともに接触４０７を処理するように構成されてはいないが、子ビュー４１８−Ｆから４１８−Ｈの２つ以上の子ビューとともに接触４０７を処理するように構成されている場合、２つ以上の子ビューの内の１つの子ビューが選択される。典型的には、接触４０７に最も近い、２つ以上の子ビューの内の１つの子ビューが選択される。
【００６５】
アプリケーション１３２−２が、子ビュー４１８−Ｆから４１８−Ｈの内の任意の子ビューとともに接触４０７を処理するように構成されていない場合、親ビュー４１８−２と、それに続いて、ビュー４１８−Ｂが評価され、ビュー４１８−Ｂの子ビュー４０８−Ｉから４１８−Ｋの評価が続くものである。アプリケーション１３２−２が、子ビュー４１８−Ｉから４１８−Ｋの内の任意の子ビューとともに接触４０７を処理するように構成されている場合、接触４０７は、接触４０７がツールバー１上で検出されているとしても、ツールバー２上のボタン群の内の１つのボタン（例えば、ボタンＤ４１６−１０、ボタンＥ４１６−１１あるいはボタンＦ４１６−１２）に対応するアプリケーション１３２−２の機能をアクティベートすることができる。
【００６６】
図４Ａと同様に、図４Ｃは、タッチ感知ディスプレイに表示されるビュー階層４２２内の複数のビュー４２８（例えば、４２８−１、４２８−２から４２８−Ｎ）を含んでいる。この例では、ヒットビュー４２８−１は、異なるサイズの２つのユーザインタフェースオブジェクト（例えば、イメージ（画像）４１６−２１及びボタン４１６−２２）を含んでいる。
【００６７】
各ビューが異なるサイズ及び形状の少なくとも一方のユーザインタフェースオブジェクト（あるいは、異なるサイズ及び形状の少なくも一方の子ビュー）を含んでいる場合、接触に最も近いユーザインタフェースオブジェクトを識別する方法が複数存在する。いくつかの実施形態では、重心間距離、これは、接触（例えば、４０９）の重心（例えば、４０９−１）からユーザインタフェースオブジェクトの重心までの距離であり、最近接のユーザインタフェースオブジェクトを判定するために使用される。いくつかの実施形態では、最短距離、接触（例えば、４０９）の重心（４０９−１）に最も近いユーザインタフェースオブジェクト上の第１の地点からの距離であり、が使用される。いくつかの実施形態では、所定数の地点（例えば、８個の地点）が、距離計算を簡略化するために使用される。例えば、８個の地点（左上角、右上角、左下角、右下角、上辺の中央、下辺の中央、左辺の中央、右辺の中央）を、ユーザインタフェースオブジェクトの候補毎に８個の距離を計算するために使用され、８個の距離の最短距離が各ユーザインタフェースオブジェクトの候補に対して選択される。いくつかの実施形態では、接触からユーザインタフェースオブジェクトへの距離は、接触から、各子ビューあるいはユーザインタフェースオブジェクトの所定数（例えば、３個）の最近接地点への距離の加重平均を備えている。例えば、各子ビューあるいはオブジェクトの３つの最近接地点は、９個の所定の地点の内から選択することができ、これには、上述の８個の地点と、オブジェクトの重心（あるいは、オブジェクト内部の他の「中心」地点）を含んでいる。いくつかの実施形態では、異なる重みが、所定数の最近接地点のそれぞれに対して使用される。例えば、所定数の最近接地点が３個である場合、重みは、最近接地点に対して０．５となり、第２の最近接地点に対して０．３となり、第３の最近接地点に対して０．２となる（重み距離＝０．５ｄ1＋０．３ｄ2＋０．２ｄ3、ここで、ｄ1、ｄ2及びｄ3は、第１の地点から、最近接地点、第２の最近接地点及び第３の最近接地点への距離である）。
【００６８】
図４Ｃに関しては、上述の内容が最近接のユーザインタフェースオブジェクトを識別するために記載されているものであるが、類似の方法を、最近接のビューあるいは領域を識別するために使用することができる。
【００６９】
いくつかの実施形態では、ビュー階層４０２の少なくとも１つのビューは、ウェブページあるいは他の文書の一部を含んでいる。いくつかの実施形態では、ビュー階層４０２のビューは、ウェブページあるいは他の文書の別の部分を含んでいる。
【００７０】
図５Ａ−図５Ｄは、いくつかの実施形態に従う、各接触を処理する例示の方法を示すフローチャートである。
【００７１】
方法５００は、タッチ感知ディスプレイ（例えば、１５６）付きの電子デバイス（例えば、１０２）で実行される。
【００７２】
デバイスは、タッチ感知ディスプレイ上に、アプリケーションのユーザインタフェースを表示する（５０４）。この表示されたユーザインタフェースは、複数の領域（例えば、図４Ａのビュー４０８）を含んでいて、これらは、複数の階層レベル（例えば、ビュー階層４０２）で構成されている。複数の領域は、各階層レベルにおいて各領域（例えば、ヒットビュー４０８−１）を含んでいる。各領域は、各階層レベルの下位の階層レベル（例えば、ビュー４０８−Ａ、４０８−Ｂ、及び４０８−Ｃ）において２つ以上の子領域を有している。
【００７３】
デバイスは、タッチ感知ディスプレイ上の、第１の位置における第１の接触（例えば、４０５）を検出する（５０８）。この第１の位置は、各領域に対応するが、各領域の２つ以上の子領域の任意の子領域には対応しない。図４Ａでは、ヒットビュー４０８−１は、最下位レベルのヒットビューである。それは、接触４０５に「ヒット」しているあるいは重複している下位レベルのビューが存在しないからである。第１の位置は、典型的には、第１の領域の重心であるが、選択的には、特定の位置を接触に割り当てるための任意の適切な処理手順に従って、第１の接触領域から判定することができる。
【００７４】
いくつかの実施形態では、２つ以上の子領域の各子領域は、各ヒット領域を有していて（５１０）、そのヒット領域の少なくとも１つは、対応する子領域とは異なる（例えば、図４Ａにおいて、テキスト４１６−１は、ビュー４０８−１の子領域であり、また、ビュー４０８−Ａは、テキスト４１６−１のヒット領域である）。第１の接触が各領域に対応することを検出すること（５０８）は、第１の領域が、各領域の子領域のヒット領域の任意のヒット領域に対応しないことを判定することを含んでいる。いくつかのユーザインタフェースでは、各ヒット領域は、対応する子領域を含み、そして、その子領域よりも大きい（例えば、ビュー４０８−Ａは、テキスト４１６−１を含み、そして、テキスト４１６−１より大きい）。ユーザインタフェースの特定のオブジェクトあるいは領域の選択を容易にするために、ユーザインタフェースオブジェクトあるいは領域は、自身と異なるサイズ（例えば、より大きい、より小さい、及び／あるいは斜行している）のヒット領域を有することができる。一方、各ユーザインタフェースオブジェクトあるいは領域のヒット領域は、ユーザインタフェースオブジェクトあるいは領域と同一の広がりを持たすことができる（同一のサイズ、形状、及びその位置）。
【００７５】
典型的には、各領域に対応する第１の接触のために、第１の位置は、各領域の子領域の任意の子領域の外に配置されている（５１２）（例えば、図４Ａでは、接触４０５は、子ビュー４０８−Ａから４０８−Ｃの内の任意の子ビューの外に配置されている）。
【００７６】
第１の接触を検出することに応じて、デバイスは、アプリケーションが、各領域とともに第１の接触を処理するように構成されているかどうかを判定する（５１４）（例えば、デバイスは、ヒットビュー４０８−１が、接触４０５を認識するあるいは認識することを試行するように構成されているジェスチャーレコグナイザーを含んでいるかを判定する）。
【００７７】
いくつかの実施形態では、各領域が、所定のプロパティのセットの内の少なくとも１つのプロパティを有するユーザインタフェースオブジェクトを含んでいる場合に、アプリケーションは、各領域とともに第１の接触を処理するように構成されていると見なされる（５２０、図５Ｂ）。例えば、図４Ａのアプリケーション１３２−１は、ビュー４０８−Ａ内のユーザインタフェースオブジェクト（例えば、テキスト１  ４１６−１）が所定の「近接」プロパティ（ユーザの接触がオブジェクトに重複していない場合でさえも、オブジェクト選択あるいはアクティベーションを可能にする）を有する場合、アプリケーション１３２−１は、ビュー４０８−Ａとともに第１の接触（例えば、４０５）を処理するように構成されていると見なされる。いくつかの実施形態では、アプリケーション１３２−１は、各領域自身が所定のプロパティのセットの少なくとも１つのプロパティを有する場合、アプリケーション１３２−１は、各領域とともに第１の接触を処理するように構成されていると見なされる。例えば、ビュー４２８−１が選択される際に音声出力されるテキストを特定するテキストプロパティをそのビュー４２８−１が有していて、そのテキストを音声出力するためのアクセシビリティオプションが実現される場合、図４Ｃのアプリケーション１３２−２は、ビュー４２８−１とともに第１の接触（例えば、４０９）を処理するように構成されていると見なされるであろう。
【００７８】
いくつかの実施形態では、各領域が、所定のユーザインタフェースオブジェクトタイプのセット（例えば、ボタン、チェックボックス、コンボボックス、リンク、リストボックス、メニューボタン、ポップアップボタン、ラジオボタン、スライダー、及びテキストフィールド）の内のあるタイプのユーザインタフェースオブジェクトに対する領域である場合、その各領域は、第１の接触を処理するように構成されていると見なされる。いくつかの実施形態では、所定のユーザインタフェースオブジェクトタイプのセットは、また、見出し三角アイコン（ディスクロージャートライアングル：disclosure triangle）、ヘッダ、イメージ、スタティックテキスト、及びテキストエリアの内の１つ以上を含んでいる。
【００７９】
いくつかの実施形態では、アプリケーションは、第１の接触（第１の接触の位置において）を含むジェスチャーに応じてアクティベートされるように構成されているユーザインタフェースオブジェクトを、各領域が含んでいる場合に、アプリケーションは、その各領域とともに第１の接触を処理するように構成されていると見なされる（５２２）。第１の接触（例えば、４０５）を含んでいるジェスチャーに応じてアクティベートされるように構成されているユーザインタフェースオブジェクト（例えば、テキスト１  ４１６−１）をビュー４０８−Ａが含んでいる場合、例えば、図４Ａのアプリケーション１３２−１は、ビュー４０８−Ａとともに第１の接触を処理するように構成されていると見なされる。第１の接触を含んでいるジェスチャーに応じてアクティベートされるように構成されていないユーザインタフェースオブジェクトの、非限定的な例には、１）スタティックユーザインタフェースオブジェクト（例えば、任意の機能が割り当てられていない、テキストあるいはグラフィックを表示するためのラベル）、及び２）異なるジェスチャー（例えば、２本指による接触）に応じてアクティベートされるように構成されているユーザインタフェースオブジェクトを含んでいる。第１の接触を含んでいるジェスチャーに応じてアクティベートされるように構成されていないユーザインタフェースオブジェクトの例には、ヒットビュー４０８−１がある。これは、第１の接触４０５は、ヒットビュー４０８−１において任意の選択可能／アクティベート可能なオブジェクトを重複しないからである。また、第１の接触を含んでいるジェスチャーに応じてアクティベートされるように構成されているユーザインタフェースオブジェクトを、各領域自身が有している場合、アプリケーションは、各領域とともに第１の接触を処理するように構成されていると見なされる。
【００８０】
いくつかの実施形態では、少なくとも１つのイベントレコグナイザーが各領域に関連付けられている場合、アプリケーションは、各領域とともに第１の接触を処理するように構成されていると見なされる（５２４）。イベントレコグナイザー（あるいはジェスチャーレコグナイザー）は、図７で詳細に説明する。より典型的な実施形態は、第１の接触を含むジェスチャーを認識するように構成されているイベントレコグナイザーが各領域に関連付けられている場合、アプリケーションは、各領域とともに第１の接触を処理するように構成されていると見なされる（５２６）実施形態である。逆に、特定のタイプの接触（例えば、１本指による接触）が検出され、各領域（あるいはビュー）が、そのタイプの接触で開始するジェスチャーを認識するように構成されているイベントレコグナイザーを含んでいない場合、各領域は、各領域とともに第１の接触を処理するように構成されていないと見なされる。
【００８１】
アプリケーションが、各領域とともに第１の接触を処理するように構成されている場合、デバイスは、アプリケーションを使用して各領域とともに第１の接触を処理する（５１６、図５Ａ）。例えば、デバイスは、各領域に関連付けられている機能をアクティベートする（例えば、各領域が同一のボタンを含んでいる場合、デバイスは、対応するコンテンツあるいは文書の保存を開始する）。別の例では、各領域がハイパーリンク（例えば、ユニフォームリソースロケータ）を含んでいる場合、デバイスは、ハイパーリンクに対応するリソース（例えば、ウェブページ）をオープンすることを開始する。
【００８２】
いくつかの実施形態では、アプリケーションを使用して各領域とともに第１の接触を処理することは、確認情報を提示することを含んでいる。いくつかの実施形態では、確認情報を提示することは、完了を提供することを含んでいる。例えば、デバイスは、各領域に対応するテキスト（例えば、各領域に含まれるテキスト、各領域に対応する機能の名前、あるいは各領域に対応する埋込テキスト、例えば、ヘルプテキスト）を視覚的に区別する（例えば、太字にする、点滅させる、拡大する、及び／あるいは色を変更する）ことができる。確認情報を提示することは、非視覚信号を含めることができる。例えば、デバイスは、テキスト音声変換ソフトウェアを使用して、各領域に対応するテキストを可聴音声信号に変換しても良いし、各領域に対応するサウンドクリップを再生しても良い。別の例では、デバイスは、各領域に対応するテキストを、点字生成装置（不図示）を使用して提示用の点字に変換しても良い。
【００８３】
いくつかの実施形態では、アプリケーションを使用して各領域とともに第１の接触を処理することは、確認ジェスチャーを受信することを含んでいる。例えば、確認情報を提示した後に、デバイスは、確認ジェスチャー（例えば、デバイスのタッチ感知ディスプレイ上の任意の場所で行われる、あるいはタッチ感知ディスプレイ上の特定領域内、例えば、タッチ感知ディスプレイの下半分で行われる、シングルタップジェスチャー、ダブルタップジェスチャー、あるいはタップアンドホールド（tap-and-hold：タップ保持）ジェスチャー、）を受信する。
【００８４】
アプリケーションが、各領域（図５Ａ及び図５Ｃの５１８）とともに第１の接触を処理するように構成されていない場合、デバイスは、以下の動作の少なくとも１つのサブセットを実行する（例えば、動作５２８、５３０、５３２、５３４、及び、それらに含まれる動作群、及び、いくつかの実施形態では、動作５３６、５３８、及び／あるいは５４０）。
【００８５】
デバイスは、アプリケーションが、各領域の２つ以上の子領域の少なくとも１つの領域とともに第１の接触を処理するように構成されているかどうかを判定する（図５Ｃの５２８）（例えば、図４Ａでは、デバイスは、アプリケーション１３２−１が、ビュー４０８−Ａ、４０８−Ｂ及び４０８−Ｃの任意のビューとともに接触４０５を処理するように構成されているかどうかを判定する）。
【００８６】
アプリケーションが、各領域の２つ以上の子領域の少なくとも１つの領域とともに第１の接触を処理するように構成されている場合（５３０）、デバイスは、以下の動作を実行する（例えば、動作５３２及び５３４、及びそれらに含まれる動作群）。
【００８７】
デバイスは、第１の位置に関連する子領域の位置に従って、各領域の２つ以上の子領域の各子領域を識別する（５３２）。例えば、デバイスは、接触４０５に関連する、子ビュー４０８−Ａから４０８−Ｃの位置に従って、最も近い子ビューとして、子ビュー４０８−Ａから４０８−Ｃの内の子ビュー４０８−Ｂを識別する。
【００８８】
いくつかの実施形態では、第１の位置に関連する子領域の位置に従って、各領域の２つ以上の子領域の各子領域を識別すること（動作５３２）は、第１の位置に関する近接基準を最も満足する、各領域の２つ以上の子領域の内の子領域を識別すること（５４２、図５Ｄ）を含んでいる。例えば、デバイスは、近接基準に基づいて、第１の位置に最も近い子領域を識別する。近接基準は、重心間距離、ユーザインタフェースオブジェクトあるいは子領域と第１の位置との間の最短距離、所定数の地点（各子ビューに対する）に基づく第１の位置への最短距離、及び所定数の地点（各子ビューに対する）からの距離の加重平均に基づく第１の位置への最短距離の少なくとも１つに基づいている。
【００８９】
いくつかの実施形態では、第１の位置に関連する子領域の位置に従って、各領域の２つ以上の子領域の各子領域を識別すること（動作５３２）は、第１の位置に関する近接基準を最も満足する、各領域の２つ以上の子領域の内の子領域を識別すること（５４４）、識別される子領域が第１の位置に関する最大距離制限を満足することを確認することを含んでいる。例えば、識別される子ビューから第１の位置までの距離が最大距離制限を超える場合、識別される子領域は無視される。いくつかの実施形態では、第１の位置の接触の最大距離制限内に子領域が存在しない場合、デバイスは、その第１の位置での接触を無視する。他の実施形態では、デバイスは、各領域の親領域を含む、他の領域を評価することを継続する。
【００９０】
いくつかのユーザインタフェースでは、２つ以上の子領域の１つ以上の子領域は、所定の近接プロパティを有していて（５４６）、また、少なくとも１つの他の子領域は、所定の近接プロパティを有していない。各子領域を識別することは、第１の位置に関連する子領域の位置に従って、所定の近接プロパティを有する各領域の１つ以上の子領域の各子領域を識別することを含んでいる。例えば、子領域の少なくとも１つのサブセットは、所定の近接プロパティを有するように構成することができる。所定の近接プロパティは、領域に対応しない位置で接触が検出される場合でさえも、アクティベーション／選択に対して対応する領域が適切であるかどうかを示すものである。所定の近接プロパティは、子の領域のサブセットのそれぞれにおけるプロパティ群（例えば、図１の１３８）内に配置することができる。所定の近接プロパティが使用される場合、デバイスは、所定の近接プロパティを有する子領域との間の子領域を識別する。
【００９１】
ユーザインタフェース（例えば、識別される子領域）の適切な領域が識別されている場合、デバイスは、アプリケーションを使用してその領域（例えば、識別される各子領域）とともに第１の接触を処理する（５３４、図５Ｃ及び図５Ｄ）。
【００９２】
いくつかの実施形態では、複数の領域は、それらの領域に対応する複数の階層的に構成されているビューを備えている（５４８）。複数のビューのそれぞれは、典型的には、各ビューに関連付けられている少なくとも１つのイベントレコグナイザーを有している。アプリケーションを使用してその識別される各子領域とともに第１の接触を処理することは、識別される各子領域に対応するビューの少なくとも１つのイベントレコグナイザーによって処理されるべきイベント（あるいはサブイベント、接触が、ジェスチャーあるいはイベントの第１の位置に対応する場合）を生成することを含んでいる。
【００９３】
いくつかの実施形態では、複数の領域は、それらの領域に対応する複数の階層的に構成されているビューを備えている（５５０）。アプリケーションを使用してその識別される各子領域とともに第１の接触を処理することは、識別される各子領域における接触として第１の接触を処理することを含んでいる。いくつかの実施形態では、識別される各子領域における接触として第１の接触を処理することは、識別される各子領域に対応する位置で新規のイベント（あるいはサブイベント、上述のような）を生成することを含んでいる。例えば、図４Ａでは、デバイスが子ビュー４０８−Ｂにおける接触として接触４０５を処理する場合、デバイスは、子ビュー４０８−Ｂに対応する位置での仮想接触を示す新規のイベントを生成する。
【００９４】
いくつかのユーザインタフェースでは、各領域は、各階層レベルの上位の階層レベルでの親領域（例えば、ヒットビュー＋１  ４０８−２）を有している（５３６、図５Ｃ）。オプションとしては、この状況では、アプリケーションが各領域の２つ以上の子領域の少なくとも１つの子領域とともに第１の接触を処理するように構成されておらず、また、アプリケーションが、親領域とともに第１の接触を処理するように構成されている場合、デバイスは、アプリケーションを使用して親領域とともに第１の接触を処理する（５３８）。例えば、図４Ａでは、アプリケーション１３２−１が、子ビュー４０８−Ａから４０８−Ｃの内の任意の子ビューとともに接触４０５を処理するように構成されていない場合、デバイスは、ヒットビュー＋１  ４０８−２とともに接触４０５を処理し、アプリケーション１３２−１が、ヒットビュー＋１  ４０８−２とともに接触４０５を処理するように構成されている場合。
【００９５】
いくつかの実施形態では、アプリケーションが、各領域の２つ以上の子領域の内の少なくとも１つの子領域とともに第１の接触を処理するように構成されていない場合、デバイスは、親領域の接触として第１の接触を処理する（５４０）。いくつかの実施形態では、親領域の接触として第１の接触を処理することは、親領域に対応する位置での新規のイベント（あるいはサブイベント、上述のような）を生成することを含んでいる。例えば、図４Ａでは、デバイスは、ヒットビュー＋１  ４０８−２での接触として接触４０５を処理する場合、デバイスは、ヒットビュー＋１  ４０８−２に対応する位置での仮想接触を指示する新規のイベントを生成する。
【００９６】
いくつかのユーザインタフェースでは、親領域は、各階層レベルでの１つの階層レベルにおいて１つ以上の子領域を有していて、アプリケーションが、親領域とともに第１の接触を処理するように構成されていない場合、デバイスは、アプリケーションが親領域の１つ以上の子領域の内の少なくとも１つの子領域とともに第１の接触を処理するように構成されていることの条件に基づいて、親領域の１つ以上の子領域の内の少なくとも１つの子領域とともに第１の接触を処理する。
【００９７】
ここで、上述の方法５００に関する処理の詳細は、以下の方法６００についても同様に適用できることに注意されたい。簡潔のために、これらの詳細は、以下では繰り返さない。
【００９８】
図６は、いくつかの実施形態に従う、ウェブページあるいは他の文書上の各接触を処理する例示の方法を示すフローチャートである。
【００９９】
方法６００は、タッチ感知ディスプレイ（例えば、１５６）付き電子デバイス（例えば、１０２）において実行される（６０２）。
【０１００】
デバイスは、複数のアクティベート可能なユーザインタフェースオブジェクト（例えば、図４Ｃでは、ビュー階層４２２内の１つ以上のビューは、いくつかの実施形態ではウェブページあるいは他の文書を含み、また、これらのビューは、ユーザインタフェースオブジェクト４１６−２１と４１６−２２を含んでいる）を含む、ウェブページあるいは他の文書１３４（図１）をタッチ感知ディスプレイ上に表示する（６０４）。いくつかの実施形態では、すべてのユーザインタフェースオブジェクトがアクティベート可能である。いくつかの実施形態では、一定のユーザインタフェースオブジェクトプロパティ（例えば、隠しあるいはスタティックユーザインタフェースオブジェクト）を有するユーザインタフェースオブジェクトはアクティベート可能でないが、一方で、他のユーザインタフェースオブジェクトはアクティベート可能である。いくつかの実施形態では、一定のタイプ（例えば、ラベル）のユーザインタフェースオブジェクトはアクティベート可能でない。オプションとして、表示されている文書内のいくつかのあるいはすべてのオブジェクトは、文書内のＨＴＭＬあるいはＸＭＬ命令（例えば、タグあるいは要素）によって静的に定義されるものとは対照的に、文書に埋め込まれている埋込アプリケーションによって生成されても良い。一方、表示されている文書内のいくつかのあるいはすべてのオブジェクトは、文書内のＨＴＭＬあるいはＸＭＬ命令によって定義されていても良い。
【０１０１】
デバイスは、表示されているウェブページに対応する第１の位置における第１の接触（例えば、接触４０９）をタッチ感知ディスプレイ上で検出する（６０６）。
【０１０２】
第１の位置における第１の接触を検出することに応じて、デバイスは、第１の位置が、アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応するかどうかを判定する（６０８）（例えば、図４Ｃでは、接触４０９は、ユーザインタフェースオブジェクトの内のいずれにも対応していない）。
【０１０３】
いくつかの実施形態では、第１の位置が、アクティベート可能なユーザインタフェースオブジェクトの１つのユーザインタフェースオブジェクトに対応する場合、デバイスは、第１の位置（例えば、第１の位置に重複するオブジェクトのヒット領域）に対応するアクティベート可能なユーザインタフェースオブジェクトに対応する動作を実行する（６２４）。
【０１０４】
第１の位置が、アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応しない場合（６１０）、デバイスは、以下の動作を実行する（例えば、６１２及び６２０及びいくつかの実施形態では、それらの動作に含まれる動作）。
【０１０５】
デバイスは、あるのであれば、第１の位置に関する所定のルールを最も満足するユーザインタフェースオブジェクトを識別する（６１２）。いくつかの実施形態では、所定のルールは、最も近いアクティベート可能なユーザインタフェースオブジェクトを識別することを要求し、そして、デバイスは、最も近いユーザインタフェースオブジェクトを識別する。いくつかの実施形態では、所定のルールは、最大距離制限内の最も近いアクティベート可能なユーザインタフェースオブジェクトを識別することを要求し、そして、デバイスは、存在するものがある場合、最も近いアクティベート可能なユーザインタフェースオブジェクトを識別する。但し、最大距離制限内にアクティベート可能なユーザインタフェースオブジェクトがない場合、デバイスは、任意のアクティベート可能なユーザインタフェースオブジェクトを識別することができない。
【０１０６】
いくつかの実施形態では、所定のルールは、第１の位置に関する近接基準を含んでいる（６１４）。上述のように、近接基準は、オブジェクトの重心と第１の位置との間の距離、ユーザインタフェースオブジェクトから第１の距離への最短距離、ユーザインタフェースオブジェクトから、各アクティベート可能なユーザインタフェースオブジェクトに対する所定数の地点（例えば、オブジェクトの４つの角、４つの辺の中間点である８個の候補地点の内の最も近い地点）に基づく第１の位置への最短距離、及びユーザインタフェースオブジェクトから第１の位置への最短加重平均距離の少なくとも１つ含み、ここで、ユーザインタフェースオブジェクトから第１の位置への加重平均距離は、９個の候補地点の内の所定数（例えば、３）の地点に基づいている。９個の候補地点とは、ユーザインタフェースオブジェクトの４つの角、４つの辺の中間地点、及び重心である。
【０１０７】
いくつかの実施形態では、第１の接触を検出することは、第１の位置での第１の接触の速度及び方向を判定することを含んでいて、所定のルールは、第１の接触の方向及び速度と、第１の位置に関する近接基準を含む複数の要素の加重組み合わせに基づいている。例えば、図４Ｃでは、イメージ４１６−２１は、接触４０９に最も近いアクティベート可能なユーザインタフェースオブジェクトであり、デバイスは、十分な速度でボタン４１６−２２に向けて接触４０９が移動している場合に、所定のルールを最も満足するユーザインタフェースオブジェクトとして、ボタン４１６−２１を識別することができる。同様に、接触４０９が特定のボタンから離れる場合、ボタンから接触して離れる移動の方向が、所定のルールを適用する場合に考慮される（動作６１２）。これは、所定のルールを最も満足するオブジェクトとしてボタンを識別する可能性を削減する。
【０１０８】
いくつかの実施形態では、ユーザインタフェースオブジェクトを識別することは、所定のルールを最も満足するユーザインタフェースオブジェクトを識別するために、第１の位置から、アクティベート可能なユーザインタフェースオブジェクトの少なくともサブセットへの各距離を判定する（例えば、図４Ｃでは、デバイスは、接触４０９からイメージ４１６−２１と４１６−２２との各距離を判定する）ことを含んでいる（６１６）。
【０１０９】
いくつかの実施形態では、各距離のそれぞれは、第１の位置から、各アクティベート可能なユーザインタフェースオブジェクトの複数の地点への距離の加重平均を含んでいる（６１８）。例えば、接触４０９とイメージ４１６−２１との間の距離は、第１の位置から、イメージ４２０−３（例えば、接触の重心４０９−１から地点４１６−２１への距離、接触の重心４０９−１から地点４２０−２への距離、及び接触の重心４０９−１から地点４２０−４への距離の加重平均）の所定数（例えば、３個）の地点への距離の加重平均とすることができる。いくつかの実施形態では、最短距離は、次の最短距離よりもうより大きい重み付けがなされる（例えば、接触の重心４０９−１から地点４２０−３への距離は、接触の重心４０９−１から地点４２０−２への距離よりもより大きい重み付けがなされる）。
【０１１０】
デバイスは、識別されるユーザインタフェースオブジェクトに対応する動作を実行する（６２０）。実行される動作は、典型的には、識別されるユーザインタフェースオブジェクトの１つ以上の特徴に依存する。例えば、識別されるユーザインタフェースオブジェクトが、図４Ｃのイメージ４１６−２１である場合、デバイスは、イメージ４１６−２１に対応する動作を実行する（例えば、この動作は、４１６−２１で表示されるイメージを変更する、あるいは、デバイスに、イメージ４１６−２１に関連付けられているウェブページを表示することを指示する等がある）。
【０１１１】
いくつかの実施形態では、動作を実行することは、識別されるユーザインタフェースオブジェクトをアクティベートすることを備えている（６２２）。
【０１１２】
いくつかの実施形態では、デバイスは、タッチ感知ディスプレイ上の、複数のアクティベート可能なユーザインタフェースオブジェクトの内の各アクティベート可能なユーザインタフェースオブジェクトの各位置を表示する。例えば、ウェブページを描画する場合、デバイスは、各アクティベート可能なユーザインタフェースオブジェクトの各位置（例えば、ウェブページのハイパーリンク）を判定し、そして、接触が、ユーザインタフェースオブジェクトの１つと重複するかどうかの判定（例えば、動作６０８）時、及び所定のルールを最も満足するユーザインタフェースオブジェクトの識別（例えば、動作６１２）時の一方の時にその各位置を使用する。
【０１１３】
図５Ａ−図５Ｄ及び図６を参照して上述される動作は、アクセシビリティモジュール１２６（図１）、アプリケーションソフトウェア１３２（特に、ブラウザアプリケーション１３３）、及び埋込アプリケーション１４４の少なくとも１つで実現することができる。アクセシビリティモジュール１２６、アプリケーションソフトウェア１３２、及び埋込アプリケーション１４４の少なくとも１つに加えて、あるいは、それらに代えて、上述の動作は、図７に示されるコンポーネントによって実現することができる。
【０１１４】
図７は、いくつかの実施形態に従うイベントハンドリング３９０に対する例示のコンポーネントを示すブロック図である。いくつかの実施形態では、メモリ１１１（図１）は、イベントソーター７７０（例えば、オペレーティングシステム１１８）及び各アプリケーション１３２−１を含んでいる。
【０１１５】
イベントソーター７７０は、イベント情報を受信して、イベント情報の配信先となる、アプリケーション１３２−１のアプリケーションビュー７９１とアプリケーション１３２−１を判定する。イベントソーター７７０は、イベントモニター７７１と、イベントディスパッチャモジュール７７４を含んでいる。いくつかの実施形態では、アプリケーション１３２−１は、アプリケーション内部状態７９２を含んでいて、これは、アプリケーションがアクティブであるあるいは実行中である場合に、タッチ感知ディスプレイ１５６上に表示される現在のアプリケーションビュー（群）を示している。いくつかの実施形態では、デバイス／グローバル内部状態１４６は、どのアプリケーション（群）が現在アクティブであるかを判定するためにイベントソーター７７０によって使用され、そして、アプリケーション内部状態７９２は、イベント情報の配信先のアプリケーションビュー７９１を判定するためにイベントソーター７７０によって使用される。
【０１１６】
いくつかの実施形態では、アプリケーション内部状態７９２は、更なる状態を含んでいて、これには、例えば、アプリケーション１３２−１が実行を再開する場合に使用される再開情報、（これは、文書１３４の埋込アプリケーションによって制御されていても良い）アプリケーション１３２−１によって表示されるあるいは表示のために準備されている情報を示すユーザインタフェース状態情報、アプリケーション１３２−１の従前の状態あるいはビューへ戻ることをユーザに可能にする状態キュー、及びユーザによって行われる従前の動作のキューのやり直し／取り消しの内の、１つ以上がある。
【０１１７】
イベントモニター７７１は、タッチ感知ディスプレイ１５６及び入力デバイス１２８の少なくとも一方からのイベント情報を受信する。イベント情報は、イベント（例えば、タッチ感知ディスプレイ１５６上のユーザタッチ、デバイス１０２のマルチタッチジェスチャーあるいは動きの一部として）、及びサブイベント（例えば、タッチ感知ディスプレイ１５６に渡るタッチの移動）の少なくとも一方についての情報を含んでいる。例えば、タッチイベントに対するイベント情報は、タッチの位置及びタイムスタンプの１つ以上を含んでいる。同様に、スワイプイベントに対するイベント情報は、スワイプの、位置、タイムスタンプ、方向及び速度の２つ以上を含んでいる。タッチ感知ディスプレイ１５６と入力デバイス１２８は、イベント情報及びサブイベント情報を、直接あるいは周辺機器インタフェースを介してイベントモニター７７１へ送信し、イベントモニター７７１は、イベント情報を受信して記憶する。いくつかの実施形態では、電子デバイス１０２は、更に、１つ以上のセンサ（不図示）を含み、これには、例えば、近接センサ、加速度計（群）、ジャイロスコープ、マイクロフォン、及びビデオカメラがあり、これらのセンサは、イベント情報とサブイベント情報をイベントモニター７７１へ送信する。
【０１１８】
いくつかの実施形態では、イベントソーター７７０は、更に、ヒットビュー判定モジュール７７２、及びアクティブイベントレコグナイザー判定モジュール７７３の少なくとも一方を含んでいる。
【０１１９】
ヒットビュー判定モジュール７７２は、タッチ感知ディスプレイ１５６が２つ以上のビューを表示している場合、サブイベントが１つ以上のビュー内のどこで発生しているかを判定するためのソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見ることができる、コントロール及び他の要素（例えば、ユーザインタフェースオブジェクト）で構成されている。
【０１２０】
アプリケーションと関連付けられているユーザインタフェースの別の態様は、本明細書では、時には、アプリケーションビューあるいはユーザインタフェースウィンドウと呼ばれるビューのセットであり、これには、情報が表示され、そして、タッチに基づくジェスチャーが発生する。タッチが検出されるアプリケーションビュー（各アプリケーションの）は、プログラム内のプログラム上のレベル、あるいはアプリケーションのビュー階層に対応していても良い。例えば、タッチが検出される最下位レベルのビューは、ヒットビューと呼ぶことができ、適切な入力として認識されるイベントのセットは、タッチに基づくジェスチャーを開始する、ヒットビュー上の最初のタッチの少なくとも一部に基づいて判定することができる。
【０１２１】
ヒットビュー判定モジュール７７２は、タッチに基づくジェスチャーのサブイベントに関連する情報を受信する。アプリケーションが、階層で構成されている複数のビューを有している場合、ヒットビュー判定モジュール７７２は、階層内の最下位のビューとしてヒットビューを識別し、これは、サブイベントを処理するべきである。多くの状況では、ヒットビューは、開始するサブイベントが発生する最下位レベルのビューである（即ち、イベントあるいは潜在的なイベントを形成するサブイベントのシーケンスの第１のサブイベント）。ヒットビューがヒットビュー判定モジュールによって一旦識別されると、ヒットビューは、典型的には、同一のタッチあるいは入力ソースに対する、ヒットビューとして識別されている、その同一のタッチあるいは入力ソースに関連するサブイベントのすべてを受信する。
【０１２２】
アクティブイベントレコグナイザーモジュール７７３は、ビュー階層内のどのビューが、サブイベントの特定のシーケンスを受信するべきかを判定する。いくつかの実施形態では、アクティブイベントレコグナイザー判定モジュール７７３は、ヒットビューが、サブイベントの特定のシーケンスを認識するように構成されているイベントレコグナイザーを有していない場合、ヒットビューの子領域あるいは親領域、あるいは、ヒットビューに関連するビュー階層内の任意の他の領域が、サブイベントの特定のシーケンスを受信すべきことを判定する。同様に、アクティブイベントレコグナイザー判定モジュール７７３が、サブイベントの特定のシーケンスを認識するように構成されているイベントレコグナイザーを有する領域を識別するまで、アクティブイベントレコグナイザー判定モジュール７７３は、この判定動作を繰り返す。
【０１２３】
イベントディスパッチャモジュール７７４は、イベントレコグナイザー（例えば、イベントレコグナイザー７８０）へイベント情報をディスパッチする。アクティブイベントレコグナイザー判定モジュール７７３を含む実施形態では、イベントディスパッチャモジュール７７４は、アクティブイベントレコグナイザー判定モジュール７７３によって判定されるイベントレコグナイザーへイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール７７４は、イベント情報をイベントキューに記憶し、これは、各イベントレシーバーモジュール７８２によって取得される。
【０１２４】
いくつかの実施形態では、オペレーティングシステム１２６は、イベントソーター７７０を含んでいる。選択的には、アプリケーション１３２−１は、イベントソーター７７０を含んでいる。更なる別の実施形態では、イベントソーター７７０は、スタンドアローンモジュールであり、あるいは、メモリ１０２に記憶される別のモジュールの一部、例えば、接触／動きモジュール１３０である。
【０１２５】
いくつかの実施形態では、アプリケーション１３２−１は、複数のイベントハンドラー７９０と１つ以上のアプリケーションビュー７９１を含み、それぞれは、アプリケーションのユーザインタフェースの各ビュー内で発生するタッチイベントを処理するための命令を含んでいる。アプリケーション１３２−１の各アプリケーションビュー７９１は、１つ以上のイベントレコグナイザー７８０を含んでいる。典型的には、各アプリケーションビュー７９１は、複数のイベントレコグナイザー７８０を含んでいる。他の実施形態では、１つ以上のイベントレコグナイザー７８０は、別のモジュールの一部であり、これには、例えば、ユーザインタフェースキット（不図示）、あるいは、アプリケーション１３２−１がメソッド及び他のプロパティを継承する、上位レベルのオブジェクトがある。いくつかの実施形態では、各イベントハンドラー７９０は、データアップデーター７７６、オブジェクトアップデーター７７７、ＧＵＩアップデーター７７８、及びイベントソーター７７０から受信されるイベントデータ７７９の内の１つ以上を含んでいる。イベントハンドラー７９０は、データアップデーター７７６、オブジェクトアップデーター７７７あるいはＧＵＩアップデーター７７８を利用してあるいはコールして、アプリケーション内部状態７９２を更新することができる。選択的には、１つ以上のアプリケーションビュー７９１は、１つ以上の各イベントハンドラー７９０を含んでいる。また、いくつかの実施形態では、１つ以上のデータアップデーター７７６、オブジェクトアップデーター７７７、及びＧＵＩアップデーター７７８は、各アプリケーションビュー７９１に含まれる。
【０１２６】
各イベントレコグナイザー７８０は、イベントソーター７７０からイベント情報（例えば、イベントデータ７７９）を受信し、そして、そのイベント情報からイベントを識別する。イベントレコグナイザー７８０は、イベントレシーバー７８２とイベントコンパレーター７８４を含んでいる。いくつかの実施形態では、イベントレコグナイザー７８０は、更に、メタデータ７８３、及びイベント配信命令７８８（サブイベント配信命令を含む場合がある）の少なくとも１つのサブセットを含んでいる。
【０１２７】
イベントレシーバー７８２は、イベントソーター７７０からイベント情報を受信する。イベント情報は、サブイベントについての情報、例えば、タッチあるいはタッチ移動についての情報を含んでいる。サブイベントに依存して、イベント情報は、更に、追加の情報、例えば、サブイベントの位置を含んでいる。サブイベントがイベント情報のタッチの動きに関係する場合、イベント情報は、更に、サブイベントの速度及び方向を含む場合がある。いくつかの実施形態では、イベントは、ある方向から別の方向へ（例えば、縦（ポートレイト）方向から横（ランドスケープ）方向へ、あるいはその逆）の回転を含んでいて、また、イベント情報は、デバイスの現在の方向（いわゆる、デバイス姿勢とも呼ばれる）についての対応する情報を含んでいる。
【０１２８】
イベントコンパレーター７８４は、イベント情報と、所定のイベントあるいはサブイベント定義とを比較し、その比較に基づいて、イベントあるいはサブイベントを判定し、あるいは、イベントあるいはサブイベントの状態を判定するあるいは更新する。いくつかの実施形態では、イベントコンパレーター７８４は、イベント定義７８６を含んでいる。イベント定義７８６は、イベントの定義（例えば、サブイベントの所定のシーケンス）、例えば、イベント１（７８７−１）、イベント２（７８７−２）、及びその他を含んでいる。いくつかの実施形態では、イベント７８７のサブイベントは、例えば、タッチ開始、タッチ終了、タッチ移動、タッチキャンセル、マルチタッチ操作を含んでいる。一例では、イベント１（７８７−１）に対する定義は、表示されているオブジェクトのダブルタップである。ダブルタップは、例えば、所定のフェーズに対する表示されているオブジェクト上の第１のタッチ（タッチ開始）、所定のフェーズに対する第１の解除（タッチ終了）、所定のフェーズに対する表示されているオブジェクト上の第２のタッチ（タッチ開始）、及び所定のフェーズに対する第２の解除（タッチ終了）を備えている。別の例では、イベント２（７８７−２）に対する定義は、表示されているオブジェクト上のドラッグ操作である。ドラッグ操作は、例えば、所定のフェーズに対する表示されているオブジェクトのタッチ（あるいは接触）、タッチ感知ディスプレイ１５６に渡るタッチの移動、及びタッチの解除（タッチ終了）を備えている。いくつかの実施形態では、イベントは、更に、１つ以上の関係するイベントハンドラー７９０を含んでいる。
【０１２９】
いくつかの実施形態では、イベント定義７８７は、各ユーザインタフェースオブジェクトに対するイベントの定義を含んでいる。いくつかの実施形態では、イベントコンパレーター７８４は、どのユーザインタフェースオブジェクトがサブイベントに関連付けられているかを判定するためのヒットテストを実行する。例えば、３つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ１５６上で表示されているアプリケーションビューにおいては、タッチがタッチ感知ディスプレイ１５６上で検出される場合、イベントコンパレーター７８４は、３つのユーザインタフェースオブジェクトの内のどれがタッチ（サブイベント）に関連付けられているかを判定するためのヒットテストを実行する。各表示されているオブジェクトが各イベントハンドラー７９０に関連付けられている場合、イベントコンパレーターはヒットテストの結果を使用して、どのイベントハンドラー７９０をアクティベートするべきかを判定する。例えば、イベントコンパレーター７８４は、サブイベントに関連付けられているイベントハンドラーと、ヒットテストをトリガーするオブジェクトを選択する。
【０１３０】
いくつかの実施形態では、各イベント７８７に対する定義は、サブイベントのシーケンスが、イベントレコグナイザーのイベントタイプに対応するか否かを判定するまで、イベントの情報配信を遅延する遅延動作を含んでいる。
【０１３１】
各イベントレコグナイザー７８０が、一連のサブイベントが、イベント定義７８６内の任意のイベントと一致しないと判定する場合、各イベントレコグナイザー７８０は、タッチに基づくジェスチャーの後続のサブイベントを無視した後、イベント不能、イベント失敗あるいはイベント終了状態に入る。この状況では、他のイベントレコグナイザーは、もしあるのであれば、ヒットビューに対する残りの動作は、進行中のタッチに基づくジェスチャーのサブイベントを追跡し、そして、処理することを継続する。
【０１３２】
いくつかの実施形態では、各イベントレコグナイザー７８０は、構成設定可能なプロパティ、フラグ及びリストの少なくとも１つを含んでいて、これは、どのようにしてイベント配信システムがアクティブな関係するイベントレコグナイザーへのサブイベント配信を実行するべきかを示している。いくつかの実施形態では、メタデータ７８３は、構成設定可能なプロパティ、フラグ及びリストの少なくとも１つを含むメタデータ７８３を含んでいて、これは、どのようにしてイベントレコグナイザーが他のイベントレコグナイザーと対話できるかを示している。いくつかの実施形態では、メタデータ７８３は、構成設定可能なプロパティ、フラグ及びリストの少なくとも１つを含み、これは、サブイベントが、可変レベルのビュー内あるいはプログラム上の階層内へ配信されるかを示している。
【０１３３】
いくつかの実施形態では、各イベントレコグナイザー７８０は、イベントの１つ以上の特定のサブイベントが認識される場合のイベントに関連付けられているイベントハンドラー７９０をアクティベートする。いくつかの実施形態では、各イベントレコグナイザー７８０は、イベントに関連付けられているイベント情報をイベントハンドラー７９０へ配信する。イベントハンドラー７９０をアクティベートすることは、サブイベントを各ヒットビューへ送信すること（かつ遅延して送信すること）とは別である。いくつかの実施形態では、イベントレコグナイザー７８０は、認識されるイベントに関連付けられているフラグを投入し、そして、フラグに関連付けられているイベントハンドラー７９０はそのフラグを取得して、所定のプロセスを実行する。
【０１３４】
いくつかの実施形態では、イベント配信命令７８８は、サブイベント配信命令を含み、これは、イベントハンドラーをアクティベートすることなく、サブイベントについてのイベント情報を配信する。代わりに、サブイベント配信命令は、イベント情報を、一連のサブイベントに関連付けられているイベントハンドラーへあるいはアクティブな関係するビューへ配信する。一連のサブイベントあるいはアクティブな関係するビューに関連付けられているイベントハンドラーは、イベント情報を受信して、所定のプロセスを実行する。
【０１３５】
いくつかの実施形態では、イベントハンドラー（群）７９０は、データアップデーター７７６、オブジェクトアップデーター７７７、及びＧＵＩアップデーター７７８を含んでいる。いくつかの実施形態では、データアップデーター７７６、オブジェクトアップデーター７７７、及びＧＵＩアップデーター７７８は、各アプリケーション１３２−１あるいはアプリケーションビュー７９１の１つのモジュールに含まれる。他の実施形態では、これらは、２つ以上のソフトウェアモジュールに含まれる。いくつかの実施形態では、データアップデーター７７６は、アプリケーション１３２−１で使用されるデータを作成し、更新する。いくつかの実施形態では、オブジェクトアップデーター７７７は、アプリケーション１３２−１で使用されるオブジェクトを作成し、更新する。ＧＵＩアップデーター７７８は、ＧＵＩを更新する。
【０１３６】
タッチ感知ディスプレイ上のユーザタッチのイベント処理に関する上述の議論は、また、入力デバイスを備える電子デバイス１０２を操作するための、他の形態のユーザ入力にも当てはまることが理解されるべきであり、ここで、すべてがタッチスクリーン上で開始されるとは限らず、例えば、１回のキー押下あるいは保持、あるいは複数回のキー押下あるいは保持を伴うあるいは伴わない、マウス移動及びマウスボタン押下の調整、タッチパッド上での、タップ、ドラッグ、スクロール等のユーザ移動、ペンスタイラス入力、デバイスの移動、音声命令、検出される目の動き、生体測定入力、及びそれらの任意の組み合わせがあり、これらは、認識されるイベントを定義するイベント及びサブイベントの少なくとも一方に対応する入力として利用することができる。
【０１３７】
いくつかの実施形態では、図８は、上述の実施形態に従って構成される電子デバイス８００の機能ブロック図を示している。このデバイスの機能ブロックは、ハードウェア、ソフトウェア、あるいはハードウェアと上述の動作を実行するためのソフトウェアの組み合わせによって実現することができる。図８に示される機能ブロック群は、上述の発明の原理を実現するために組み合されたりあるいはサブブロックに分割したりすることができることが当業者には理解される。それゆえ、本明細書の説明は、上述の機能ブロック群の任意の取り得る組み合わせあるいは分割、あるいは更なる定義をサポートすることができる。
【０１３８】
図８に示されるように、電子デバイス８００は、アプリケーションのユーザインタフェースを表示し、そして、指の接触を受け付けるように構成されているタッチ感知ディスプレイユニット８０２を含んでいる。表示されるユーザインタフェースは、複数の階層レベルで構成されている複数の領域を含み、この複数の領域は、各階層レベルでの各領域を含んでいる。各領域は、各階層レベルの下位の階層レベルで２つ以上の子領域を有している。電子デバイス８００は、更に、タッチ感知ディスプレイユニット８０２に接続されている処理ユニット８０４を含んでいる。いくつかの実施形態では、処理ユニット８０４は、検出ユニット８０６、判定ユニット８０８、識別ユニット８１０、接触処理ユニット８１２、確認ユニット８１４及び生成ユニット８１６を含んでいる。
【０１３９】
処理ユニット８０４は、第１の位置でのタッチ感知ディスプレイユニット８０２上の第１の接触を検出するように構成されていて（例えば、検出ユニット８０６を用いて）、この第１の位置は、各領域には対応しているが、各領域の２つ以上の子領域の内の任意の子領域には対応していない。処理ユニット８０４は、第１の接触の検出に応じて、アプリケーションが、各領域とともに第１の接触を処理するように構成されているかどうかを（例えば、判定ユニット８０８を用いて）判定するように構成されている。処理ユニット８０４は、アプリケーションが、各領域とともに第１の接触を処理するように構成されていない場合、アプリケーションが、各領域の２つ以上の子領域の内の少なくとも１つの子領域とともに第１の接触を処理するように更に構成されているかどうかを判定するように構成されている（例えば、判定ユニット８０８を用いて）。処理ユニット８０４は、アプリケーションが、各領域の２つ以上の子領域の内の少なくとも１つの子領域とともに第１の接触を処理するように構成されている場合、第１の位置に関連する子領域の位置に従って、各領域の２つ以上の子領域の各子領域を識別し（例えば、識別ユニット８１０を用いて）、そして、アプリケーションを使用して、識別される各子領域とともに第１の接触を処理するように更に構成されている（例えば、接触処理ユニット８１２を用いて）。
【０１４０】
いくつかの実施形態では、処理ユニット８０４は、アプリケーションが、各領域とともに第１の接触を処理するように構成されている場合、アプリケーションを使用して各領域とともに第１の接触を処理するように構成されている（例えば、接触処理ユニット８１２を用いて）。
【０１４１】
いくつかの実施形態では、２つ以上の子領域の各子領域は各ヒット領域を有し、その内の少なくとも１つは、対応する子領域とは異なる。また、処理ユニットは、第１の位置が、子領域の各ヒット領域の内の任意のヒット領域に対応しないことを判定するように構成されている。
【０１４２】
いくつかの実施形態では、第１の位置は、各領域の２つ以上の子領域の内の任意の子領域の外に配置されている。
【０１４３】
いくつかの実施形態では、各領域は、各階層レベルより上位の階層レベルで親領域を有している。
【０１４４】
いくつかの実施形態では、処理ユニット８０４は、アプリケーションが、各領域の２つ以上の子領域の内の少なくとも１つの子領域とともに第１の接触を処理するように構成されておらず、また、アプリケーションが、親領域とともに第１の接触を処理するように構成されている場合、アプリケーションを使用して親領域とともに第１の接触を処理するように更に構成されている（例えば、接触処理ユニット８１２を用いて）。
【０１４５】
いくつかの実施形態では、処理ユニット８０４は、アプリケーションが、各領域の２つ以上の子領域の内の少なくとも１つの子領域とともに第１の接触を処理するように構成されていない場合、親領域内の接触として第１の接触を処理するように更に構成されている（例えば、接触処理ユニット８１２を用いて）。
【０１４６】
いくつかの実施形態では、処理ユニット８０４は、各領域の２つ以上の子領域の内、第１の位置に関する近接基準を最も満足する子領域を識別するように更に構成されている（例えば、識別ユニット８１０を用いて）。
【０１４７】
いくつかの実施形態では、処理ユニット８０４は、各領域の２つ以上の子領域の内、第１の位置に関する近接基準を最も満足する子領域を識別し（例えば、識別ユニット８１０を用いて）、また、識別される子領域が、第１の位置に関する最大距離制限を満足することを確認するように更に構成されている（例えば、確認ユニット８１４を用いて）。
【０１４８】
いくつかの実施形態では、２つ以上の子領域の内の１つ以上の子領域は、所定の近接プロパティを有し、また、少なくとも１つの他の子領域は、所定の近接プロパティを有していない。これらの実施形態では、処理ユニット８０４は、第１の位置に関連する子領域の位置に従って、所定の近接プロパティを有する各領域の１つ以上の子領域の各子領域を識別するように構成されている（例えば、識別ユニット８１０を用いて）。
【０１４９】
いくつかの実施形態では、各領域が、所定のプロパティのセットの内の少なくとも１つのプロパティを有するユーザインタフェースオブジェクトを含んでいる場合に、アプリケーションは、各領域とともに第１の接触を処理するように構成されていると見なされる。
【０１５０】
いくつかの実施形態では、各領域が、第１の接触を含むジェスチャーに応じてアクティベートされるように構成されているユーザインタフェースオブジェクトを備える場合、アプリケーションは、各領域とともに第１の接触を処理するように構成されていると見なされる。
【０１５１】
いくつかの実施形態では、少なくとも１つのイベントレコグナイザーが各領域に関連付けられている場合、アプリケーションは、各領域とともに第１の接触を処理するように構成されていると見なされる。
【０１５２】
いくつかの実施形態では、第１の接触を含むジェスチャーを認識するように構成されているイベントレコグナイザーが、各領域に関連付けられている場合、アプリケーションは、各領域とともに第１の接触を処理するように構成されていると見なされる。
【０１５３】
いくつかの実施形態では、複数の領域は、それらの領域に対応する複数の階層構造のビューを備えている。複数のビューのそれぞれは、各ビューに関連付けられている少なくとも１つのイベントレコグナイザーを有している。処理ユニット８０４は、識別される各子領域に対応するビューの少なくとも１つのイベントレコグナイザーによって処理されるべきイベントを生成するように構成されている（例えば、生成ユニット８１６を用いて）。
【０１５４】
いくつかの実施形態では、複数の領域は、それらの領域に対応する複数の階層構造のビューを備えている。処理ユニット８０４は、識別される各子領域における接触を第１の接触として処理するように構成されている（例えば、接触処理ユニット８１２を用いて）。
【０１５５】
いくつかの実施形態では、図９は、上述の実施形態に従って構成される電子デバイス９００の機能ブロック図を示している。デバイスの機能ブロックは、ハードウェア、ソフトウェア、あるいはハードウェアと上述の動作を実行するためのソフトウェアの組み合わせによって実現することができる。図９に示される機能ブロック群は、上述の発明の原理を実現するために組み合されたりあるいはサブブロックに分割したりすることができることが当業者には理解される。それゆえ、本明細書の説明は、上述の機能ブロック群の任意の取り得る組み合わせあるいは分割、あるいは更なる定義をサポートすることができる。
【０１５６】
図９に示されるように、電子デバイス９００は、指の接触を受け付けて、そして、複数のアクティベート可能なユーザインタフェースオブジェクトを含むウェブページを表示するように構成されているタッチ感知ディスプレイ９０２と、タッチ感知ディスプレイユニットに接続されている処理ユニット９０４とを含んでいる。いくつかの実施形態では、処理ユニット９０４は、検出ユニット９０６、判定ユニット９０８、識別ユニット９１０、実行ユニット９１２、及びアクティベートユニット９１４を含んでいる。
【０１５７】
処理ユニット９０４は、タッチ感知ディスプレイユニット９０２において、表示されているウェブページに対応する第１の位置での第１の接触を検出し（例えば、検出ユニット９０６を用いて）、また、第１の位置での第１の接触の検出に応じて、第１の位置が、アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応するかどうかを判定するように構成されている（例えば、判定ユニット９０８を用いて）。処理ユニット９０４は、第１の位置が、アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのユーザインタフェースオブジェクトに対応しない場合、もしあるのであれば、第１の位置に関する所定のルールを最も満足するユーザインタフェースオブジェクトを識別し（例えば、識別ユニット９１０を用いて）、そして、識別されるユーザインタフェースオブジェクトに対応する動作を実行するように構成されている（例えば、実行ユニット９１２を用いて）。
【０１５８】
いくつかの実施形態では、処理ユニット９０４は、第１の位置が、アクティベート可能なユーザインタフェースオブジェクトの１つのユーザインタフェースオブジェクトに対応する場合、第１の位置に対応するアクティベート可能なユーザインタフェースオブジェクトに対応する動作を実行するように構成されている（例えば、処理ユニット９１２を用いて）。
【０１５９】
いくつかの実施形態では、所定のルールは、第１の位置に関する近接基準を含んでいる。
【０１６０】
いくつかの実施形態では、処理ユニット９０４は、第１の位置から、アクティベート可能なユーザインタフェースオブジェクトの少なくとも１つのサブセットへの各距離を判定するように構成されている（例えば、判定ユニット９０８を用いて）。
【０１６１】
いくつかの実施形態では、各距離のそれぞれは、第１の位置から、各アクティベート可能なユーザインタフェースオブジェクトの複数の地点への距離の加重平均を備えている。
【０１６２】
いくつかの実施形態では、処理ユニット９０４は、識別されるユーザインタフェースオブジェクトをアクティベートするように構成されている（例えば、アクティベートユニット９１４を用いて）。
【０１６３】
例示の目的のためである上述の説明は、特定の実施形態を参照して記載されている。しかしながら、上述の例示の議論は、包括的なものとする、あるいは、本発明を、開示される詳細な形態に限定することを意図するものではない。多くの修正及び変形が、上述の教示の観点で可能である。本発明の原理及びその実際の用途を最も説明するために、実施形態が選択されそして記載され、それによって、当業者に、本発明、及び、予期される特定の用途に適するようになされた様々な変形を伴う様々な実施形態を最善に利用することを可能する。
【図１】
0005621042.tif 000002
【図２】
0005621042.tif 000003
【図３】
0005621042.tif 000004
【図４Ａ】
0005621042.tif 000005
【図４Ｂ】
0005621042.tif 000006
【図４Ｃ】
0005621042.tif 000007
【図５Ａ】
0005621042.tif 000008
【図５Ｂ】
0005621042.tif 000009
【図５Ｃ】
0005621042.tif 000010
【図５Ｄ】
0005621042.tif 000011
【図６】
0005621042.tif 000012
【図７】
0005621042.tif 000013
【図８】
0005621042.tif 000014
【図９】
0005621042.tif 000015