(57)【要約】  アプリケーションからのグラフィカル出力データの規則に対する準拠は、グラフィカル出力データをレンダリングする命令を処理して、それらの命令に従ってレンダリングされたグラフィカル出力データが規則に準拠しているかどうかを判定することによって検出することができる。次いで、この準拠判定に基づいて、グラフィカル出力データを、レンダリングされたグラフィカル出力データが、出力デバイス上で提示されたときに、準拠している表示データを準拠していない表示データから可視的に区別するような態様でレンダリングする。例えば、指定されたフォント特性に準拠しているテキストを１つの色で提示し、準拠していないテキストを別の色で提示することができる。
2017517802.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータのためのグラフィカルユーザインタフェースを実現するように前記コンピュータを構成するコンピュータプログラムコードを試験する方法であって、
実行された前記コンピュータプログラムコードが第１のデータを生成し、前記第１のデータをメモリに入れるような態様で、前記コンピュータプログラムをプロセッサを用いて実行すること
を含み、前記第１のデータが、前記グラフィカルユーザインタフェース用のグラフィカル出力データをレンダリングする命令を含み、前記方法がさらに、
前記グラフィカルユーザインタフェース用のレンダリングされたグラフィカル出力データに対する規則を示す第２のデータを受け取り、前記第２のデータをメモリに入れること、
前記第１のデータおよび前記第２のデータを前記プロセッサを用いて処理して、前記第１のデータ中の前記命令に従ってレンダリングされたグラフィカル出力データが、前記第２のデータによって示された前記規則に準拠しているかどうかを判定すること、
レンダリングされた前記グラフィカル出力データが、準拠しているグラフィカル出力データを準拠していないグラフィカル出力データから可視的に区別するような態様で、ディスプレイ向けの前記グラフィカル出力データを、プロセッサを用いて、前記判定に基づいてレンダリングすること、ならびに
レンダリングされた前記グラフィカル出力データが、出力デバイス上で提示されるようにすること
を含む方法。
【請求項２】
前記グラフィカル出力データが、１つのフォント型の文字を含み、前記規則が、受入れ可能なフォント型を含む、請求項１に記載の方法。
【請求項３】
前記グラフィカル出力データが、１つのフォントサイズの文字を含み、前記規則が、受入れ可能なフォントサイズを含む、請求項１または２に記載の方法。
【請求項４】
前記グラフィカル出力データが、１つの色の文字を含み、前記規則が、受入れ可能な文字色を含む、請求項１から３のいずれかに記載の方法。
【請求項５】
前記グラフィカル出力データが、前記コンピュータ上のアプリケーションのためのグラフィカルユーザインタフェース用の表示データである、請求項１から４のいずれかに記載の方法。
【請求項６】
前記グラフィカル出力データが、前記コンピュータのオペレーティングシステムのためのグラフィカルユーザインタフェース用の表示データである、請求項１から５のいずれかに記載の方法。
【請求項７】
前記命令が、前記コンピュータ上の２つ以上のアプリケーションから受け取られる、請求項１から６のいずれかに記載の方法。
【請求項８】
前記処理することが、オペレーティングシステムの表示マネージャによって実行される、請求項１から７のいずれかに記載の方法。
【請求項９】
前記グラフィカル出力データが前記規則に準拠していない場合に、グラフィカル出力データをレンダリングする任意の命令に関する情報を記録することをさらに含む、請求項１から８のいずれかに記載の方法。
【請求項１０】
前記グラフィカル出力データが前記規則に準拠していない場合に、グラフィカル出力データをレンダリングする任意の命令に関する情報を記録することをさらに含む、請求項１から９のいずれかに記載の方法。
【請求項１１】
処理することが、フォントファイルを使用して前記命令をレンダリングすることを含み、前記規則に対する準拠を前記ユーザに示すため、前記規則に準拠している一組のフォントサイズ、タイプおよび色に対するグリフがレンダリングされたときに、前記グリフが、準拠していないフォントサイズ、タイプおよび色に対する他のグリフとは可視的に異なるような態様で、前記規則に準拠している一組のフォントサイズ、タイプおよび色に対する前記グリフが１つの色でコード化される、請求項１から１０のいずれかに記載の方法。
【請求項１２】
処理することが、フォントファイルを使用して前記命令をレンダリングすることを含み、前記規則に準拠しているフォントに対するグリフが第１の色でコード化され、準拠していないフォントに対するグリフが、前記第１の色とは可視的に異なる第２の色でコード化されるような態様で、前記フォントファイルが、一組のフォントに対するグリフを定義する、請求項１から１０のいずれかに記載の方法。
【請求項１３】
処理することが、準拠しているフォントを識別するためのルールを前記命令に適用することを含む、請求項１から１０のいずれかに記載の方法。
【請求項１４】
１つまたは複数のコンピュータ記憶媒体と、
前記１つまたは複数のコンピュータ記憶媒体上に記憶されたコンピュータプログラム命令と
を含み、前記コンピュータプログラム命令が、コンピュータによって処理されたときに、請求項１から１３のいずれかに記載の方法を実現する
コンピュータプログラム製品。
【請求項１５】
１つまたは複数のプロセッサと、
データを記憶した１つまたは複数のコンピュータ記憶媒体であり、前記プロセッサとデータをやりとりするように接続された１つまたは複数のコンピュータ記憶媒体と
を備え、
前記１つまたは複数のプロセッサが、請求項１から１３のいずれかに記載の方法を実現するように構成された、
コンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  コンピュータプログラムを開発する際の多くの課題のうちの１つの課題は、開発されたアプリケーションが良好なユーザエクスペリエンス（user experience）を提供することを保証することである。広範に配布されたアプリケーションでは、良好なユーザエクスペリエンスを提供することが、多くの異なる言語およびユーザのその他の能力を考慮することを含む。しかしながら、よくいそうな基盤的ユーザと同じ幅の能力を有する試験者によってソフトウェア試験を実行することが、経済的にできないことがしばしばある。
【０００２】
[0002]  ユーザエクスペリエンスの１つの態様が、そのグラフィカルユーザインタフェース内の表示データ、プリンタに出力されるデータなどの、アプリケーションのグラフィカル出力データである。このようなグラフィカル出力データはテキストを含むことができ、レンダリングされたとき、テキストは、文字とフォント特性との組合せであり、フォント特性には、型（type）、サイズ、太さ（weight）、色などがある。他のグラフィカル出力データは、画像および他のユーザインタフェース要素を含むことができる。例えば可読性（readability）、可視性（visibility）、およびテーマまたはブランディング（branding）との一貫性（consistency）を保証するため、開発者は、このグラフィカル出力データに対する規則（convention）を規定することができる。このような規則に対する準拠が常に起こるとは限らない。これは、コンピュータプログラミングの性質、ならびに異なる市場およびユーザタイプに対しては規則が異なることがあることに起因する。したがって、このような規則に対する準拠を確認する場合には一般に、試験によって確認される。
【０００３】
[0003]  規則に対するグラフィカル出力データの準拠の試験は、いくつかの理由から難題となりうる。人は、出力されたテキストが特定のフォントサイズまたは他のフォント特性を有するかどうかを言い当てることができないことがある。人は、そのテキストが特定のフォント型で表示されているかどうかを言い当てることができないことがある。その人が、そのテキストの言語の文字に通じておらず、それらの文字が所与のフォントでどのように見えるはずであるのかがよく分かっていない場合には特にそうである。人は、２つの非常に類似した色の違いを見分けることもできないことがある。出力デバイスが色を正確に提示しないこともある。グラフィカル出力データの他の特性が、人によって可視的に（visibly）検出可能ではないこともあろう。
【発明の概要】
【０００４】
[0004]  この概要は、後の「発明を実施するための形態」の項でより詳細に説明する選択された発想を簡略化された形態で導入するために提供する。この概要が、特許請求の主題の鍵となる特徴もしくは必須の特徴を識別すること、または特許請求の主題の範囲を限定することは意図されていない。
【０００５】
[0005]  出力デバイス上のグラフィカル出力データの規則に対する準拠は、グラフィカル出力データをレンダリングする命令を処理して、それらの命令に従ってレンダリングされたグラフィカル出力データが規則に準拠しているかどうかを判定することによって検出することができる。次いで、この準拠判定に基づいて、グラフィカル出力データを、レンダリングされたグラフィカル出力データが準拠しているグラフィカル出力データを準拠していないグラフィカル出力データから可視的に区別するような態様でレンダリングする。例えば、フォント型、サイズ、太さ、色および他の特性などの指定されたフォント特性に準拠しているテキストを１つの色で提示し、準拠していないテキストを別の色で提示することができる。この処理は、アプリケーション内で、そのアプリケーションが、出力デバイスに導くグラフィカル出力データをレンダリングするときに、実施することができる。この処理は、コンピュータのオペレーティングシステムのレンダラ（renderer）内で実施することができ、このレンダラは、１つまたは複数のアプリケーションのためのグラフィカルユーザインタフェースをレンダリングして、コンピュータに接続された１つまたは複数のディスプレイ上に、場合によっては同時に表示する。このような処理は、印刷などのアプリケーション用のグラフィカル出力データを生成する他のレンダラ内で実施することができる。
【０００６】
[0006]  準拠検出は、さまざまな技法を使用して実行することができる。例えば、一実施態様では、準拠検出を、ルールベースの処理を使用して実行することができる。別の実施態様では、準拠しているテキストに対するグリフ（glyph）データを１つの色で提供し、準拠していないテキストに対するグリフデータを別の色で提供するように、フォントファイルを変更することができる。
【０００７】
[0007]  これに応じて、一態様では、グラフィカルデータを受け取り、それをメモリに入れる。このグラフィカルデータは、グラフィカル出力データをレンダリングする命令を含む。さらに、レンダリングされたグラフィカル出力データに対する規則を示すデータを受け取り、それをメモリに入れる。このグラフィカルデータに含まれる命令を処理して、それらの命令に従ってレンダリングされたグラフィカル出力データが規則に準拠しているかどうかを判定する。次いで、ディスプレイ上に表示されているとき、またはプリンタ上で印刷されたときなど、出力デバイス上で提示されたときに、レンダリングされたグラフィカル出力データが、準拠しているグラフィカル出力データを準拠していないグラフィカル出力データから可視的に区別するような態様で、グラフィカル出力データを、それらの命令と準拠に関して実施された上記判定との両方に従って、レンダリングする。
【０００８】
[0008]  他の態様では、レンダリングモジュールが、グラフィカルデータをメモリから受け取るための入力を有する。このグラフィカルデータは、グラフィカル出力データをレンダリングする命令を含む。レンダリングモジュールはさらに、レンダリングされたグラフィカル出力データに対する規則を示すデータをメモリから受け取るための入力を有する。レンダリングモジュールは、それらの命令を処理して、それらの命令に従ってレンダリングされたグラフィカル出力データが規則に準拠しているかどうかを判定する。次いで、ディスプレイ上に表示されているとき、またはプリンタ上で印刷されたときなど、出力デバイス上で提示されたときに、レンダリングされたグラフィカル出力データが、準拠しているグラフィカル出力データを準拠していないグラフィカル出力データから可視的に区別するような態様で、グラフィカル出力データを、それらの命令に従って、かつ準拠に関して実施された上記判定に基づいて、レンダリングする。
【０００９】
[0009]  処理することは、フォントファイルを使用して命令をレンダリングすることを含み、グラフィックス規則に準拠している、型、サイズ、太さ、色などの一組のフォント特性に対するグリフは、レンダリングされたときにユーザに準拠していることを示す１つの色でコード化される。
【００１０】
[0010]  グラフィカル出力データは、一組のフォント特性を有する文字を含むことができ、規則は、受入れ可能なフォント特性を含む。例えば、表示データは、１つのフォント型（フェイス（face）とも呼ばれる）の文字を含むことができ、規則は、受入れ可能なフォント型を含むことができる。グラフィカル出力データは、１つのフォントサイズの文字を含むことができ、規則は、受入れ可能なフォントサイズを含む。グラフィカル出力データは、１つの色の文字を含むことができ、その場合、規則は、受入れ可能な文字色を含む。太さ、スタイル、スケールファクタ、レイヤ（layer）、名（name）などの他の特性を規則の中で指定することもできる。
【００１１】
[0011]  グラフィカル出力データは、コンピュータ上のアプリケーションまたはオペレーティングシステムのためのグラフィカルユーザインタフェース用のデータとすることができる。命令は、コンピュータ上の２つ以上のアプリケーションから受け取ることができ、その場合、処理は、オペレーティングシステムの表示マネージャによって、両方のアプリケーションに対して実行することができる。グラフィカル出力データをプリンタまたは他の出力デバイスに導くこともでき、グラフィカル出力データは、アプリケーションのグラフィカルユーザインタフェース以外を目的とすることができる。
【００１２】
[0012]  グラフィカル出力データが規則に準拠していないと判定された場合には、グラフィカル出力データをレンダリングする任意の命令に関する情報を記録することができる。
【００１３】
[0013]  本発明は、コンピュータシステムとして、またはそのようなコンピュータシステムの任意の個々の構成要素として、またはそのようなコンピュータシステムによってもしくはそのようなコンピュータシステムの任意の個々の構成要素によって実行されるプロセスとして、または、コンピュータプログラム命令が記憶されたコンピュータストレージを含み、コンピュータによって処理されたときに、それらのコンピュータを、そのようなコンピュータシステムもしくはそのようなコンピュータシステムの任意の個々の構成要素を提供するように構成する製品（article of manufacture）として、具現化することができる。
【００１４】
[0014]  以下の説明では、以下の説明の部分を形成する添付図面を参照する。添付図面には、この技法の例示的な特定の実施態様が例として示されている。他の実施形態を利用することができること、および本開示の範囲を逸脱することなく構造上の変更を加えることができることが理解される。
【図面の簡単な説明】
【００１５】
【図１】[0015]規則に対するグラフィカル出力データの準拠の確認をコンピュータシステムがサポートする例示的なアプリケーション環境のブロック図である。
【図２】[0016]グラフィカルユーザインタフェースを試験する例示的なプロセスを記述した流れ図である。
【図３】[0017]例示的な実施態様を記述したデータ流れ図である。
【図４】[0018]図３の例示的な実施態様のオペレーションを記述した流れ図である。
【図５】[0019]例示的なグラフィカルユーザインタフェースを示す図である。
【図６】[0020]例示的な実施態様を記述したデータ流れ図である。
【図７】[0021]図６の例示的な実施態様のオペレーションを記述した流れ図である。
【図８】[0022]このようなシステムの構成要素をそれを用いて実現することができる例示的なコンピュータのブロック図である。
【発明を実施するための形態】
【００１６】
[0023]  以下の項では、規則に対するグラフィカル出力データの準拠の確認をサポートする例示的なコンピュータシステムを説明する。
【００１７】
[0024]  図１を参照すると、コンピュータシステムの例示的な実施態様はオペレーティングシステム１００を含む。オペレーティングシステム１００は、コンピュータ上でランするコンピュータプログラムであり、アプリケーション１０２によるコンピュータのさまざまな資源へのアクセスを管理する。アプリケーション１０２は複数あることがある。このコンピュータは、図８に関して後に説明するように実現される。それらのさまざまな資源には、メモリ、ストレージ、入力デバイスおよび出力デバイス、例えば表示デバイス１１４および入力デバイス１１６が含まれる。
【００１８】
[0025]  このコンピュータは、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートフォン、ラップトップもしくはノートブックコンピュータ、ウェアラブルコンピューティングデバイスなどの任意のタイプの汎用もしくは専用コンピュータ、または、ディスプレイ、プリンタなどの出力デバイスにグラフィカル出力データを提供する他の任意のコンピューティングデバイスとすることができ、サイズまたは環境は問わない。このコンピュータの追加の詳細および例については図８に関して後に論じる。
【００１９】
[0026]  図１〜７に関して説明される例示的な実施態様では、このグラフィカル出力データが、コンピュータ上でランするアプリケーションのためのグラフィカルユーザインタフェースの部分である。この例では、グラフィカル出力データが表示デバイス上に表示され、この表示デバイスは、ユーザがそれを介してそのアプリケーションを使用しているユーザインタフェースの部分である。したがって、この例では、出力するためにレンダリングされるグラフィカルデータをユーザインタフェースデータと呼ぶ。他の例示的な実施態様では、グラフィカル出力データを、プリンタなどの他の任意の出力デバイスに導くことができる。プリンタの場合には、出力するためにレンダリングされるグラフィカルデータが、プリンタに導かれるプロダクトグラフィカル出力データへのプリンタドライバの部分であるレンダリングモジュールによってレンダリングされる印刷データであることがある。
【００２０】
[0027]  図１の例示的な実施態様では、オペレーティングシステムが、アプリケーション１０２からユーザインタフェースデータ１０４を受け取る表示マネージャ１１０を含む。このユーザインタフェースデータは、表示データをレンダリングするための一組の命令である。このユーザインタフェースデータ１０４が与えられると、表示マネージャ１１０は、ユーザインタフェースデータ１０４をレンダリングして表示データ１１２を生成する。生成された表示データ１１２は表示デバイス１１４に提供される。表示デバイス１１４は、オペレーティングシステム１００をランさせるコンピュータに接続されたディスプレイとすることができ、または、オペレーティングシステム１００をランさせるコンピュータから表示データ１１２を受け取る別のコンピュータの部分とすることもできる。同様に、ブラウザベースのアプリケーションの場合のように、アプリケーションが、そのアプリケーション用のユーザインタフェースデータをレンダリングするアプリケーションとは別のコンピュータ上でランしていることもある。表示デバイス１１４を見ているユーザが、１つまたは複数の入力デバイス１１６を操作して、さまざまな入力１１８をアプリケーション１０２に提供することもできる。一般に、オペレーティングシステムの入力ハンドラ１０８が、入力１１８を、さまざまなアプリケーションへ入力１０６として配布することを取り扱う。
【００２１】
[0028]  この環境では、アプリケーション１０２のグラフィカルユーザインタフェースの表示データに対して規定された規則に対する表示データ１１２の準拠を確認することができる。試験者、例えば個人が、アプリケーション１０２を使用するために、それらのアプリケーション１０２のグラフィカルユーザインタフェースを介して、表示デバイス１１４および入力デバイス１１６を使用して、コンピュータにアクセスする。このような試験者によって使用される試験プロセスについては、図２に関して後により詳細に説明する。
【００２２】
[0029]  図３〜７に関して後により詳細に説明するが、表示マネージャ１１０は、規則１２０を使用して、グラフィカルユーザインタフェース内のテキスト、画像および他のユーザインタフェース要素などの表示データ１１２が、この規則に準拠していることを確認する。具体的には、ユーザインタフェースデータ１０４を処理して、データ１０４に従ってレンダリングされた表示データ１１２が規則１２０に準拠しているかどうかを判定する。次いで、この準拠判定に基づいて、表示データ１１２を、レンダリングされた表示データが準拠している表示データを準拠していない表示データから可視的に区別するような態様でレンダリングする。例えば、指定されたフォント型、フォントサイズおよびフォントの色に準拠しているテキストを１つの色で表示し、準拠していないテキストを別の色で表示することができる。表示データ１１２は、例えば特定の色を有することによってこの準拠を可視的に示すので、表示データ１１２は、ユーザインタフェースデータ１０４によって命令されたとおりにはレンダリングされないことに留意されたい。
【００２３】
[0030]  次に、図２を参照して、グラフィカルユーザインタフェースに対する試験プロセスの例を説明する。プリンタまたは他の出力デバイスに導かれるグラフィカル出力データの確認にも同様のプロセスを使用することができる。一般に、試験者が、選択したユーザシナリオにおけるオペレーションを、アプリケーション１０２に開始させる２０２。例えば、試験者は、ユーザ入力１０６を介して検索コマンドを呼び出すことができる。アプリケーション１０２は、ユーザ入力１０６に応答して、呼び出されたコマンドに応じた情報を含むユーザインタフェースデータ１０４を生成する２０４。表示マネージャ１１０は、ユーザインタフェースデータ１１０を処理して２０６、表示データ１１２を、規則１２０を使用して生成する。表示データ１１２は、順に表示デバイス１１４上に表示される。試験者は、このシナリオにおけるユーザ入力を提供し続けることができ、それによって、２０８に示されているようにユーザインタフェースを更新することができる。ユーザインタフェースデータを生成するプロセスおよび規則１２０を使用してユーザインタフェースデータをレンダリングするプロセスを繰り返す。表示データ１１２が規則に準拠していないことを表示データが示している場合には、そのような事件（incident）を記録することができる２０７。２１０に示されているように、試験者は、別の試験シナリオに移行することができる。ユーザインタフェースデータを生成するプロセスおよび規則１２０を使用してユーザインタフェースデータをレンダリングするプロセスを繰り返す。試験者は、誤り、すなわち標準に対する表示データの非コンプライアンスを記録および追跡するさまざまな方法を有することができ、そのような誤りをソフトウェア開発者に報告して、グラフィカルユーザインタフェース表示データを修正するためにアプリケーションを変更することができるようにすることができる。このシナリオのラン、ユーザ入力の提供、ならびにユーザインタフェースデータのコンプライアンスまたは非コンプライアンスの記録および報告を半自動化することができ、または実施態様によっては自動化することもできる。試験はしばしば、アプリケーションとの対話を自動化するスクリプトを作成することを含む。
【００２４】
[0031]  次に、表示マネージャの例示的な実施態様のデータ流れ図を図３に関して説明する。
【００２５】
[0032]  この例示的な実施態様では、表示マネージャ３００が、ユーザインタフェースデータ３０２をアプリケーションから受け取るための入力を有するレンダリングモジュール３０４を含む。マッチング（matching）モジュール３０６も、ユーザインタフェースデータ３０２を受け取るための入力を有する。マッチングモジュールは、規則３０８を受け取るための別の入力を有する。規則３０８は例えば、ユーザインタフェースデータ３０２を処理するルール、またはマッチングモジュール３０６がユーザインタフェースデータ３０２を規則３０８と比較することを可能にするのに適した他の情報、を使用して規定することができる。マッチングモジュールは、結果３１０を提供するための出力を有する。この結果は、レンダリングされたときに、ユーザインタフェースデータ３０２が、規則に準拠した表示データ３１２を生成するのかどうかを示す。例えば、ユーザインタフェースデータに応じて、レンダリングされた表示データは、表示データが規則に準拠している場合には第１の色を有し、表示データが規則に準拠していない場合には第２の色を有することができる。ディスプレイを見ている人が、準拠している表示データと準拠していない表示データとを容易に区別することを可能にするため、第１の色と第２の色は互いに実質的に異なる。
【００２６】
[0033]  次に、図４を参照して、この例示的な実施態様のオペレーションを記述した流れ図を説明する。
【００２７】
[0034]  マッチングモジュールは、ユーザインタフェースデータを受け取り４００、ユーザインタフェースデータが規則に違反しているかどうかを検証する４０２。実行されるこの検証は、規則データの性質に依存し、ルールを処理すること、参照用テーブル（lookup table）内の値を参照すること、値を比較することなどを含むことができる。マッチングモジュールは、レンダリングモジュールに結果を出力し、レンダリングモジュールは、その検証結果に従ってユーザインタフェースデータをレンダリングする４０４。ユーザシナリオ、ユーザ入力およびユーザインタフェースデータの記録および報告ならびに規則に対するグラフィカルユーザインタフェースの表示データの準拠または非準拠の記録および報告を含む図２に記載されたプロセスなどのより大きな試験プロセスの部分として、図４のプロセスを含めることができる。
【００２８】
[0035]  検索アプリケーションの例示的なグラフィカルユーザインタフェースが図５に示されている。この例では、ユーザインタフェースデータが、検索のためにユーザによって入力されたテキストを反映するテキストボックス５００、および５０２に示されたその検索に対するファイル名結果を含む、レンダリングされた表示データ中に現われるいくつかの要素を定義する。５０６には検索提案（search suggestion）が示されている。５０４には、この検索インタフェースに関する情報テキストが提供されている。この例では、情報テキストの言語が日本語で表示されており、検索結果および検索提案が英語で表示されている。この例では、準拠しているテキストが赤で示されており、準拠していないテキストが灰色で示されている。所与のフォントで表示された文字がどのように見えるのかを知らない人でも、また、使用されている文字が英語で書かれているのかまたは日本語で書かれているのかが分からない人でも、検索テキストボックス５００および情報テキスト５０４で使用されているフォントは、このアプリケーションに対して指定された規則に準拠していると容易に判定することができる。さらに、その人は、検索提案５０６および検索結果５０２で使用されているフォントは規則に準拠していないと容易に判定することができる。このことを、レンダラが自動的に記録し、またはその人が記録することができ、次いで、このことを、そのアプリケーションの開発者に報告することができ、この報告に応答して、検索結果および検索提案に対するフォントを変えるようにアプリケーションを変更することができる。
【００２９】
[0036]  次に、表示マネージャの例示的な別の実施態様のデータ流れ図を図６に関して説明する。この例では、規則が、フォントファイル６０８の中のデータによって表現されるフォント型（またはフェイス）、サイズ、太さ、スタイル、色、スケールファクタ、レイヤ、名などのフォント特性に関係する。フォントファイルの中に設定することができ、規則の中で指定することができる任意のフォント特性を、本明細書に記載された技法を使用して確認することができる。
【００３０】
[0037]  具体的には、レンダリングモジュール６０４によって通常使用されている従来のフォントファイル６１２を、エディタ６１０および入力６１４を使用して変更する。フォントファイル６１２は一般に、そのフォントの中の文字のグリフのビットマップを含むフォント型に対するデータ、異なるサイズおよび色に対するデータ、ならびにそのフォントの他の可変パラメータを含む。開発者は、フォントファイル６１２を例えば標準テキストエディタを使用して編集して、フォントファイル６１２を変更することができる。次いで、レンダリングモジュール６０４が、変更されたフォントファイル６０８を使用してユーザインタフェースデータ６０２をレンダリングし、それによって表示データ６０６を生成する。
【００３１】
[0038]  フォントファイルに加えられる変更は一般に、フォントファイルによってレンダリングモジュールに返されるグリフが、所与のフォントの中の所与の文字に応じて、その文字が規則に準拠している場合には第１の色を有し、その文字が規則に準拠していない場合には第２の色を有するような態様で、色情報を変更することを含む。ディスプレイを見ている人が、準拠しているフォントと準拠していないフォントとを容易に区別することを可能にするため、第１の色と第２の色は互いに実質的に異なる。例えば、第１の色と第２の色は、色相（hue）が異なることができ、または色空間内の位置が実質的に異なることができる。したがって、表示データ６０６は、ディスプレイ上に表示されたときに、準拠しているテキストを準拠していないテキストから可視的に区別する。
【００３２】
[0039]  次に、図７を参照して、この例示的な実施態様のオペレーションを記述した流れ図を説明する。変更されたフォントファイルが与えられると、レンダリングモジュールは、レンダリングするユーザインタフェースデータを受け取る７００。この例の目的上、ユーザインタフェースデータ中のテキストは、一組のテキストセグメント（text segment）として提示されると考える。テキストセグメントはそれぞれ、文字列、フォント型およびフォントサイズ、ならびにフォントを指定する任意の他のデータを含む。ユーザインタフェースデータ中の次のテキストセグメントにアクセスする７０２。次いで、フォントファイルにアクセスして７０４、指定されたフォントに対するグリフデータを取得する。そのテキストセグメントが規則に準拠している場合には、このグリフデータを第１の色で表示し、そのテキストセグメントが規則に準拠していない場合には、このグリフデータを第２の色で表示する。このグリフデータを使用して、表示データを生成する７０６。７０８として示されているように、テキストセグメントが残っている場合には、次のテキストセグメントに対してこのプロセスを繰り返す。残っていない場合には、７１０に示されているように、この一組のユーザインタフェースデータに対するテキスト処理は完了である。
【００３３】
[0040]  ユーザシナリオ、ユーザ入力およびユーザインタフェースデータの記録および報告ならびに規則に対するグラフィカルユーザインタフェースの表示データの準拠または非準拠の記録および報告を含む図２に記載されたプロセスなどのより大きな試験プロセスの部分として、図７のプロセスを含めることができる。このような試験プロセスは、出力デバイス向けのグラフィカルデータの任意のレンダリングを使用して実行することができる。
【００３４】
[0041]  レンダリングされたグラフィカル出力データが部分的に準拠している（または部分的に準拠していない）かどうかを検出すること、したがってそれを試験者に知らせることも可能である。例えば、２つのフォント特性が与えられた場合、両方の特性が準拠している場合にはテキストを１つの色でレンダリングすることができ、どちらの特性も準拠していない場合にはテキストを第２の色でレンダリングすることができ、または、１つの特性が準拠しており、別の特性が準拠していない場合には特徴を組み合わせることができる。例えば、このような部分準拠を示すために、第１の色のテキストを、第２の色の「ハロー（halo）」効果が取り囲むことができる。レンダリングされたグラフィカル出力データが出力デバイス上で提示されたときにこのような特徴を可視的に区別することができるものである限り、部分準拠を示すために、レンダリングされたグラフィカル出力データ中で他の特徴を使用することもできる。
【００３５】
[0042]  規則に対するレンダリングされたグラフィカル出力データの準拠をレンダリング時に検出し、出力デバイス上で提示されたときに、準拠している表示データを準拠していない表示データから可視的に区別するレンダリングされたグラフィカル出力データを提供することによって、試験の多くの問題が対処される。例えば、たとえそのテキストの言語の文字に通じておらず、それらの文字が所与のフォントでどのように見えるはずであるのかがよく分かっていない場合であっても、人は、受入れ可能なフォント型、フォントサイズ、色などの指定されたフォント特性にテキストが準拠しているかどうかをより容易に言い当てることができる。
【００３６】
[0043]  これまで例示的な実施態様を説明してきたが、図８は、図１〜７のシステムのさまざまな構成要素をそれを用いて実現することができる例示的なコンピュータを示す。このコンピュータは、さまざまな汎用または専用コンピューティングハードウェア構成のうちの任意の構成とすることができる。使用することができるコンピュータのタイプのいくつかの例には、限定はされないが、パーソナルコンピュータ、ゲームコンソール（game console）、セットトップボックス（set top box）、ハンドヘルドまたはラップトップデバイス（例えばメディアプレーヤ、ノートブックコンピュータ、タブレットコンピュータ、セルラフォン、パーソナルデータアシスタント、ボイスレコーダ）、サーバコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、および上記のタイプのコンピュータまたはデバイスのうちの任意のタイプのコンピュータまたはデバイスを含む分散コンピューティング環境などが含まれる。
【００３７】
[0044]  図８を参照すると、例示的なコンピュータ８００は、少なくとも１つの処理ユニット８０２およびメモリ８０４を含む。このコンピュータは、複数の処理ユニット８０２を有することができる。処理ユニット８０２は、１つの処理コア（図示せず）または互いに独立に動作する複数の処理コア（図示せず）を含むことができる。このコンピュータには、グラフィックス処理ユニット８２０などの追加のコプロセッシングユニット（co-processing unit）も存在することができる。メモリ８０４は、（ダイナミックランダムアクセスメモリ（DRAM）デバイス、他のランダムアクセスメモリデバイスなどの）揮発性メモリ、（リードオンリーメモリ、フラッシュメモリなどの）不揮発性メモリ、またはこれらの２つの組合せとすることができる。図８ではこのメモリ構成が破線８０６によって示されている。コンピュータ８００は、限定はされないが、磁気的に記録されるディスクもしくはテープ、または光学的に記録されるディスクもしくはテープを含む、追加の（リムーバブルおよび／または非リムーバブル）ストレージを含むことができる。図８ではこのような追加のストレージが、リムーバブルストレージ８０８および非リムーバブルストレージ８１０によって示されている。図８のさまざまな構成要素は一般に、１つまたは複数のバス８３０などの相互接続機構によって相互接続される。
【００３８】
[0045]  コンピュータ記憶媒体は、アドレス指定可能な物理的な記憶位置にコンピュータによってデータを記憶し、そのような位置からコンピュータによってデータを取り出すことができる任意の媒体である。コンピュータ記憶媒体には、揮発性および不揮発性メモリ、ならびにリムーバブルおよび非リムーバブル記憶媒体が含まれる。メモリ８０４、８０６、リムーバブルストレージ８０８および非リムーバブルストレージ８１０は全てコンピュータ記憶媒体の例である。コンピュータ記憶媒体のいくつかの例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（DVD）もしくは光学的にもしくは磁気光学的に記録される他の記憶デバイス、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイスである。コンピュータ記憶媒体と通信媒体とは媒体の相互排除カテゴリである。
【００３９】
[0046]  コンピュータ８００はさらに、通信媒体を介してコンピュータが他のデバイスと通信することを可能にする通信接続８１２を含むことができる。通信媒体は通常、搬送波または物質を横切る他の輸送機構などの被変調データ信号を伝搬することにより、コンピュータプログラム命令、データ構造、プログラムモジュールまたは他のデータを、有線または無線物質を横切って伝送する。用語「被変調データ信号」は、信号中の情報を符号化し、それによってその信号の受信デバイスの構成または状態を変化させるような方式で設定または変更されたその特性のうちの１つまたは複数を有する信号を意味する。例として、通信媒体は、限定はされないが、有線ネットワーク、直接有線（direct-wired）接続などの有線媒体、ならびに音響、ＲＦ、赤外線および他の無線媒体などの無線媒体を含む。通信接続８１２は、通信媒体とインタフェースして、通信媒体を横切ってデータを送信し、通信媒体からデータを受信する、ネットワークインタフェースまたは無線送信器などのデバイスである。
【００４０】
[0047]  コンピュータ８００は、キーボード、マウス、ペン、カメラ、タッチ入力デバイスなどのさまざまな入力デバイス８１４を有することができる。ディスプレイ、スピーカ、プリンタなどの出力デバイス８１６を含めることもできる。これらのデバイスは全て当技術分野においてよく知られており、ここで詳細に論じる必要はない。さまざまな入力および出力デバイスが、マウス、キーボード、リモート制御などの入力デバイスによって強いられる人為的な制約なしにユーザがデバイスと「自然」に対話することを可能にする任意のインタフェース技術であるナチュラルユーザインタフェース（natural user interface: NUI）を実現することができる。
【００４１】
[0048]  ＮＵＩ法の例は、スピーチ（speech）認識、タッチおよびスタイラス認識、画面上および画面に隣接した位置におけるジェスチャ（gesture）認識、エアジェスチャ（air gesture）、頭および眼追跡、音声（voice and speech）、視覚、触覚、ジェスチャならびに機械知能に依存した方法を含み、タッチセンシティブディスプレイ（touch sensitive display）、音声認識、意図および目標理解（intention and goal understanding）、（立体カメラシステム、赤外線カメラシステム、他のカメラシステム、およびこれらのシステムの組合せなどの）デプスカメラ（depth camera）を使用した運動ジェスチャ検出、加速度計またはジャイロスコープを使用した運動ジェスチャ検出、顔認識、３次元ディスプレイ、頭、眼および視線（gaze）追跡、イマーシブ拡張現実（immersive augmented reality）および仮想現実（virtual reality）システムの使用を含むことができ、これらは全てより自然なインタフェースを提供し、さらに、電界感知電極を使用して脳活動を感知する技術（ＥＥＧおよび関連方法）の使用を含むことができる。
【００４２】
[0049]  これらのさまざまなストレージ８１０、通信接続８１２、出力デバイス８１６および入力デバイス８１４は、コンピュータの残りの構成要素とともに、ハウジング内にまとめることができ、または、コンピュータ上の入力／出力インタフェースデバイスを介して接続することができ、この場合、参照符号８１０、８１２、８１４および８１６は、デバイスに接続するためのインタフェース、または場合によりデバイス自体を示すことがある。
【００４３】
[0050]  コンピュータ上で動作する、上で説明した図１〜に記載されたシステムなどのシステムのそれぞれの構成要素（「モジュール」、「エンジン」などと呼ばれることもある）は、そのコンピュータの１つまたは複数の処理ユニット、およびこの１つまたは複数の処理ユニットによって処理される１つまたは複数のコンピュータプログラムを使用して実現することができる。コンピュータプログラムは、プログラムモジュールなど、コンピュータが実行可能な命令および／またはコンピュータによって解釈される命令を含み、それらの命令は、コンピュータ内の１つまたは複数の処理ユニットによって処理される。このような命令は一般に、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを定義し、これらは、処理ユニットによって処理されたときに、データに対する演算を実行するように処理ユニットに命令し、または、さまざまな構成要素もしくはデータ構造を実現するようプロセッサまたはコンピュータを構成するように処理ユニットに命令する。
【００４４】
[0051]  このコンピュータシステムは、通信ネットワークによってリンクされた複数のコンピュータによって演算が実行される分散コンピューティング環境で実施することができる。分散コンピューティング環境では、コンピュータプログラムが、ローカルコンピュータ記憶媒体とリモートコンピュータ記憶媒体の両方に位置することがある。
【００４５】
[0052]  その代わりに、またはそれに加えて、本明細書に記載されたさまざまな構成要素のうちの１つまたは複数の構成要素の機能は、少なくとも部分的に、１つまたは複数のハードウェア論理構成要素によって実行することができる。例えば、使用することができるハードウェア論理構成要素の例示的なタイプには、限定はされないが、フィールドプログラマブルゲートアレイ（Field-programmable Gate Array: FPGA）、プログラムスペシフィック集積回路（Program-specific Integrated Circuits: ASIC）、プログラムスペシフィックスタンダードプロダクト（Program-specific Standard Product: ASSP）、システムオンアチップシステム（System-on-a-chip system: SOC）、コンプレックスプログラマブルロジックデバイス（Complex Programmable Logic Device: CPLD）などが含まれる。
【００４６】
[0053]  添付の特許請求の範囲のプリアンブルにおける用語「製品」、「プロセス」、「マシン」および「組成物（composition of matter）」は、これらの用語の使用によって米国特許法第１０１条に定義された特許を受けることができる主題の範囲に含まれるとみなされる主題に、特許請求の範囲を限定することが意図されている。
【００４７】
[0054]  添付の特許請求の範囲に定義された主題は、必ずしも、上に記載された特定の実施態様だけに限定されないことを理解すべきである。上に記載された特定の実施態様は単に例として開示されたものである。
【図１】
2017517802.tif 000003
【図２】
2017517802.tif 000004
【図３】
2017517802.tif 000005
【図４】
2017517802.tif 000006
【図５】
2017517802.tif 000007
【図６】
2017517802.tif 000008
【図７】
2017517802.tif 000009
【図８】
2017517802.tif 000010
【手続補正書】
【提出日】平成27年11月11日(2015.11.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータのためのグラフィカルユーザインタフェースを実現するように前記コンピュータを構成するコンピュータプログラムコードを試験する方法であって、
実行された前記コンピュータプログラムコードが第１のデータを生成し、前記第１のデータをメモリに入れるような態様で、前記コンピュータプログラムをプロセッサを用いて実行することであって、前記第１のデータが、前記グラフィカルユーザインタフェース用のグラフィカル出力データをレンダリングする命令を含み、前記グラフィカル出力データが、前記コンピュータ上のアプリケーションのためのグラフィカルユーザインタフェース用の表示データであること、
前記グラフィカルユーザインタフェース用のレンダリングされたグラフィカル出力データに対する規則を示す第２のデータを受け取り、前記第２のデータをメモリに入れること、
前記第１のデータおよび前記第２のデータを前記プロセッサを用いて処理して、前記第１のデータ中の前記命令に従ってレンダリングされたグラフィカル出力データが、前記第２のデータによって示された前記規則に準拠しているかどうかを判定することであって、前記処理することが、オペレーティングシステムの表示マネージャによって実行されること、
レンダリングされた前記グラフィカル出力データが、準拠しているグラフィカル出力データを準拠していないグラフィカル出力データから可視的に区別するような態様で、ディスプレイ向けの前記グラフィカル出力データを、プロセッサを用いて、前記判定に基づいてレンダリングすること、ならびに
レンダリングされた前記グラフィカル出力データが、出力デバイス上で提示されるようにすること
を含む方法。
【請求項２】
前記グラフィカル出力データが、１つのフォント型の文字を含み、前記規則が、受入れ可能なフォント型を含む、請求項１に記載の方法。
【請求項３】
前記グラフィカル出力データが、１つのフォントサイズの文字を含み、前記規則が、受入れ可能なフォントサイズを含む、請求項１または２に記載の方法。
【請求項４】
前記グラフィカル出力データが、１つの色の文字を含み、前記規則が、受入れ可能な文字色を含む、請求項１から３のいずれかに記載の方法。
【請求項５】
前記グラフィカル出力データが、前記コンピュータのオペレーティングシステムのためのグラフィカルユーザインタフェース用の表示データである、請求項１から４のいずれかに記載の方法。
【請求項６】
前記命令が、前記コンピュータ上の２つ以上のアプリケーションから受け取られる、請求項１から５のいずれかに記載の方法。
【請求項７】
前記グラフィカル出力データが前記規則に準拠していない場合に、グラフィカル出力データをレンダリングする任意の命令に関する情報を記録することをさらに含む、請求項１から６のいずれかに記載の方法。
【請求項８】
処理することが、フォントファイルを使用して前記命令をレンダリングすることを含み、前記規則に対する準拠を前記ユーザに示すため、前記規則に準拠している一組のフォントサイズ、タイプおよび色に対するグリフがレンダリングされたときに、前記グリフが、準拠していないフォントサイズ、タイプおよび色に対する他のグリフとは可視的に異なるような態様で、前記規則に準拠している一組のフォントサイズ、タイプおよび色に対する前記グリフが１つの色でコード化される、請求項１から７のいずれかに記載の方法。
【請求項９】
処理することが、フォントファイルを使用して前記命令をレンダリングすることを含み、前記規則に準拠しているフォントに対するグリフが第１の色でコード化され、準拠していないフォントに対するグリフが、前記第１の色とは可視的に異なる第２の色でコード化されるような態様で、前記フォントファイルが、一組のフォントに対するグリフを定義する、請求項１から７のいずれかに記載の方法。
【請求項１０】
処理することが、準拠しているフォントを識別するためのルールを前記命令に適用することを含む、請求項１から７のいずれかに記載の方法。
【請求項１１】
１つまたは複数のコンピュータ記憶媒体と、
前記１つまたは複数のコンピュータ記憶媒体上に記憶されたコンピュータプログラム命令と
を含み、前記コンピュータプログラム命令が、コンピュータによって処理されたときに、請求項１から１０のいずれかに記載の方法を実現する
コンピュータプログラム製品。
【請求項１２】
１つまたは複数のプロセッサと、
データを記憶した１つまたは複数のコンピュータ記憶媒体であり、前記プロセッサとデータをやりとりするように接続された１つまたは複数のコンピュータ記憶媒体と
を備え、
前記１つまたは複数のプロセッサが、請求項１から１０のいずれかに記載の方法を実現するように構成された、
コンピュータシステム。
【国際調査報告】
2017517802.tif 000011
2017517802.tif 000012