(57)【要約】様々な実施形態は、階層型ツリー内の指定された要素のうちの１つの要素に関連付けられた入力を受信することに応答して、カスケードオペレーションのサブセットを、それらの指定された要素に選択的に適用することによって、効率的なカスケードオペレーションが実行されることを可能にする。カスケードオペレーションのサブセットを実行した後、様々なパラメータに従ってカスケードオペレーションの完全なセットを実行することができる。それらのパラメータは、限定ではなく例として、ほんの数例を挙げると、ユーザ対話のタイミング、所与の要素についてのカスケードオペレーションの複雑性、及び／又はカスケードオペレーションを適用することができる要素の数を含むことができる。
2015531086.tif 000002
【特許請求の範囲】
【請求項１】
カスケードオペレーションが定義された要素に関連付けられた入力を検出するステップと、
前記カスケードオペレーションを前記要素に適用するステップと、
前記カスケードオペレーションが定義された、関連ツリー内の全ての上位要素よりも少ない上位要素に、１つ又は複数のカスケードオペレーションを適用するステップと
を含む、方法。
【請求項２】
前記検出するステップは、タッチ入力を検出することを含む、請求項１に記載の方法。
【請求項３】
前記検出するステップは、非接触入力を検出することを含む、請求項１に記載の方法。
【請求項４】
前記カスケードオペレーションは、少なくとも１つのＣＳＳ疑似クラスにより定義されるカスケードオペレーションを備える、請求項１に記載の方法。
【請求項５】
前記１つ又は複数のカスケードオペレーションを適用するステップは、時間パラメータを使用して、前記１つ又は複数のカスケードオペレーションを適用すべき時を確認することによって実行される、請求項１に記載の方法。
【請求項６】
前記１つ又は複数のカスケードオペレーションを適用するステップは、少なくとも時間パラメータ以外のパラメータを使用して、前記１つ又は複数のカスケードオペレーションを適用すべき上位要素を確認することによって実行される、請求項１に記載の方法。
【請求項７】
前記１つ又は複数のカスケードオペレーションを適用した後に、１つ又は複数の追加のカスケードオペレーションを追加の上位要素に適用するステップを更に含む、請求項１に記載の方法。
【請求項８】
実行されると、
カスケードオペレーションが定義された要素に関連付けられた入力を検出するステップと、
前記検出に応答してタイマを開始するステップと、
前記カスケードオペレーションを前記要素に適用するステップと、
前記タイマの期限が切れており、かつ前記入力がまだ検出されていることに応答して、少なくとも１つのカスケードオペレーションを、前記入力が検出された前記要素の１つ又は複数のそれぞれの上位要素に適用するステップと
を含む方法を実行する、コンピュータ読取可能命令を具現化した１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項９】
前記検出するステップは、タッチ入力を検出することを含む、請求項８に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項１０】
前記カスケードオペレーションは、少なくとも１つのＣＳＳ疑似クラスにより定義されるカスケードオペレーションを備える、請求項８に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、効率的なカスケードオペレーションを可能にすることに関する。
【背景技術】
【０００２】
ウェブ上で使用することができるコンテンツを設計する人が直面する１つの課題は、対応するような速さで動作するようには必ずしも設計されていない可能性のあるデバイスを含め、様々なタイプのデバイスにおいて、感知できるほど早く、そのようなコンテンツを実行することができるようにすることである。例えばウェブコンテンツは、典型的に、下位要素（descendent  element）と上位要素（ancestor  element）と有する要素を含む、階層型のドキュメントオブジェクトモデル（ＤＯＭ）ツリーで表される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
多くの場合、特定の要素に関して入力を受け取ると、その入力をベースとして使用して、関連する挙動又はファイヤイベントを「トンネル」又はカスケードし、他の上位要素へと階層型のツリーを上る。大きなツリーの場合、どの要素に特定の挙動を適用すべきかを決定することは、コストのかかるオペレーションであり得る。したがって、確実にユーザの経験を効率的で、より良く認識されるようにすることは引き続き課題である。
【課題を解決するための手段】
【０００４】
この「発明の概要」の記載は、以下の「発明を実施するための形態」において更に説明される概念の選択を、簡単な形で紹介するために提供される。この「発明の概要」の記載は、特許請求に係る主題の重要な特徴又は本質的特徴を特定するようには意図されていない。
【０００５】
様々な実施形態は、階層型ツリー内の指定された要素のうちの１つの要素に関連付けられた入力を受信することに応答して、カスケードオペレーションのサブセットを、それらの指定された要素に選択的に適用することによって、効率的なカスケードオペレーションが実行されることを可能にする。カスケードオペレーションのサブセットを実行した後、様々なパラメータに従ってカスケードオペレーションの完全なセットを実行することができる。
【０００６】
１つ又は複数の実施形態において、受信した入力についてのカスケードオペレーションのサブセットは、限定ではなく例として、ほんの数例を挙げると、ユーザ対話のタイミング、所与の要素についてのカスケードオペレーションの複雑性、及び／又はカスケードオペレーションを適用することができる要素の数を含むパラメータに基づいて、決定され得る。
【０００７】
以下の発明の詳細な説明は、添付の図面を参照しながら説明される。図面において、参照番号の左端の桁は、その参照番号が最初に現れる図面を特定する。説明及び図面の異なる例における同じ参照番号の使用は、同様又は同一のアイテムを示す可能性がある。
【図面の簡単な説明】
【０００８】
【図１】１つ又は複数の実施形態に係る例示的実装の環境の例を示す図である。
【図２】図１に示される例示的実装におけるシステムの例をより詳細に示す図である。
【図３】カスケードオペレーションを適用することができる例示的な実施形態を示す図である。
【図４】カスケードオペレーションを適用することができる例示的な実施形態を示す図である。
【図５】カスケードオペレーションを適用することができる例示的な実施形態を示す図である。
【図６】カスケードオペレーションを適用することができる例示的な実施形態を示す図である。
【図７】１つ又は複数の実施形態に係る方法のステップを示すフロー図である。
【図８】１つ又は複数の実施形態に係る方法のステップを示すフロー図である。
【図９】１つ又は複数の実施形態に係る実装例を示す図である。
【図１０】本明細書で説明される様々な実施形態を実装するのに使用することができる例示的なコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【０００９】
＜概要＞
様々な実施形態は、階層型ツリー内の指定された要素のうちの１つの要素に関連付けられた入力を受信することに応答して、カスケードオペレーションのサブセットを、それらの指定された要素に選択的に適用することによって、効率的なカスケードオペレーションが実行されることを可能にする。カスケードオペレーションのサブセットを実行した後、様々なパラメータに従ってカスケードオペレーションの完全なセットを実行することができる。
【００１０】
１つ又は複数の実施形態において、受信した入力についてのカスケードオペレーションのサブセットは、限定ではなく例として、ほんの数例を挙げると、ユーザ対話のタイミング、所与の要素についてのカスケードオペレーションの複雑性、及び／又はカスケードオペレーションを適用することができる要素の数を含むパラメータに基づいて、決定され得る。
【００１１】
以下の議論では、まず、本明細書で説明される技術を用いるのに動作可能な例示的環境について説明する。次に、様々な実施形態の例示的な実施例について説明する。これらの実施形態は、例示的な環境だけでなく他の環境においても用いられる可能性がある。したがって、例示的環境は、説明される実施形態を実行するものに限定されず、説明される実施形態は、例示的環境における実装に限定されない。
【００１２】
＜例示的な動作環境＞
図１は、本明細書で説明される技術を用いるのに動作可能な例示的実装の環境１００の図である。図示される環境１００は、様々な方法で構成され得るコンピューティングデバイス１０２の例を含む。例えばコンピューティングデバイス１０２は、図２に関連して更に説明されるような、従来のコンピュータ（例えばデスクトップ型のパーソナルコンピュータ、ラップトップコンピュータ等）、モバイルステーション、娯楽用機器、テレビに通信的に接続されるセットトップボックス、ワイヤレスフォン、ネットブック、ゲームコンソール、ハンドヘルドデバイス等として構成され得る。したがって、コンピューティングデバイス１０２は、相当なメモリ及びプロセッサリソースを有する完全リソースデバイス（例えばパーソナルコンピュータ、ゲームコンソール）から、限られたメモリ及び／又は処理リソースを有する低リソースデバイス（例えば従来のセットトップボックス、ハンドヘルドゲームコンソール）にまで及ぶことがある。コンピューティングデバイス１０２は、該コンピューティングデバイス１０２に、下述するような１つ又は複数のオペレーションを実行させるソフトウェアも含む。
【００１３】
コンピューティングデバイス１０２は、カスケードオペレーションモジュール１０４を含む。カスケードオペレーションモジュール１０４は、以下で更に詳述されるように、ユーザの経験を向上するように設計される効果的な手法で、効率的なカスケードオペレーションを実行することができるように構成される。少なくとも一部の実施形態において、カスケードオペレーションモジュール１０４は、１つ又は複数のタイマの使用により、１つ又は複数の受信したジェスチャ入力に関連付けられた時間を測定し、これに応答して、カスケードオペレーションを実行することができる。例えば少なくとも一部の実施形態において、カスケードオペレーションモジュールは、階層型ツリー内の指定された要素のうちのいずれか１つに関連付けられたジェスチャ入力のような入力を受信したことに応答して、カスケードオペレーションのサブセットをそれらの指定された要素に選択的に適用することによって、効率的なカスケードオペレーションを実行できるようにすることが可能である。次いで、カスケードオペレーションのサブセットを実行した後に、様々なパラメータに従って、カスケードオペレーションの完全なセットを実行することができる。カスケードオペレーションのサブセットは、受信した入力について、限定ではなく例としてほんの数例を挙げると、ユーザ対話のタイミング、所与の要素に対するカスケードオペレーションの複雑性、及び／又はカスケードオペレーションを適用することができる要素の数を含むパラメータに基づいて決定され得る。
【００１４】
コンピューティングデバイス１０２は、ジェスチャモジュール１０５も含む。ジェスチャモジュール１０５は、１又は複数の指によって実行され得る入力ポインタジェスチャを認識し、該ジェスチャに対応するオペレーション又はアクションを実行させる。モジュール１０５によって様々な異なる方法でジェスチャが認識され得る。例えばジェスチャモジュール１０５は、タッチスクリーン機能を使用して、又は例えばニアフィールド技術を用いてディスプレイデバイス１０８に必ずしも物理的に接触しないユーザの指の近接を感知する機能を使用して、コンピューティングデバイス１０２のディスプレイデバイス１０８へ近接するユーザの手１０６ａの指のようなタッチ入力を認識するように構成され得る。モジュール１０５を使用して、単一の指のジェスチャとベゼルジェスチャ、複数の指／同じ手のジェスチャとベゼルジェスチャ、及び／又は複数の指／異なる手のジェスチャとベゼルジェスチャを認識することができる。カスケードオペレーションモジュール１０４とジェスチャモジュール１０５は、別個のモジュールとして示されているが、双方によって提供される機能性を、単一の一体型ジェスチャモジュールとして実装することができる。モジュール１０４及び／又は１０５によって実装される機能性を、限定ではなく例としてウェブブラウザのような任意の適切に構成されたアプリケーションによって実装することができる。特許請求に係る主題の精神及び範囲から逸脱することなく、他のアプリケーションが使用される可能性もある。
【００１５】
コンピューティングデバイス１０２は、（例えばユーザの手１０６ａの１又は複数の指によって提供される）タッチ入力と、（例えばスタイラス１１６によって提供される）スタイラス入力とを検出して区別するようにも構成され得る。この区別は、ユーザの手１０６ａの指によって接触されるディスプレイデバイス１０８の量に対する、スタイラス１１６によって接触されるディスプレイデバイス１０８の量を検出すること等のような、様々な方法で実行することが可能である。
【００１６】
したがって、ジェスチャモジュール１０５は、スタイラスとタッチ入力と、並びに異なるタイプのタッチ入力と非接触入力との間の区分の認識及び利用を通して、様々な異なるジェスチャ技術をサポートし得る。
【００１７】
図２は、複数のデバイスが中央コンピューティングデバイスを通じて相互接続される環境において実装されるような、カスケードオペレーションモジュール１０４及びジェスチャモジュール１０５を示す例示システム２００を図示している。中央コンピューティングデバイスは、それらの複数のデバイスに対してローカルであってもよく、それらの複数のデバイスからリモートに配置されてもよい。一実施形態において、中央コンピューティングデバイスは、ネットワーク又はインターネット又は他の手段を通じて複数のデバイスに接続される１つ又は複数のサーバコンピュータを備える、「クラウド」サーバファームである。
【００１８】
一実施形態において、この相互接続アーキテクチャは、機能性が複数のデバイスにわたって伝達され、該複数のデバイスのユーザに共通のシームレスな経験が提供されることを可能にする。複数のデバイスはそれぞれ、異なる物理的要件及び能力を有することがあり、中央コンピューティングデバイスは、そのデバイスに対して調整されるが、依然として全てのデバイスに共通の経験をデバイスに伝達することを可能にするプラットフォームを使用する。一実施形態において、ターゲットデバイスの「クラス」を作成して、経験をデバイスの汎用クラスに対して調整する。あるデバイスのクラスを、複数のデバイスの物理的な特徴又は用法又は他の共通の特性によって定義してもよい。例えば上述のように、コンピューティングデバイス１０２は、モバイル２０２での使用、コンピュータ２０４での使用及びテレビジョン２０６での使用のような、様々な異なる方法で構成され得る。これらの構成の各々は一般に、対応する画面サイズを有し、したがって、コンピューティングデバイス１０２は、この例示システム２００においてこれらのデバイスクラスのうちのいずれか１つとして構成され得る。例えばコンピューティングデバイス１０２は、モバイル電話、音楽プレイヤ、ゲームデバイス等を含むデバイスのモバイル２０２のクラスを想定してもよい。コンピューティングデバイス１０２はまた、パーソナルコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ２０４のクラスを想定してもよい。テレビジョン２０６の構成は、略式の環境において表示を伴うデバイスの構成、例えばテレビジョン、セットトップボックス、ゲームコンソール等を含む。したがって、本明細書で説明される技術は、コンピューティングデバイス１０２のこれらの様々な構成によってサポートされ、以下のセクションにおいて説明される具体的な例には限定されない。
【００１９】
クラウド２０８は、ウェブサービス２１２のためのプラットフォーム２１０を含むように図示されている。プラットフォーム２１０は、クラウド２０８のハードウェア（例えばサーバ）及びソフトウェアリソースの基礎となる機能を抽象化し、したがって「クラウドオペレーティングシステム」として機能し得る。例えばプラットフォーム２１０はリソースを抽象化して、コンピューティングデバイス１０２を他のコンピューティングデバイスに接続してもよい。プラットフォーム２１０は、リソースのスケーリングを抽象化して、プラットフォーム２１０を介して実装されるウェブサービス２１２について直面する需要に対して、対応するレベルのスケールを提供するようにも機能し得る。サーバファームにおけるサーバの負荷分散や、悪意あるパーティ（例えばスパム、ウィルス及び他のマルウェア）に対する保護等の様々な他の例も考慮される。
【００２０】
したがって、クラウド２０８は、インターネット又は他のネットワークを介してコンピューティングデバイス１０２に対して利用可能となるソフトウェア及びハードウェアリソースに関するストラテジの一部として含まれる。
【００２１】
カスケードオペレーションモジュール１０４及びジェスチャモジュール１０５によってサポートされるジェスチャ技術は、モバイル２０２構成におけるタッチスクリーン機能、コンピュータ２０４構成におけるトラックパッド機能を使用することによって検出されることがあり、また、カメラによって、特定の入力デバイスとの接触を要しないナチュラルユーザインタフェース（ＮＵＩ）のサポートの一部として検出されること等がある。さらに、特定のジェスチャを識別する入力を検出及び認識するオペレーションの性能は、コンピューティングデバイス１０２によって、及び／又はクラウド２０８のプラットフォーム２１０によりサポートされるウェブサービス２１２によって等、システム２００を通じて分散されることがある。
【００２２】
一般に、本明細書で説明される機能のいずれかを、ソフトウェア、ファームウェア、ハードウェア（例えば固定の論理回路）、手動の処理又はこれらの実装の組み合わせにより実装することができる。本明細書で使用されるとき、「モジュール」、「機能」及び「ロジック」という用語は、概してソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせを表す。ソフトウェアの実装の場合、モジュール、機能又はロジックは、プロセッサ（例えば１つ又は複数のＣＰＵ）において又はプロセッサによって実行されると、指定されたタスクを実行するプログラムコードを表す。プログラムコードは、１つ又は複数のコンピュータ読取可能なメモリデバイスに格納され得る。下述されるジェスチャ技術の特徴は、プラットフォーム独立であり、これは、本技術が、様々なプロセッサを有する様々な市販のコンピューティングプラットフォームにおいて実装され得ることを意味する。
【００２３】
以下の議論では、様々なセクションにおいて様々な例示的実施形態を説明する。「例示的なカスケードオペレーション」というタイトルのセクションでは、１つ又は複数の実施形態に従ってカスケードオペレーションを実行することができる実施形態を説明する。この次の「単一のタイマの使用例」というタイトルのセクションでは、１つ又は複数の実施形態に従って単一のタイマを使用することができる例を説明する。次に、「複数のタイマの使用例」というタイトルのセクションでは、１つ又は複数の実施形態に従って複数のタイマを使用することができる例を説明する。これに続く「他のパラメータ」というタイトルのセクションでは、１つ又は複数の実施形態に従ってカスケードオペレーションを実行するために、タイミングパラメータに加えて又はこれとは別個に、他のパラメータを使用することができる実施形態を説明する。次に、「例示的な方法」というタイトルのセクションでは、１つ又は複数の実施形態に係る例示的な方法を説明する。最後に、「例示的なデバイス」というタイトルのセクションは、１つ又は複数の実施形態を実装するのに用いることができる例示的なデバイスの態様を説明する。
【００２４】
効率的なカスケードオペレーション機能を利用することができる例示的な動作環境について説明してきたが、次に例示的な実施形態の議論を検討する。
【００２５】
＜例示的なカスケードオペレーション＞
上述のように、様々な実施形態では、階層型ツリー内の指定された要素のうちの１つの要素に関連付けられた入力を受信することに応答して、カスケードオペレーションのサブセットを、それらの指定された要素に選択的に適用することによって、効率的なカスケードオペレーションが実行されることを可能にする。カスケードオペレーションのサブセットを実行した後、様々なパラメータに従ってカスケードオペレーションの完全なセットを実行することができる。１つ又は複数の実施形態において、カスケードオペレーションのサブセットは、受信した入力について、限定ではなく例として、ほんの数例を挙げると、ユーザ対話のタイミング、所与の要素についてのカスケードオペレーションの複雑性、及び／又はカスケードオペレーションを適用することができる要素の数を含むパラメータに基づいて決定され得る。
【００２６】
下述される実施形態を、カスケード効果を有する任意のタイプのオペレーションに適用することができる。あるタイプのカスケードオペレーションは、ユーザにより認識可能な可視表現（visualization）をもたらすオペレーションに関する。これらの可視表現を任意の適切な方法で定義することができる。そのような可視表現を定義することができる１つの方法は、疑似クラスを用いるカスケードスタイルシート（ＣＳＳ）の使用によるものである。２つの例示的な疑似クラスは、：ｈｏｖｅｒ疑似クラスと：ａｃｔｉｖｅ疑似クラスである。しかしながら、そのようなＣＳＳ疑似クラスは、説明される実施形態の対象となり得る可視表現の一例を構成すること、より具体的には、ドキュメントオブジェクトモデル（ＤＯＭ）ツリーのような階層型ツリー内に現れる要素に適用することができるカスケードオペレーションを構成することを認識され、理解されたい。したがって、可視表現を提示するこれらを含め、特許請求に係る主題の精神及び範囲を逸脱することなく、他のカスケードオペレーションを使用することができる。
【００２７】
上述のＣＳＳ疑似クラスに関して、以下で検討する。
【００２８】
セレクタにおけるＣＳＳの：ｈｏｖｅｒ疑似クラスと：ａｃｔｉｖｅ疑似クラスは、セレクタによって選択された、ホバリングされている（ポイントがある）か、アクティブ化されている（例えばクリックされたか、他の方法で指定されている）要素のうちのうちのいずれかにフォーマットが適用されるのを許可するか、又はホバリングされているかアクティブ化されている下位要素を有するのを許可する。この挙動は典型的に、ポインティング手段（pointing  implement）が、（ディスプレイ画面に接触するか又は近くに近接して置かれている）ユーザの指、スタイラス、マウス又はナチュラルユーザインタフェースを通じて受信される入力のいずれであっても、ホバリング／アクティブ状態を、ポインティング手段によって指定されている要素から上位ツリーを上へと「トンネリング」することによって実装される。したがって、指定された要素の上位ツリー内のいずれの要素も、同じホバリング／アクティブ状態において指定された要素であると見なされる。
【００２９】
大きなドキュメントツリー及び複雑なＣＳＳセレクタについて、どの要素がホバリング状態にあるかを決定すること及び適切なフォーマットを適用することは、上記のようにコストのかかるオペレーションである可能性がある。例えばタッチを伴うユーザ対話は、極めて簡潔である。例えば要素に対するタップは、ユーザが画面を触る時からユーザが離す時まで数十ミリ秒程度の短さであり得る。多くの場合において：ｈｏｖｅｒセレクタ及び：ａｃｔｉｖｅセレクタのためにフォーマットを適用するのにかかる時間は、実際にはユーザ対話の期間を超える可能性がある。これにより、ユーザは、その対話後の遅滞の後、ホバリング／アクティブスタイルの「点滅（ｂｌｉｎｋ）」を見ることになる。
【００３０】
１つ又は複数の実施形態において、一般にユーザの対話に応答して直ぐに認識される視覚的フィードバックを提供するため、ホバリング状態において要素のサブセットがレンダリングされるように、トンネリングオペレーションの一部を部分的に実行することができる。しばらくして、又は他のパラメータとの関連で、ユーザが依然として、ポインティングデバイスにより要素を指定していることがシステムによって感知されると、ホバリング／アクティブ状態を完全にトンネリングして、上位要素の全てに適用することができる。
【００３１】
速い対話について、ユーザは、指定された要素に対する迅速な視覚的フィートバックを見ることとなり、これによりそのタッチ対話が成功であったことを確認する。所定の期間の後続く長期の対話について、予測されるようにフォーマットの完全な適用を見ることとなる。
【００３２】
カスケードオペレーションのいくつかの例を検討したので、効率的なカスケードオペレーションを可能にするための単一のタイマの使用を用いる例を検討する。
【００３３】
＜単一のタイマの使用例＞
図３は、１つ又は複数の実施形態に従って、単一のタイマを使用して、カスケードオペレーションをどのようにＤＯＭツリー内の要素のツリーに適用することができるかを示す図表示である。最初に、全体的に３００で示される同心円の集合を検討する。この例において、各円は、ＤＯＭツリー内の特定の要素を表す。それぞれの大きな円は、１つ又は複数の円を包含しており、包含されている円の上位であると見なすことができる。このため、この例において例示のウェブページは全体的に３０２で示されている。ウェブページ３０２は、３０４、３０６、３０８及び３１０として複数のアクティブ化可能な要素を含む。アクティブ化可能な要素は、ウェブページのトップに現れる可能性のあるアイテムを表す。それに応じて、最も内側の円は要素３０４を表す。
【００３４】
また、同心円の集合によって表される要素について検討すると、カスケードオペレーションは、要素３０４について定義されている。このカスケードオペレーションは、ＤＯＭツリー内に現れる要素３０４の他の上位要素へと上にトンネリングされ得る。この特定の例では、カスケードオペレーションがＣＳＳの：ｈｏｖｅｒ疑似クラスの使用により定義されると想定する。
【００３５】
この時点では、ウェブページ３０２内に現れる要素のいずれに対しても入力はまだ受信されていない。
【００３６】
次に図４では、ユーザが、この例では示されているように要素３０４にタッチダウンすることによって要素３０４上をホバリングしていると想定する。しかしながら、任意の適切なジェスチャ入力を使用してホバリング機能を起動することができる。要素３０４を指定する入力が受信されると、単一のタイマを開始して、要素３０４について定義されているホバリングスタイルを、迅速に適用することができる。この特定の例では、ホバリングスタイルは、示されているように要素３０４の色の変更をもたらす。ある期間の後、例えば予め定義された時間又は動的に選択可能な時間が経過した後、要素３０４が依然としてジェスチャ入力によって指定されており、要素３０４の他の上位要素は、同様に該上位要素に適用される定義済みのスタイルを有する可能性がある。例として図５を検討する。
【００３７】
図５において、要素３０４は、その色が変更されたままであり、加えてＤＯＭツリー内の要素３０４の上位要素の１つ又は複数が、これらの要素に適用される、：ｈｏｖｅｒ疑似クラスによって定義されるスタイルを有する。この特定の例において、要素３０４の１つの上位要素は、ここで現れる選択可能なアイテムのメニューである。定義された１つ又は複数のスタイルの適用を、ＤＯＭツリー内の指定された要素の親ツリーに現れる上位要素の全てに適用することができる。
【００３８】
図示及び説明される実施形態において、任意の適切な時間、例えば予め定義された時間を用いることができる。少なくとも一部の実施形態では、効率的なカスケードオペレーションを可能にするために、３００ミリ秒（ｍｓ）という予め定義された時間を適用することができる。少なくとも一部の実施形態では、ほぼ全てのタップが３００ｍｓという期間よりも短いという調査結果が示されていることを理由として、３００ｍｓが使用される可能性がある。
【００３９】
他方において、その時間又は予め定義された時間内に、例えばユーザが要素３０４から指を取り除くこと等によって、要素３０４を指定している入力が取り除かれる場合、スタイルは、その上位要素の集合に適用されない。この手法では、ユーザを、スタイルが定義された可視表現に徐々に没頭させることによって、必ずしもスタイルを、指定された要素のＤＯＭツリー内に現れる要素の全てに対して迅速に適用する必要なく効率性が得られる。このようにして、適切に構成されたウェブブラウザ（又は他のアプリケーション）は、要素のＤＯＭツリー内に他のフォーマットをレンダリングすべきかどうかを決定するのに所定の期間待つ間、ローカル化されたフォーマットをレンダリングすることによって、基本的なレベルの瞬間的な視覚的フィードバックを提供することができる。加えて、タッチ保持ジェスチャのような、より長いユーザ対話により、アプリケーションのホバリング／アクティブフォーマットの完全な効果が得られるので、ＨＴＭＬ／ＣＳＳプログラミングモデルとの互換性が保たれる。
【００４０】
この特定の例では、要素３０４を指定する入力を受信したことに応答して、スタイルフォーマットが最初に要素３０４に適用され、一方、タイマの係属中に、その要素の上位要素について定義されたスタイルフォーマットが適用されなかった。少なくとも一部の実施形態において、要素の指定があると、その要素のＤＯＭツリーを上方へトラバースして、定義済みの要素の数に一致するか又はこれを超える要素のサブセットを識別することができる。スタイルフォーマットをＤＯＭツリーの他の上位要素に適用すべきかどうかを確認するために、タイマの期限の終了を待ちつつ、最初に又は後に、要素のこのサブセットについて定義されたスタイルフォーマットを一般的に迅速に適用することができる。
【００４１】
＜複数のタイマの使用例＞
１つ又は複数の実施形態において、指定された要素に関連付けられたＤＯＭツリー内に現れる上位要素について定義されているスタイルフォーマットを適用すべき時を決定するために、複数のタイマを使用することができる。例として、それぞれが６００で指定されている、一連の同心円の集合を示している図６を検討する。同心円の集合内の各円は、ＤＯＭツリー内の要素を表す。同心円のそれぞれ個々の集合は、指定された要素に関連付けられたＤＯＭツリー内に異なる時間に現れる、同じ複数の要素を表す。第１の要素を指定する入力が検出されると、該第１の要素について定義されたスタイルフォーマットを適用することができる。これは、最も中心の円に影が付けられている、１番上の同心円の集合によって示されている。第１の要素が指定されると、第１のタイマが開始される。第１のタイマが終了した後、ホバリング選択の対象とすること等により、第１の要素が指定されたままである場合、１つ又は複数の追加の上位要素が、これらの要素に同様に適用されるスタイルフォーマットを有する可能性がある。これは、２つの追加の円に影が付けられている、２番目の同心円の集合によって示されている。第２のタイマが終了した後、第１の要素が指定されたままの場合、１つ又は複数の追加の上位要素は、同様に適用されるスタイルフォーマットを有する可能性がある。これは、追加の円に影が付けられている、同心円の３番目の集合によって示されている。追加の１つ又は複数のタイマが終了すると、更なる上位要素が、該要素に適用されるスタイルフォーマットを有する可能性がある。これは、全ての円に影が付けられている、同心円の一番下の集合によって示されている。
【００４２】
＜他のパラメータ＞
上記のように、時間パラメータ以外に、又はこれに加えて他のパラメータを使用して、どのようにしてカスケードオペレーションを徐々に適用すべきかを確認することができる。例えばタイマーベースのアプローチでは、タイマは、ユーザ入力が受信される方法、及び／又はデバイスの動作特性などの事項に適合するように調整可能である。例えばタイマは、ユーザ入力が起こるスピードに相当するように調整されることがある。具体的には、一部のユーザは、タップ入力のような入力を他のユーザよりも早く提供することがある。これらの例において、より早い（又は遅い）入力に相当するように、１つ又は複数のタイマを下方に（又は上方に）調整することが可能である。あるいはまた、より遅い動作特性を有することが認識されるデバイスは、そのより遅い動作特性に相当するように拡張される、１つ又は複数の関連するタイマを有する可能性がある。
【００４３】
あるいはまた、様々なヒューリスティックを使用して、初期又は後続のスタイルフォーマットを適用すべき要素の数を選択することができる。例えば一部のヒューリスティックは、スタイルフォーマットの複雑なアプリケーションが、要素ごとに、又は複数の要素ごとにある方法を考慮することができる。具体的には、これらの例において、初期のスタイルフォーマットの適用について、設定された数の要素を、典型的にスタイルフォーマットの適用にかかる時間に関連付けられたデータに基づいて選択してもよい。例えば平均で１つの要素が１つのスタイルフォーマットを適用するのに１００ｍｓかかる場合、初期のタイマとして３００ｍｓという予め定義された時間を使用して、最初に、ＤＯＭツリー内に現れる第１の２つの要素を、スタイルフォーマットを適用するために選択してよい。このようにして、ユーザが視覚的フィードバックを認識するように、対話中の残り時間でフォーマットをレンダリングすることができる。１つのタイマのみが使用される場合、次いで、このタイマが終了した後に、上位のツリー内の残りの要素を、スタイルフォーマットの適用のために選択してよい。複数のタイマの実施形態では、初期のタイマが終了した後、上位ツリー内に現れる要素の次のサブセットを選択等することができる。
【００４４】
あるいはまた、スタイルフォーマットを提供すべき設定された数の要素を選択する代わりに、上位のツリーがトラバースされると、スタイルフォーマットを特定の要素に適用することに関連するコストを計算することができる。コストが特定の閾値を超えると、スタイルフォーマットの適用は終了し得る。コストを計算するために、限定ではなく例として、作業（work）の一般的単位、ＣＰＵサイクル等を含む任意の適切なパラメータを使用することができる。
【００４５】
カスケードオペレーションを実行することができる例示的な実施形態を検討したので、次に、１つ又は複数の実施形態に係るいくつかの例示的な方法を検討する。
【００４６】
＜例示的な方法＞
図７は、１つ又は複数の実施形態に係る方法のステップを示すフロー図である。本方法を、任意の適切なハードウェア、ソフトウェア、ファームウェア又はこれらに任意の組み合わせとの関連で実行することができる。少なくとも一部の実施形態において、本方法を、任意のタイプのコンピュータ読取可能記憶媒体において具現化される、コンピュータ読取可能命令の形式のソフトウェアによって実行することができ、この命令を、１つ又は複数のプロセッサの影響の下で実行することができる。説明される機能を実行することができるソフトウェアの例は、上述のカスケードオペレーションモジュール１０４及びジェスチャモジュール１０５である。
【００４７】
ステップ７００において、カスケードオペレーションが定義されている要素に関連する入力を検出する。任意の適切なタイプの入力を使用することができる。そのような入力には、限定ではなく例として、タッチジェスチャ又はスタイラスジェスチャによって受信され得るタッチ入力が含まれる。あるいはまた、そのような入力を、ナチュラルユーザインタフェースを通じて提供されるジェスチャ、ニアフィールド技術を通じて確認され得るような非接触ジェスチャ及びマウスクリック等により受信することができる。加えて、限定ではなく例として、ＣＳＳ疑似クラスにより定義されるカスケードオペレーションを含め、任意の適切なタイプのカスケードオペレーションを使用することができる。
【００４８】
ステップ７０２は、ステップ７００において検出された入力について、要素に関連するカスケードオペレーションを適用する。ステップ７０４は、１つ又は複数のカスケードオペレーションを、上記カスケードオペレーションが定義されている、関連するツリー内の全ての上位要素よりも少ない要素に適用する。このステップを、任意の適切なタイプのパラメータを使用して任意の適切な方法で実行して、カスケードオペレーションを適用すべき要素を確認することができる。そのようなパラメータは、限定ではなく例として、時間ベースのパラメータ、及び／又は時間ベースのパラメータ以外のパラメータを含むことができる。加えて、ステップ７０４を最初に実行した後、このステップを後で、追加の要素、及び関連するツリー内の全ての上位要素よりも少ない要素に、あるいは残りの上位要素の全てに対して実行することができる。
【００４９】
図８は、１つ又は複数の実施形態に係る別の方法のステップを示すフロー図である。本方法を、任意の適切なハードウェア、ソフトウェア、ファームウェア又はこれらに任意の組み合わせとの関連で実行することができる。少なくとも一部の実施形態において、本方法を、任意のタイプのコンピュータ読取可能記憶媒体において具現化される、コンピュータ読取可能命令の形式のソフトウェアによって実行することができ、この命令を、１つ又は複数のプロセッサの影響の下で実行することができる。説明される機能を実行することができるソフトウェアの例は、上述のカスケードオペレーションモジュール１０４及びジェスチャモジュール１０５である。
【００５０】
ステップ８００において、カスケードオペレーションが定義されている要素に関連する入力を検出する。任意の適切なタイプの入力を使用することができる。そのような入力には、限定ではなく例として、タッチジェスチャ又はスタイラスジェスチャによって受信され得るタッチ入力が含まれる。あるいはまた、そのような入力を、ナチュラルユーザインタフェースを通じて提供されるジェスチャ、ニアフィールド技術を通じて確認され得るような非接触ジェスチャ及びマウスクリック等により受信することができる。加えて、限定ではなく例として、ＣＳＳ疑似クラスにより定義されるカスケードオペレーションを含め、任意の適切なタイプのカスケードオペレーションを使用することができる。
【００５１】
ステップ８０２において、タイマを開始する。任意の適切なタイプのタイマを利用することができる。タイマの例は上記に提示されている。ステップ８０４において、ステップ８００にて検出された入力に対する要素に関するカスケードオペレーションを適用する。ステップ８０６において、タイマが終了しているかどうかを確認する。タイマが終了している場合、ステップ８０８において、ステップ８００からの入力がまだ検出されるかどうか確認する。更なる入力が検出されない場合、ステップ８１０において、カスケードオペレーションの適用をやめる。一方、ステップ８０８において入力がまだ検出される場合、ステップ８１２において、適用されたカスケードオペレーションを継続し、ステップ８０６に戻る。
【００５２】
ステップ８０６においてタイマが終了していた場合、ステップ８１４において、ステップ８００からの入力がその要素上でまだ検出されるかどうかを確認する。更なる入力が検出されない場合は、ステップ８１６において、適用されたカスケードオペレーションをやめる。一方、ステップ８００からの入力がまだ検出される場合、ステップ８１８において、少なくとも１つのカスケードオペレーションを、ステップ８０４にてカスケードオペレーションが適用された要素の１つ又は複数のそれぞれの上位要素に適用する。ステップ８１８によって適用されたカスケードオペレーションを、上位要素のサブセットに適用することができる。あるいはまた、カスケードオペレーションを上位要素の全てに適用することもできる。これが行われる方法の例は上記に提示されている。
【００５３】
１つ又は複数の実施形態に係る例示的な方法を説明してきたので、次に実装例を説明する。
【００５４】
＜実装例＞
上記のように、ウェブページにおいて、ユーザは、ポインティングデバイス又は何らかの他の手段を使用して要素を指定することができる。要素が指定されると、該要素は、ＣＳＳの「ホバリング」状態にあると見なされる。さらに、これも上記したように、ＣＳＳは、所与の要素が「ホバリング」状態にある場合、その上位要素も全てホバリング状態にあると見なされると定めるように定義を拡張する。「ホバリング」状態を、指定された要素の親又は上位要素まで伝播するプロセスは、「ホバリングのトンネリング」として知られる。コンテンツの作成者は：ｈｏｖｅｒ  ＣＳＳ疑似セレクタを使用して、スタイルフォーマットのルールを、ホバリング状態の要素に適用する。例えば以下のＣＳＳは、ＤＩＶ要素がホバリング状態にあるとき、全てのＤＩＶ要素に境界を適用することになる。  
div:hover｛border:  1px  solid  black;｝
所与の要素は、その親によって占有される空間のサブセットを必ずしも占有しないことに留意されたい。例えば以下のコードサンプルと関連して図９を検討する。
【００５５】
<!doctype  html>
<html>
<head>
<title>CSS  Hover</title>
<style>
div  {
width:  200px;
height:  200px;
border:  1px  solid  black;
}
#B  {
position:  absolute;
right:0px;
top:  0px;
}
a:hover  {  color:  red;  }
#A:hover  {  background-color:  blue;  }
</style>
</head>
<body>
<div  id="A">A
<div  id="B">B
<a  href="#">Click  Me</a>
</div>
</div>
</body>
</html>
ここで、９００として指定される一番上の要素Ａ及び要素Ｂにおいて、要素Ａは要素Ｂの親要素である。しかしながら、これらの要素は、レンダリングにおいて完全に異なる空間を占有する。このため、及びＣＳＳのホバリング状態がトンネリングするために、ポインティングデバイスによって特別に指定されているかどうかに関わらず、要素について、ホバリングスタイルフォーマットを有することが可能である。ユーザが要素Ａに対する入力を提供するとき、そのフォーマットは、９０２として指定される中間の要素Ａ及び要素Ｂのように適用される。次に、ユーザが、９０４として指定される一番下の要素Ａ及び要素Ｂにおいて、要素Ｂで「Ｃｌｉｃｋ  Ｍｅ」というリンクを指定する場合、これにより、フォーマットが「Ｃｌｉｃｋ  Ｍｅ」リンクに適用され、ホバリングルールによる背景色のフォーマットが要素Ａについて適用されることになる。
【００５６】
説明されるアプローチを使用すると、「Ｃｌｉｃｋ  Ｍｅ」リンクのホバリングスタイルが最初に適用され、次の上位のホバリングスタイル（Ｂ及びＡに対する）がタイマの後に適用される。一実施形態において、単一の要素が初期フォーマットの適用で使用される。
【００５７】
実装例について検討してきたが、次に、上述のような１つ又は複数の実施形態を実装するのに用いることができる例示的デバイスを検討する。
【００５８】
＜例示的なデバイス＞
図１０は、本明細書で説明されるアニメーションライブラリの実施形態を実装するために、図１及び２に関連して説明したような任意のタイプのポータブル及び／又はコンピュータデバイスとして実装することができる例示的デバイス１０００の様々なコンポーネントを示す。デバイス１０００は、（例えば受信済みのデータ、受信中のデータ、放送用にスケジュールされたデータ、データのデータパケット等）デバイスデータ１００４の有線及び／又は無線通信を可能にする通信デバイス１００２を含む。デバイスデータ１００４又は他のデバイスコンテンツは、デバイスの構成設定、デバイス上に格納されたメディアコンテンツ及び／又はデバイスのユーザに関連付けられた情報を含むことができる。デバイス１０００上に格納されるメディアコンテンツは、任意のタイプのオーディオ、ビデオ及び／又はイメージデータを含むことができる。デバイス１０００は、１つ又は複数のデータ入力部１００６を含み、該１つ又は複数のデータ入力部１００６を介して、ユーザ選択可能な入力、メッセージ、音楽、テレビメディアコンテンツ、記録されたビデオコンテンツ並びに任意のコンテンツ及び／又はデータソースから受信される任意の他のタイプのオーディオ、ビデオ及び／又はイメージデータのような、任意のタイプのデータ、メディアコンテンツ及び／又は入力を受信することができる。
【００５９】
デバイス１０００は、通信インタフェース１００８も含む。通信インタフェース１００８を、シリアル及び／又はパラレルインタフェース、無線インタフェース、任意のタイプのネットワークインタフェース、モデムのうちのいずれか１つ又は複数として、並びに任意の他のタイプの通信インタフェースとして実装することができる。通信インタフェース１００８は、デバイス１０００と、他の電子、コンピューティング及び通信デバイスがデバイス１０００と通信するための通信ネットワークとの間の接続リンク及び／又は通信リンクを提供する。
【００６０】
デバイス１０００は、１つ又は複数のプロセッサ１０１０（例えばマイクロプロセッサ、コントローラ等のいずれか）を含む。プロセッサ１０１０は、様々なコンピュータ実行可能命令又は読取可能命令を実行して、デバイス１０００の動作を制御し、上述の実施形態を実装する。あるいはまた、デバイス１０００を、ハードウェア、ファームウェア又は一般に１０１２で示される処理及び制御回路に関連して実装される固定の論理回路のうちのいずれか１つ又は組み合わせで実装することができる。図示されていないが、デバイス１０００は、デバイス内の様々なコンポーネントを結合するシステムバス又はデータ伝送システムを含むことができる。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び／又は様々なバスアーキテクチャのいずれかを使用するプロセッサ若しくはローカルバスのような異なるバス構造のいずれか１つ又は組み合わせを含むことができる。
【００６１】
デバイス１０００は、１つ又は複数のメモリコンポーネントのようなコンピュータ読取可能媒体１０１４も含み、その例には、ランダムアクセスメモリ（ＲＡＭ）、非揮発性メモリ（例えば読取専用メモリ（ＲＯＭ）、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等のいずれか１つ又は複数）並びにディスク記憶デバイスが含まれる。ディスク記憶デバイスは、ハードディスクドライブ、記録可能及び／又は再書込可能なコンパクトディスク（ＣＤ）、任意のタイプのデジタル多用途ディスク（ＤＶＤ）等のような、任意のタイプの磁気又は光ストレージデバイスとして実装され得る。デバイス１０００は、大容量記憶メディアデバイス１０１６も含むことができる。
【００６２】
コンピュータ読取可能媒体１０１５は、デバイスデータ１００４だけでなく、様々なデバイスアプリケーション１０１８並びにデバイス１０００の動作的態様に関係する他のタイプの情報及び／又はデータを記憶する、データ記憶機構を提供する。例えばオペレーティングシステム１０２０を、コンピュータ読取媒体１０１４によるコンピュータアプリケーションとして保持し、プロセッサ１０１０として実行することができる。デバイスアプリケーション１０１８は、デバイスマネージャ（例えば制御アプリケーション、ソフトウェアアプリケーション、信号処理及び制御モジュール、特定のデバイスにネイティブのコード、特定のデバイス用のハードウェア抽象化レイヤ等）だけでなく、ウェブブラウザ、イメージ処理アプリケーション、インスタントメッセージング・アプリケーションのような通信アプリケーション、ワード処理アプリケーション及び様々な他の異なるアプリケーションを含むことができる。デバイスアプリケーション１０１８は、本明細書で説明される技術の実施形態を実装する任意のシステムコンポーネント又はモジュールも含む。この例において、デバイスアプリケーション１０１８は、ソフトウェアモジュール及び／又はコンピュータアプリケーションとして示される、インタフェースアプリケーション１０２２及びジェスチャ・キャプチャ・ドライバ１０２４を含む。ジェスチャ・キャプチャ・ドライバ１０２４は、タッチスクリーン、トラックパッド、カメラ等のような、ジェスチャをキャプチャするように構成されるデバイスとのインタフェースを提供するのに使用されるソフトウェアを表す。あるいはまた、インタフェースアプリケーション１０２２及びジェスチャ・キャプチャ・ドライバ１０２４を、ハードウェア、ソフトウェア、ファームウェア又はこれらの任意の組み合わせとして実装することができる。加えて、コンピュータ読取可能媒体１０１４は、上述のように機能するカスケードオペレーションモジュール１０２５ａ及びジェスチャモジュール１０２５ｂを含むことができる。
【００６３】
デバイス１０００は、オーディオ及び／又はビデオ入出力システム１０２６も含む。オーディオ及び／又はビデオ入出力システム１０２６は、オーディオデータをオーディオシステム１０２８に提供し、及び／又はビデオデータをディスプレイシステム１０３０に提供する。オーディオシステム１０２８及び／又はディスプレイシステム１０３０は、オーディオ、ビデオ及びイメージデータを処理し、表示し、又は他の方法でレンダリングする任意のデバイスを含むことができる。ビデオ信号及びオーディオ信号を、デバイス１０００からオーディオデバイス及び／又はディスプレイデバイスに、ＲＦ（無線周波数）リンク、Ｓ−ｖｉｄｅｏリンク、コンポジットビデオリンク、コンポーネントビデオリンク、ＤＶＩ（デジタルビデオインタフェース、アナログオーディオ接続又は他の同様の通信リンクを介して通信することができる。一実施形態において、オーディオシステム１０２８及び／又はディスプレイシステム１０３０は、デバイス１０００の外部コンポーネントとして実装される。あるいは、オーディオシステム１０２８及び／又はディスプレイシステム１０３０は、例示デバイス１０００の組み込みコンポーネントとして実装される。
【００６４】
＜結論＞
様々な実施形態は、階層型ツリー内の指定された要素のうちの１つの要素に関連付けられた入力を受信することに応答して、カスケードオペレーションのサブセットを、それらの指定された要素に選択的に適用することによって、効率的なカスケードオペレーションが実行されることを可能にする。カスケードオペレーションのサブセットを実行した後、様々なパラメータに従ってカスケードオペレーションの完全なセットを実行することができる。
【００６５】
１つ又は複数の実施形態において、受信した入力について、カスケードオペレーションのサブセットは、限定ではなく例としてほんの数例を挙げると、ユーザ対話のタイミング、所与の要素についてのカスケードオペレーションの複雑性、及び／又はカスケードオペレーションを適用することができる要素の数を含むパラメータに基づいて決定され得る。
【００６６】
実施形態を、構造的特徴及び／又は方法的動作に特有の言葉で説明してきたが、特許請求の範囲において定義される実施形態は、必ずしも説明された具体的な特徴及び動作に限定されないことを理解されたい。むしろ、これらの具体的な特徴及び動作は、特許請求に係る実施形態を実装する例示的な形式として開示される。
【図１】
2015531086.tif 000003
【図２】
2015531086.tif 000004
【図３】
2015531086.tif 000005
【図４】
2015531086.tif 000006
【図５】
2015531086.tif 000007
【図７】
2015531086.tif 000008
【図８】
2015531086.tif 000009
【図９】
2015531086.tif 000010
【図１０】
2015531086.tif 000011
【図６】
2015531086.tif 000012
【国際調査報告】
2015531086.tif 000013
2015531086.tif 000014