(57)【要約】【課題】ＧＵＩの別の場所からのコンポーネントと出力をユーザーが同時に見られる拡大ソフトウェア・アプリケーションと方法を提供する。【解決手段】  オペレーティングシステムの内部メッセージをリッスンし、入力コントロールがフォーカスされるのを自動的に検出して入力コントロールに第１拡大ビューポートを設定する画面拡大ソフトウェアのフィーチャー。エンドユーザーがソフトウェアの入力コントロールとインタラクトするとき、これに応答する出力領域の変化を示すオペレーティングシステムのメッセージングを更にリッスンする。変化を検出すると、フォーカスが第１ビューポート内のまま、第１ビューポートと同時に第２拡大ビューポートがＧＵＩ上に表示される。エンドユーザーはインタラクト中の両方のコントロールの拡大表示（仮想電卓キーパッドのボタン等）を第１ビューポート内に、出力領域（計算結果のテキストボックス等）を第２ビューポート内に見られる。【選択図】図３
2018041066.tif 000002
【特許請求の範囲】
【請求項１】
以下のステップ：
グラフィック・ユーザー・インターフェースをディスプレイモニター上に表示するステップであって、該グラフィック・ユーザー・インターフェースは入力コントロールおよび対応する出力領域を有し、該入力コントロールおよび該出力領域はソフトウェア・アプリケーションに属し、該出力領域のコンテンツは、該入力コントロールとのエンドユーザーのインタラクションに応答して生成される、ステップ、
オペレーティングシステムと前記ソフトウェア・アプリケーションの間の、前記入力コントロールがフォーカスされていることを示すメッセージングを、インターセプトするステップ、
前記モニター上に、前記入力コントロールを示す第１ビューポートを第１拡大レベルで表示するステップであって、前記エンドユーザーは前記入力コントロールとインタラクトできるステップ、
前記入力コントロールとの前記エンドユーザーのインタラクションの結果として前記出力領域に表示された前記コンテンツが変化したことを示す、前記オペレーティングシステムと前記ソフトウェア・アプリケーションの間のメッセージングをインターセプトするステップ、および、
前記出力領域の前記コンテンツの変化の検出に応答して、該出力領域を表示する第２ビューポートを起動し、これによって、前記モニター上に、前記入力コントロールを表示する前記第１ビューポートと前記出力領域を表示する第２ビューポートを同時に表示するステップであって、前記出力領域は、前記入力コントロールとの前記エンドユーザーのインタラクションに応答して生成される前記コンテンツを表し、これにより、前記第１ビューポート内の前記入力コントロールがフォーカスに留まる、ステップ、
を含む、フォーカスされている入力コントロールおよび応答する出力領域の拡大ビューポートをディスプレイモニター上に表示されるグラフィック・ユーザー・インターフェース上に自動表示する方法。
【請求項２】
前記第２ビューポートを前記モニター上に表示する前記ステップが、前記第２ビューポートを２０から３，０００ミリ秒の範囲のアニメーション持続時間で表示内にスライドさせるステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記第２ビューポートが、前記入力コントロールとのエンドユーザーのインタラクションに応答した前記出力領域の変化に応答して、一時的に前記第１ビューポートにオーバーラップすることを特徴とする、請求項１に記載の方法。
【請求項４】
前記第１ビューポート内のマウスポインタの動きをモニターし、前記入力コントロールから所定の距離離れて移動する前記マウスポインタの場所に応答して、前記第１および第２ビューポートを閉じるステップをさらに含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記第２ビューポートの表示に応答して、前記第１ビューポートのサイズを縮小するステップをさらに含み、これによって、両方のビューポートが前記ディスプレイモニター上で同時に可視であることを特徴とする、請求項１に記載の方法。
【請求項６】
前記オペレーティングシステムから前記グラフィック・ユーザー・インターフェースを表示しているコンピュータモニターの最新の解像度を取得するステップ、
前記第１拡大レベルのもとで、前記入力コントロールと前記出力領域が前記第１ビューポート内で完全に可視であるか否かを計算するステップ、および、
前記入力コントロールと前記出力領域の両方が、前記グラフィック・ユーザー・インターフェース上で大き過ぎるか距離が離れ過ぎていて、前記第１ビューポート内で一緒に表示できない場合にだけ、前記第２ビューポートを表示するステップ、を更に含むことを特徴とする、請求項１に記載の方法。
【請求項７】
前記第１ビューポート内に前記入力コントロールと前記出力領域を両方表示している間に前記エンドユーザーによって拡大レベルが高くされ、高くされた拡大レベルが前記第１ビューポート内に前記入力コントロールと前記出力領域を同時に表示する能力を超えるのに応答して、前記入力コントロールを前記第１ビューポート内に表示し前記出力領域を前記第２ビューポート内に表示するステップを更に含むことを特徴とする、請求項６に記載の方法。
【請求項８】
前記第１ビューポート内に前記入力コントロールを表示し前記第２ビューポート内に前記出力領域を表示している間に前記エンドユーザーによって拡大レベルが低くされ、低くされた拡大レベルが前記第１ビューポート内に前記入力コントロールと前記出力領域を同時に表示する能力を満たすのに応答して、前記第２ビューポートを閉じ、前記入力コントロールおよび前記出力領域を前記第１ビューポート内に一緒に表示するステップを更に含むことを特徴とする、請求項６に記載の方法。
【請求項９】
入力コントロールと出力領域のルールの配列を作るステップであって、各ルールは、ソフトウェア・アプリケーションと少なくとも１つの入力コントロールと少なくとも１つの出力領域に割り当てられているステップ、
ソフトウェア・アプリケーションが前記ルール内で見つかる少なくとも１つの入力コントロールにフォーカスを置くのに応答してファイアされるオペレーティングシステムのイベントをモニターするステップ、
自動的に、前記入力コントロール上に第１ビューポートをセンタリングするステップ、
自動的に、前記出力領域のために第２ビューポートを表示するステップ、
さらに、前記入力コントロールからフォーカスが失われるときのためにオペレーティングシステムのイベントをモニターするステップ、および、
自動的に、前記入力コントロールのフォーカス喪失に応答して、前記第１および第２ビューポートを閉じるステップ、を更に含むことを特徴とする、請求項１に記載の方法。
【請求項１０】
拡大されていないグラフィック・ユーザー・インターフェース上で表示されるときの前記入力コントロールと前記出力領域の相対的場所と類似、協調する関係で、前記第１ビューポートと前記第２ビューポートをグラフィック・ユーザー・インターフェース上に表示するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項１１】
前記出力領域が表示された前記第２ビューポートだけをパンするキーボード・コマンドを割り当てるステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項１２】
方法を実行するためのコンピュータ実行可能な命令を有する１つまたは複数の持続的有形コンピュータ可読媒体であって、該コンピュータはオペレーティングシステムのもとで動作し、該オペレーティングシステムはディスプレイモニター上にグラフィック・ユーザー・インターフェースを表示し、該グラフィック・ユーザー・インターフェースは少なくとも１つの入力コントロールと少なくとも１つの出力領域を有し、該入力コントロールと該出力領域はソフトウェア・アプリケーションに属し、前記方法は前記ソフトウェア・プログラムから命令を出すことを含み、該命令は以下の命令：
前記オペレーティングシステムと前記ソフトウェア・アプリケーションの間の、前記入力コントロールがフォーカスされていることを示すメッセージングを、インターセプトする命令、
前記モニター上に、前記入力コントロールを示す第１ビューポートを第１拡大レベルで表示する命令であって、前記エンドユーザーは前記入力コントロールとインタラクトできる命令、
前記入力コントロールとの前記エンドユーザーのインタラクションの結果として前記ルールに割り当てられた前記出力領域に表示された前記コンテンツの変化を示す、前記オペレーティングシステムと前記ソフトウェア・アプリケーションの間のメッセージングをインターセプトする命令、および、
前記出力領域の前記コンテンツが変化したことの検出に応答して、該出力領域を表示する第２ビューポートを起動し、これによって、前記モニター上に、前記入力コントロールを表示する前記第１ビューポートと前記出力領域を表示する第２ビューポートを同時に表示する命令であって、前記出力領域は、前記入力コントロールとの前記エンドユーザーのインタラクションに応答して生成される前記コンテンツを表す命令、
を含む、媒体。
【請求項１３】
前記出力領域が単一の出力コントロールによって定義されることを特徴とする、請求項１１に記載の媒体。
【請求項１４】
前記単一の出力コントロールが、単一行テキストボックス・コントロール、複数行テキストボックス・コントロール、リッチテキスト・コントロール、リストボックス・コントロール、ドロップダウンリスト・コントロール、テーブル・コントロール、ビュレット付きリスト・コントロール、チェックボックスリスト・コントロール、ラジオボタンリスト・コントロール、リストビュー・コントロール、グリッドビュー・コントロールおよびチャート・コントロールからなるグループから選択されることを特徴とする、請求項１１に記載の媒体。
【請求項１５】
前記第２ビューポートが、前記入力コントロールとの前記エンドユーザーのインタラクションに応答した前記出力領域の変化に応答して、一時的に前記第１ビューポートにオーバーラップすることを特徴とする、請求項１１に記載の媒体。
【請求項１６】
前記第１ビューポート内のマウスポインタの動きをモニターし、前記入力コントロールから所定の距離離れて移動するマウスポインタの場所に応答して、前記第１および第２ビューポートを閉じる命令をさらに含むことを特徴とする、請求項１１に記載の媒体。
【請求項１７】
前記第２ビューポートの表示に応答して、前記第１ビューポートのサイズを縮小する命令をさらに含み、これによって、両方のビューポートが前記ディスプレイモニター上で同時に可視であることを特徴とする、請求項１１に記載の媒体。
【請求項１８】
前記オペレーティングシステムから前記グラフィック・ユーザー・インターフェースを表示しているコンピュータモニターの最新の解像度を取得する命令、
前記第１拡大レベルのもとで、前記入力コントロールと前記出力領域が前記第１ビューポート内で完全に可視であるか否かを計算する命令、および、
前記入力コントロールと前記出力領域の両方が、前記グラフィック・ユーザー・インターフェース上で大き過ぎるか距離が離れ過ぎていて、前記第１ビューポート内で一緒に表示できない場合にだけ、前記第２ビューポートを表示する命令を更に含むことを特徴とする、請求項１１に記載の媒体。
【請求項１９】
前記第１ビューポート内に前記入力コントロールと前記出力領域を両方表示している間に前記エンドユーザーによって拡大レベルが高くされ、高くされた拡大レベルが前記第１ビューポート内に前記入力コントロールと前記出力領域を同時に表示する能力を超えるのに応答して、前記入力コントロールを前記第１ビューポート内に表示し前記出力領域を前記第２ビューポートに表示する命令を更に含むことを特徴とする、請求項１８に記載の媒体。
【請求項２０】
前記第１ビューポート内に前記入力コントロールを表示し前記第２ビューポート内に前記出力領域を表示している間に前記エンドユーザーによって拡大レベルが低くされ、低くされた拡大レベルが前記第１ビューポート内に前記入力コントロールと前記出力領域を同時に表示する能力を満たすのに応答して、前記第２ビューポートを閉じ、前記入力コントロールおよび前記出力領域を前記第１ビューポート内に一緒に表示する命令を更に含むことを特徴とする、請求項２０に記載の媒体。
【請求項２１】
入力コントロールと出力領域のルールの配列を作る命令であって、各ルールは、ソフトウェア・アプリケーションと少なくとも１つの入力コントロールと少なくとも１つの出力領域に割り当てられている命令、
ソフトウェア・アプリケーションが前記ルール内で見つかる少なくとも１つの入力コントロールにフォーカスを置くのに応答してファイアされるオペレーティングシステムのイベントをモニターする命令、
自動的に、前記入力コントロール上に第１ビューポートをセンタリングする命令、
自動的に、前記出力領域のために第２ビューポートを表示する命令、
さらに、前記入力コントロールからフォーカスが失われるときのためにオペレーティングシステムのイベントをモニターする命令、および、
自動的に、前記入力コントロールのフォーカス喪失に応答して、前記第１および第２ビューポートを閉じる命令、を更に含むことを特徴とする、請求項１１に記載の媒体。
【請求項２２】
拡大されていないグラフィック・ユーザー・インターフェース上で表示されるときの前記入力コントロールと前記出力領域の相対的場所と類似、協調する関係で、前記第１ビューポートと前記第２ビューポートを前記グラフィック・ユーザー・インターフェース上に表示する命令を更に含むことを特徴とする、請求項１１に記載の媒体。
【請求項２３】
前記出力領域が表示された前記第２ビューポートだけをパンするキーボード・コマンドを割り当てるステップをさらに含む請求項１の方法のための命令を更に含むことを特徴とする、請求項１１に記載の方法。
【請求項２４】
方法を実行するためのコンピュータ実行可能な命令を有する１つまたは複数の持続的有形コンピュータ可読媒体であって、該コンピュータはオペレーティングシステムのもとで動作し、該オペレーティングシステムはディスプレイモニター上にグラフィック・ユーザー・インターフェースを表示し、該グラフィック・ユーザー・インターフェースは少なくとも１つの入力コントロールと少なくとも１つの出力コントロールを有し、該入力および出力コントロールはソフトウェア・アプリケーションに属し、前記方法は前記ソフトウェア・プログラムから命令を出すことを含み、該命令は以下の命令：
前記入力および出力コントロールに対応するルールエンジンを確立する命令であって、該ルールエンジンは、オペレーティングシステムの支援技術アプリケーション・プログラミング・インターフェースからのメッセージングとコミュニケーティブに結合され、該ルールエンジンは、予め識別された入力コントロールがフォーカスを受けるときを検出する命令、
自動的に、前記モニター上に前記入力コントロールを示す第１ビューポートを第１拡大レベルで表示し、これにより、エンドユーザーが前記入力コントロールとインタラクトできる命令、
前記オペレーティングシステムと前記ソフトウェア・アプリケーションの間の、前記ルールエンジンに割り当てられた前記出力領域のコンテンツが、前記入力コントロールとの前記エンドユーザーのインタラクションに応答して変化したことを示すメッセージングを、インターセプトする命令、
前記出力領域の前記コンテンツが変化したことの検出に応答して、該出力領域を表示する第２ビューポートを起動し、これによって、前記モニター上に、前記入力コントロールを表示する前記第１ビューポートと前記出力領域を表示する第２ビューポートを同時に表示する命令であって、前記出力領域は、前記エンドユーザーの入力に応答して生成される前記コンテンツを表す命令、
前記入力コントロールがフォーカスを失うときを、前記支援技術アプリケーション・プログラミング・インターフェースから検出する命令、および、
フォーカス喪失に応答して、前記第１および第２ビューポートの両方を自動的に閉じる命令、
を含む、媒体。
【請求項２５】
前記第１ビューポートのためにマウスポインタ境界を確立する命令、オペレーティングシステムのメッセージから前記エンドユーザーのマウスポインタの場所をモニターする命令、および、前記エンドユーザーによる前記マウスポインタ境界外へのマウスポインタの場所の移動に応答して自動的に前記第１および第２ビューポートを閉じる命令をさらに含む、請求項２６に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面拡大に関する。より詳細には、グラフィック・ユーザー・インターフェース（ＧＵＩ）上で、第１コントロールから第２コントロールへのフォーカスの追跡に基づき、複数の画面拡大ビューポートを自動的に生成することに関する。
【背景技術】
【０００２】
画面拡大アプリケーションは、低視力ユーザーの基本的便宜を目的として、画面のエリアを拡大するためにオペレーティングシステム上で実行されるソフトウェア・プログラムである。ＧＵＩ上に表示されるプログラムは、通常、ユーザーがインタラクトする、および／またはユーザーに対して出力を表示するコンポーネントである、コントロールを含んでいる。コンポーネントには、例えば、テキストボックス、ラジオボタン・ダイアログ、スクロールバー、チェックボックス、パネル、テキストラベル、イメージボタン等が含まれる。
【０００３】
ソフトウェア・アプリケーションは、低視力ユーザー、特に画面拡大ソフトウェア使用者を考慮せずに作成されていることが多い。拡大しない時には、ユーザーはグラフィック・ユーザー・インターフェースの画面エリア全体を見ることができる。しかし、本質的に、一度に拡大できるのはＧＵＩの一部だけである。拡大エリアの境界は、一般に、全画面に拡大されるＧＵＩの四角形エリアであるビューポートによって定義される。このため、拡大機能がオンの間、ユーザーには、ＧＵＩが部分的に見えなくなる。もし、ソフトウェア・アプリケーションとのエンドユーザーのインタラクションが全てＧＵＩの小さなエリア内に位置しているのであれば、拡大ソフトウェアがそのエリアにビューポートを設定することで、低視力ユーザーは効率的に作業することができる。
【０００４】
しかし、多くのソフトウェア・アプリケーションは、ユーザー入力コントロールと出力を一つのエリアに集約していない。このことが、低視力ユーザーにとって大きな問題となっている。低視力ユーザーは、ＧＵＩのうち拡大ビューの中にある側を操作することができるが、ユーザーが必要とする出力、結果または次のコンポーネントは、拡大されたビューポート外の別の場所にある。このため、ユーザーは、その新たな場所を見つけ出し、拡大ビューポートをその場所に再設定しなければならない。繰り返し使用される生産性アプリケーションに関しては、この状況は、低視力ユーザーの生産性に対して重大な不利益を生じさせ得る。例えば、表計算アプリケーションで作業中の低視力ユーザーが、スプレッドシート・インターフェースの最上部にあるテキスト領域に式を入力し、インターフェースの最下部にある一つのセルに表示される計算結果を見たい場合が考えられる。この例では、低視力ユーザーは、行ったり来たり交互に切り替える必要があるだろう。
【０００５】
この技術分野で必要とされているのは、ＧＵＩの別の場所からのコンポーネントと出力をエンドユーザーが同時に見られるようにＧＵＩ画面出力を自動的に修正する拡大ソフトウェア・アプリケーションと方法である。
【０００６】
しかし、本発明がなされた時点においては、当技術分野全体を見渡しても、当業者にとって、従来技術のこの欠点を克服する方法が明らかではなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
長年の課題でありながら現在まで満たされることのなかった、マルチビュー・ポート画面拡大ソフトウェアのニーズが、今、新規かつ有益で進歩性を備えた発明により満たされることとなった。
【課題を解決するための手段】
【０００８】
本発明は、画面拡大ソフトウェア用の生産性フィーチャーである。有効にされている場合、該フィーチャーは、フォーカスがサポートされたコントロールに移動すると、自動的に連動する。画面は２つのビューポートに分割され、第１ビューポートはフォーカスされたコントロールを表示し、第２ビューポートはこのコントロールの出力領域を表示する。例えば、フォーカスが検索編集ボックスに移動すると、この編集ボックスが第１ビューポートに表示され、最も一致する検索結果が第２ビューポートに表示される。これにより、入力エリアと出力エリアの間でビューポートをスクロールする必要がなくなり、生産性が向上する。表に、入力コントロール（第１ビューポート）と、対応する出力領域（第２ビューポート）の例を示す。
【０００９】
【表１】
2018041066.tif 000003
【００１０】
方法として実施する場合、本発明は、自動的に、フォーカス中の入力コントロールおよび応答する出力領域またはコンポーネントの拡大ビューポートを、ディスプレイモニターに表示されたグラフィック・ユーザー・インターフェースに表示する。該方法のステップには、入力コントロールがフォーカスされていることを示すオペレーティングシステムからのメッセージングのインターセプトを含む。これは、オペレーティングシステム自体のメッセージングにフックするかまたはＭＩＣＲＯＳＯＦＴ ＵＩＡまたはＭＳＡＡ等の支援技術ＡＰＩを使用することによって実行できる。本発明の一実施形態によれば、ルールエンジンは、入力コントロールをＧＵＩ上に表示する特定のソフトウェア・アプリケーションに基づいて検索すべき特定の入力コントロールのデータ・ストアを含む。データ・ストアは、また、入力コントロールとのインタラクションに応答して変化するＧＵＩ上の出力コントロール、コンポーネントまたは領域のＩＤを含んでいてもよい。
【００１１】
本発明の他の実施形態によれば、拡大ソフトウェアは任意の一般的な入力コントロールまたはコンポーネントを探し、そのコントロールとのエンドユーザーのインタラクションによって生じるイベントをモニターし、それによって影響を受ける他のコントロールの情報を取得する。例えば、テキストボックスへの文字入力が、リストボックスの状態に変化を生じさせる。本発明の本実施形態は、状態変化をインテリジェントにモニターすることにより、入力コントロールと出力コントロールの間の関連付けを動的に生成する。
【００１２】
次のステップは、入力コントロールのエリアの第１ビューポートを第１拡大レベルでモニター上に表示することを含み、これにより、エンドユーザーが入力コントロールとインタラクトすることが可能になる。第１ビューポートは最初にモニター全体を満たしてもよく、ＧＵＩのキャンバスエリア全体の一部に限られていてもよい。次に、本方法は、エンドユーザーの入力コントロールとのインタラクションに応答して出力領域が変化したことを示すオペレーティングシステムからのメッセージングをインターセプトする。最後に、本方法は、出力領域の第２ビューポートをモニター上に表示する。入力コントロールと出力エリアまたはコントロールの間の関係が予め分かっている場合には、第１ビューポートと第２ビューポートの両方が、フォーカスが入力コントロールに達した時点で、自動的に同時に表示されてもよい。
【００１３】
エンドユーザーは、最初に、第１ビューポートがディスプレイ全体を覆うことを望むかもしれない。エンドユーザーが入力コントロールとインタラクトすることによって出力領域または出力コントロールの状態を変化させるとき、有益な視覚的インジケータは、フェードイン、スライドインのようなアニメーションまたは他の視覚効果によって第２ビューポートを導入することである。第２ビューポートは、入力コントロールとのエンドユーザーのインタラクションに応答する出力領域の変化に応答して、一時的に第１ビューポートとオーバーラップしてもよい。
【００１４】
マウスポインタの動きが第１ビューポート内でモニターされ、マウスポインタの場所が入力コントロールから所定の距離移動するのに応答して、第１および第２ビューポートが閉じられ、拡大ソフトウェアは、自動的にデュアルビュー・モードを終了する。本発明の一実施形態によれば、第１ビューポートのサイズが第２ビューポートの表示に応答して縮小され、これにより、両方のビューポートを同時にディスプレイモニター上で見ることができる。本発明は、関連する複数のコントロールを第１ビューポートに表示可能であるかそれとも第２ビューポートが必要であるかを決定するロジックを含んでいる。これは、グラフィック・ユーザー・インターフェースを表示しているコンピュータモニターの現在の解像度をオペレーティングシステムから読み出し、第１拡大レベルにおいて入力コントロールと出力領域が第１ビューポート内で全て見られるか否かを計算し、最後に、入力コントロールと出力領域の両方が、第１ビューポート内に一緒に表示するには大き過ぎるかまたはグラフィック・ユーザー・インターフェース上で距離が離れ過ぎている場合にだけ、第２ビューポートを表示することによって実行される。
【００１５】
拡大ソフトウェアを操作する低視力ユーザーは、頻繁に拡大レベルを変更する。本発明の一実施形態は、入力コントロールと出力領域の両方を第１ビューポート内に表示している間にエンドユーザーが拡大レベルを高くするのに応答して動作する。高くされた拡大レベルが、入力コントロールと出力領域を第１ビューポート内に同時に表示する能力を超過した場合、アプリケーションは、入力コントロールを第１ビューポートに、出力領域を第２ビューポートに表示する。
【００１６】
同様に、エンドユーザーは、入力コントロールを第１ビューポートに、出力領域を第２ビューポートに表示している間に、拡大レベルを下げることもある。本発明では、入力コントロール・エリアと出力コントロール・エリアの大きさをモニターし、可能であれば、第２ビューポートが閉じられ、入力コントロールと出力領域が第１ビューポートに一緒に表示される。
【００１７】
ルールエンジンが、入力コントロールと出力領域のルールの配列を作り出すことによって本発明の画面拡大フィーチャーの動作を指令し、各ルールがソフトウェア・アプリケーション、少なくとも１つの入力コントロールおよび少なくとも１つの出力領域に割り当てられる。拡大ソフトウェアは、通常、オペレーティングシステム・ソフトウェアの起動に伴って、自身をメモリ内にロードし、第１ビューポートが有効にされる。１×拡大では、メモリ内に拡大ソフトウェアがあってもなくてもＧＵＩの外見に殆ど差はない。拡大ソフトウェアは、ルール上に見つかる少なくとも１つの入力コントロールにソフトウェア・アプリケーションがフォーカスを置くのに応答してファイアされる（ｆｉｒｅｄ）オペレーティングシステムのイベントをモニターする。拡大ソフトウェアは、その後、直ちにまたは出力検出時（例えばテキストの変化時）に、自動的に、出力領域のために第２ビューポートを起動する。拡大ソフトウェアは更に、フォーカスが入力コントロールから失われるときに備えてオペレーティングシステムのイベントをモニターし、入力コントロールのフォーカス喪失に応答して自動的に第２ビューポートを削除する。明確にするために、本発明が拡大ソフトウェアの一つの新規な「モード」（本明細書中では「SDVモード」と称する）と見なされ得ることを言っておかなければならない。SDVモードのためのトリガーは、所定の入力コントロール上のフォーカスであり、これに対する応答は、自動的に画面を２つ（またはそれ以上）に分割して第２ビューポートを表示することである。SDVモードは、通常、エンドユーザーのインタラクションによってフォーカスが入力コントロールから取り除かれるとき、例えば、新たなコントロールにタブ移動するときや、マウスポインタを入力コントロールからある距離を超えて移動させるときに、終了する。SDVモードの終了によって、第2ビューポートは自動的に閉じられるかまたは隠される。
【００１８】
第２ビューポートの位置決めは、入力コントロールに対する、出力エリアまたは出力コントロールの類似、協調する相対関係によって決定することができる。例えば、左−右、上−下等である。本発明の一実施形態においては、特別なキーボード・コマンドにより、出力領域が表示されている第２ビューポートだけをパンするように操作する。その他の場合、フォーカスは第１ビューポート内に留まる。
【００１９】
本発明をより良く理解するため、以下、添付図面を参照しながら詳細に説明する。
【図面の簡単な説明】
【００２０】
【図１】入力コンポーネントと出力領域を示す、拡大されていない状態のデスクトップのグラフィック・ユーザー・インターフェースの概念図。
【図２】全デスクトップＧＵＩの非拡大表示と、拡大された入力コンポーネント周辺エリアの第１ビューポートの両方を示す、デスクトップのグラフィック・ユーザー・インターフェースの概念図。
【図３】全デスクトップＧＵＩの非拡大表示と、第１ビューポート内の入力コンポーネント・エリアの拡大表示、拡大された出力領域を表示する第２ビューポートを示す、デスクトップのグラフィック・ユーザー・インターフェースの概念図。
【図４】全デスクトップＧＵＩの非拡大表示と、第１ビューポート内の出力領域エリアの拡大表示、拡大された入力コンポーネントを表示する第２ビューポートを示す、デスクトップのグラフィック・ユーザー・インターフェースの概念図。
【図５】全デスクトップＧＵＩの非拡大表示と、第２ビューポート内にレンダリングされた出力領域コンポーネントを含む拡大表示との両方を示す、デスクトップのグラフィック・ユーザー・インターフェースの概念図。
【図６】全デスクトップＧＵＩの非拡大表示と、第２ビューポート内にスライディング・アニメーションによってレンダリングされた出力領域コンポーネントを含む拡大表示との両方を示す、デスクトップのグラフィック・ユーザー・インターフェースの概念図。
【図７】全デスクトップＧＵＩの非拡大表示と、第１ビューポート内の入力コンポーネント・エリアの拡大表示、拡大された第１出力領域を表示する第２ビューポート、拡大された第２出力領域を表示する第３のビューポートを示す、デスクトップのグラフィック・ユーザー・インターフェースの概念図。
【図８】ルールエンジンに両方のオブジェクト（例えば入力コンポーネントと出力領域または出力コンポーネント）を表示させるイベント・トリガリングを示すフローチャート。
【図９】第２または関連オブジェクトの場所またはサイズを変更させる可能性のある第１または入力オブジェクト内の第２イベントの処理を示すフローチャート。
【図１０】自身のサイズまたは場所を変更させる、第２または関連オブジェクト内のイベントの処理を示すフローチャート。
【図１１】第２または関連オブジェクトを第２ビューポート内にレンダリングする決定を示すフローチャート。
【図１２】本発明の１実施形態による、ルールエンジン、拡大エンジン、スクリーン・リーダーおよびアプリケーション・ハンドラーの間のメッセージングの流れを示すダイアグラム。
【図１３】本発明の１実施形態による、設定を行うためのモーダル・ダイアログ・インターフェース。
【発明を実施するための形態】
【００２１】
ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳブランドのオペレーティングシステムおよびＷＩＮＤＯＷＳアプリケーションで作業中、ユーザーは、２つ以上のオブジェクトを同時に見る必要がある状況に直面するだろう。例えば、以下のような状況である。
１）検索編集ボックスと検索された場所。
２）スペルチェック・コントロールとドキュメント内のスペルミスされたテキスト。
３）スプレッドシートのセルと、その背後の数式についての情報。
４）スクリーンキーボードとテキスト入力を受け取るウィンドウ。
５）電卓入力ボタンと計算結果領域。
６）Ｓｋｙｐｅ入力領域とＳｋｙｐｅメッセージ履歴。
７）Ｑｕｉｃｋ Ｂｏｏｋｓの顧客リスト、顧客情報と取引情報。
８）Eメールの受信トレイとプレビューウィンドウ。
【００２２】
非拡大表示においては、ある場所を見てから他の場所を見ることは容易である。オブジェクトが互いに近い場合には、低拡大レベルにおいても容易にこのようにできるかもしれないが、オブジェクトが互いに離れている場合は、２倍拡大のエンドユーザーにとってさえも、明らかな不都合が生じる。全ての場所を見るために、ユーザーは、一つのオブジェクトから他のオブジェクトへ拡大表示を行ったり来たりスクロールする必要があるだろう。第１のオブジェクトは一般的にはユーザーがインタラクトする入力オブジェクトであり、入力オブジェクトによって、関連オブジェクトである他のオブジェクトの出力が操作される。
【００２３】
複数の距離の離れた場所の間をスクロールする必要があるという不都合を解消するために、拡大ソフトウェアは状況を識別して関連オブジェクトを配置できる必要がある。一つの可能な実装は、フォーカスおよび類似のイベントによってトリガーされるルールエンジンである。フォーカスが変更されるとルールエンジンは一致するオブジェクト（例えば、検索編集コントロール）をルールセット内で探す。一致するオブジェクトが見つかると、ルールエンジンは関連オブジェクト（例えば検索されたテキストの場所）を探す。
【００２４】
ルールエンジンは、関連オブジェクトの場所またはサイズをコントロールしている全てのイベントについてトリガーされる必要がある。イベントのモニターは入力および出力オブジェクトのタイプに依存する。それには状態変化イベントおよびテキスト変更イベントが含まれていてもよい。全てのオブジェクトの場所がわかっている状態で、全てを見るためのサポートは、拡大レベルを考慮に入れなければならない。非拡大または非常に低拡大で、両方のオブジェクトが同じ拡大ビュー内に表示されている限り、おそらく、強調（例えばフレーム）だけを、関連オブジェクト（例えば、検索されたテキスト）の周りにレンダリングさせるべきであろう。
【００２５】
中拡大レベルで、もはや全てのオブジェクトを同時に拡大表示内で見られない場合、関連オブジェクト（検索されたテキスト）を表示するためには、第１オブジェクト（検索編集コントロール）と一緒に第２ビューポートを使用しなければならない。同時に入力操作の対象となり得るのは１つのビューポートだけであるので、どちらのオブジェクトをメインの（アクティブな）ビューポートに表示し、どちらのオブジェクトを第２の（非アクティブな）ビューポートに表示するかを切り替えるための方法が備えられている。この方法はジェスチャーでもよいし、キーの組み合わせなどでもよい。
【００２６】
高拡大レベルで、画面上に全てのオブジェクトを同時に表示できない場合には、２つのオブジェクト間を切り替え、一度に一つずつ表示するためのコマンドが備えられる。ルールエンジンは、その最もシンプルな形式では、静的なルールのセットとして実装される。より進歩した実装においては、ユーザーが、コンフィギュレーション・メカニズムとポインティングを第１オブジェクトおよび関連オブジェクトに関連付けることにより、ルールを追加する。
【００２７】
関連オブジェクトは、ユーザーがそれらにスクロールすると拡大されるのと同じ方法で表示される。視覚的フレームのレンダリングだけがオブジェクトの周りに追加されて、このオブジェクトが画面のここで見られているだけで実際には別の場所にあることをユーザーに知らせる。
【００２８】
場所が変わっている状況をユーザーに明確にわからせるための一つの代替方法としては、関連オブジェクトを第２ビューポート内に新たにレンダリングする方法がある。背景色、文字表示色、フォントはユーザーが選択可能でもよく、関連オブジェクトのコンテンツはこれらの選択を用いてレンダリングされることになる。第２ビューポートの初期表示は、いくつかの距離の離れたオブジェクトを同時に見ているエンドユーザーが混乱する可能性を低減するためにアニメーションを使用する。可能なアニメーションとしては、スライドイン、ズームアップ、フェードインなどがある。
【００２９】
（オペレーティングシステムのメッセージのインターセプト）
【００３０】
ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティングシステムは、メッセージの形でウィンドウプロシジャーに入力を渡す。メッセージは、システムとアプリケーションの両方で生成される。システムは、例えばユーザーがキーボードを押したとき、マウスを動かしたとき、スクロールバーなどのコントロールをクリックしたときのような入力イベントごとに、メッセージを生成する。システムはまた、アプリケーションがシステムのフォント資源のプールを変更するときや、そのウィンドウの一つをサイズ変更するときなど、アプリケーションによってもたらされるシステムの変化に応答してメッセージを生成する。アプリケーションは、それ自身のウィンドウに指令してタスクを実行させるための、または、他のアプリケーション内のウィンドウと通信するためのメッセージを生成できる。フォーカス・イベントは、コンポーネントがフォーカスされたときやフォーカスを外されたときはいつでもファイアされる。このことは、フォーカスの変化がマウスを通じてであっても、キーボードを通じてであっても、プログラムによるものであっても、当てはまる。
【００３１】
本発明は、（低視力ユーザーを支援する他の多くのフィーチャーの間で）グラフィック・ユーザー・インターフェースの選択エリアを拡大するだけでなく、コンポーネントがフォーカスされているか（例えば、アクティブでエンドユーザーの入力を受け付けているか）を決定するためにオペレーティングシステムとアプリケーションの間でやり取りされるメッセージをリッスンする画面拡大ソフトウェア・アプリケーションである。
【００３２】
（第２ビューポートのフィーチャー）
【００３３】
本発明の第一実施形態においては、第２ビューポートは一つのデータソースだけを有する。第２ビューポートは第１ビューポートの拡大設定を使用して表示される。第２ビューポートは、入力および出力領域の相対的場所に応じて、入力コントロールの上または下に表示される。第２ビューポートは、一実施形態においては、画面の半分より大きくはない。第２ビューポートは、頂部（または底部）からスライドインしてもよい。第２ビューポートは、フェードインまたはフェードアウトしてもよい。第２ビューポートは、第１ビューポートから区別されるための可視ボーダーを備えていてもよい。エンドユーザーは、第２ビューポートのコンテンツを、コンテンツをアクティブにすることなしにスクロールできる。
【００３４】
（いつ第２ビューポートを表示するか）
【００３５】
第２ビューポートは、サポートされたシナリオがフォーカスされたときに表示されてもよい。第２ビューポートがそのシナリオ内で表示されるとき、２つの境界条件に依存して表示される。
１）入力コントロールと出力領域が単一のビューポート内で完全に見える場合には、第２ビューポートは必要ない。これは、一般に、低拡大レベルの場合である。オプションとして、低拡大レベルであっても、第２ビューポートが表示されてもよい。
２）入力コントロールと出力領域を有する２つのビューポートをオーバーラップせずに表示できない場合には、第２ビューポートは表示されない。これは、一般に、高拡大レベルの場合である。
【００３６】
第２ビューポートを表示するべきか否かの計算は、いずれかの入力コントロール中の最も大きなテキストと出力コントロール中のテキストの平均サイズに基づいて行われる。第２ビューポートを表示するべきか否かの計算は、さらに、いずれかの入力コントロールと、可能性のあるいずれかの出力オブジェクト／テキストとの間の最大距離に基づいて行われる。これら計算は全て、フィーチャーのための決定を導くルールエンジンによって行われる。第２ビューポートが表示されない場合は、エンドユーザーにシナリオについて知らせるため、視覚、聴覚または触覚的指示が示される。
【００３７】
（初期表示）
【００３８】
ユーザーが第２ビューポートを必要とするシナリオに入ったときに、第２ビューポートがスライドインして表示されてもよい。第１ビューポートは、この時はサイズが縮小されているので、入力コントロールが確実に全て見えるようにするために、第１ビューポートのコンテンツを調節する必要があるかもしれない。これは、第２ビューポートと同期してスライドさせることによって可能である。
【００３９】
（拡大レベルの変更）
【００４０】
第２ビューポートが表示されていない状態で、ユーザーが、第２ビューポートの表示が必要なレベルまで拡大レベルを上げた場合、第２ビューポートがスライドインして表示されることになる。第２ビューポートが表示されている状態で、ユーザーが、第２ビューポートの表示がもはや不可能なレベルまで拡大レベルを上げた場合、第２ビューポートは表示からスライドアウトするべきである。第２ビューポートが表示されている状態で、ユーザーが、第２ビューポートがもはや必要ないレベルまで拡大レベルを下げた場合、第２ビューポートは表示からスライドアウトするべきである。
【００４１】
（可変な出力場所）
【００４２】
出力場所が可変である場合、例えば、ＭＩＣＲＯＳＯＦＴ  ＷＯＲＤのテキスト検索の場合、ビューポートの可視性は、出力領域の場所のうち最も外側となる可能性のある場所によって決定されるべきである。これは、ユーザーが検索結果を順に追っていくときに、第２ビューポートのスライドイン、スライドアウトを避けるためである。第２ビューポートのコンテンツはこのシナリオでは変化しているが、その場所、サイズまたは拡大レベルは変化しない。ソースの場所が変化していても、第２ビューポートは表示からスライドアウトするべきではない。
【００４３】
（フォーカス追跡）
【００４４】
フォーカスがＳｍａｒｔ  Ｄｕａｌ  Ｖｉｅｗ（スマート・デュアル・ビュー；ＳＤＶ）シナリオを定義する入力コントロールのグループ内に移動させられると、ＳＤＶモードに入る。フォーカスが入力エリア（検索編集ボックス、検索ボタンなど）に属するコントロール内に移動させられると、第１ビューポートがフォーカスを追跡し、ＳＤＶモードがアクティブな状態が継続する。フォーカスが入力コントロールのグループ外に移動すると、ＳＤＶモードが終了する。
【００４５】
（ＳＤＶモードにおけるマウス追跡）
【００４６】
マウスが入力コントロールの境界領域内に移動させられると、第１ビューポートがマウスを追跡し、ＳＤＶモードがアクティブな状態が継続する。マウスが入力コントロールの境界領域外に移動させられると、ＳＤＶモードがゆっくりと終了する。マウスがどれだけ遠く離れたかに応じて、第２ビューポートがより多くスライドアウトし最後には消える。第２ビューポートは、マウスが入力コントロールの境界領域に戻ってきたときに再度現れることになる。第２ビューポートが表示された状態でマウスがその表示エリアに移動させられると、同じオブジェクトの二重表示を減らすため、第２ビューポートは、より速やかにスライドアウトする。
【００４７】
（Ａｌｔ＋ＣＡＰＳＬＯＣＫ＋Ａｒｒｏｗ Ｋｅｙｓ）
【００４８】
第１ビューポートではなく第２ビューポートをパンするために、パン・ビューポート・コマンドが構成されてもよい。
【００４９】
（タッチ・サポート）
【００５０】
アクティブなビューポートとは独立に、３本指がどのエリアにあるかに依存して（人差し指ダウン（ｆｉｒｓｔ  ｆｉｎｇｅｒ  ｄｏｗｎ）ルール）、非アクティブなビューポートのコンテンツをスクロールできる。高拡大レベルで第２ビューポートが表示されていない場合には、新たなスワイプ・コマンドによって入力場所と出力場所の間を切り替える。
【００５１】
（中央揃え）
【００５２】
中央揃えの場合、１つの選択肢は、第２ビューポートを表示せず、その代わりに出力結果を一時的に示すホットキーを使用することである。
【００５３】
（プログラム・エコー）
【００５４】
出力領域の変化をアナウンスするオプションが備えられている（例えば、スペルミスされた語を含む文）。さらに、入力コントロールのためのプログラム・エコーを制御するためのオプションが存在する。両者がオンにされると、一方が他方に割り込む場合がある。例えば、編集コントロール内のタイピング・エコーは、検索結果の出力によって割り込まれる場合がある。「Ｓａｙ ｏｕｔｐｕｔ ｔｅｘｔ（出力テキスト読み上げ）」コマンド（例えばキーストロークの組み合わせ）は、出力領域内のテキストをアナウンスする。
【００５５】
（ウィンドウのズーム）
【００５６】
単一モニター・モードでは、このフィーチャーはフル・ズーム・ウィンドウ型のために機能する。ユーザーがスプリット（ｓｐｌｉｔ）、ドックド（ｄｏｃｋｅｄ）、レンズ（ｌｅｎｓ）またはライン（ｌｉｎｅ）を実行すると、このフィーチャーは利用できなくなり、灰色にされる。マルチ・モニター・モードではこのフィーチャーは任意のクローン（ミラー、１×）および独立ビュー（ローカルおよびグローバル）のために機能する。
【００５７】
（ＳＤＶモードの終了）
【００５８】
それまで第２ビューポートが表示されていた場合は、第２ビューポートがスライドアウェイし、インジケータがオフになる。
【００５９】
（コマンド）
【００６０】
次のコマンドが備えられている。「Ｓｍａｒｔ  Ｄｕａｌ  Ｖｉｅｗの切り替え」（デフォルト：Ｃｔｒｌ＋Ｓｈｉｆｔ＋２）。第２ビューポートが表示されている場合は、それが隠されて、システムが、「スマート・デュアル・ビュー・オフ」とアナウンスする。第２ビューポートが隠されている状態から見える状態にされた場合には、システムは「スマート・デュアル・ビュー有効」とアナウンスする。１つのビューポートだけが表示可能である場合、このコマンドが、入力領域と出力領域の表示の間の切り替えを行う。
【００６１】
「出力を一時表示」する状態を引き起こすためには、キーストローク・コマンド（ｃｔｒｌ＋ｓｈｉｆｔを１秒間長押し）が実行される。第２ビューポートが表示されていない場合、キーが放されるまで第２ビューポートが見えるようになる。
【００６２】
（その他の実施形態）
【００６３】
第２ビューポートは、フリーズ・ウィンドウとして実装されてもよい。マウスまたはフォーカスを入力コントロール境界外に移動して第２ビューポートが自動的に削除されるとき、デスクトップのスペースのいくらかを占めてもよい。フリーズ・ウィンドウは、低拡大レベルにおける比較的小さなサイズの第２ビューポートの表示にとって利点がある。
【００６４】
ルールエンジンは、システムに入ってくる全てのイベントをコンシュームしてもよい。イベントの中には、ルールエンジンのために生成されるだけのものがあってもよい。入力コントロールがフォーカスを受けるやいなや、ＳＤＶ状態に入ることになる。入力コントロールのグループのために境界四角形が与えられる。フォーカスが入力コントロール外に移動すると、終了イベントがファイアされる。出力結果が最初に現れたときと結果が変化したときに、イベントがファイアされる。境界四角形は出力結果の場所として可能性のある場所全てに与えられる。
【００６５】
本発明の別の実施形態においては２つ以上の出力領域が許可されている。例えば、ＱＵＩＣＫＢＯＯＫＳの顧客リストボックス内に移動するとき、顧客リストには顧客情報と取引情報が含まれている。一実施形態においては２つ以上の入力コントロールが許可されている。例えば、スクリーンキーボードは、フォアグラウンドなアプリケーション内の編集コントロールへの入力を行うためのキーと予測／候補を含む。一実施形態においては、特定のフォント、テキストおよび背景色を使用して出力コンテンツをレンダリングするオプションを備えていてもよい。他の実施形態においては、入力エリアおよび出力エリア上をクリックすることによって、より多くのＳｍａｒｔ  Ｄｕａｌ  Ｖｉｅｗエリアを設定することを、エンドユーザーに許可してもよい。これは、静的出力場所に最も適している。本発明の一実施形態においては、高拡大レベルで入力コントロールと出力コントロールの両方を同時に表示できない場合に、入力コントロールと出力コントロールを切り替えるための画面上のコントロールを備えていてもよい。また別の実施形態においては、低拡大レベルで、入力領域および出力領域の周りに強調をレンダリングするオプションを備えていてもよい。最後に、また別の実施形態においては、マルチモニター設定において第２モニター上に第２ビューポートを表示することを、エンドユーザーに許可する。
【００６６】
図１を参照すると、「Demo Application（デモアプリケーション）」と名付けられた概念的ソフトウェア・アプリケーション・インターフェースが表示されている。本明細書においては、画面四角形１０を画定する非拡大ダイアログボックスは最大表示状態で、エンドユーザーのディスプレイモニターの全エリアを満たしているものと仮定する。例えば、１０８０ｐのディスプレイモニターであれば水平方向に１９２０ピクセル、垂直方向に１０８０ピクセルを示すことになる。７２０ｐのディスプレイモニターであれば水平方向に１２８０ピクセル、垂直方向に７２０ピクセルを示すことになる。このアプリケーションで使用されている図は概念図であり、必ずしも何らかの特定のディスプレイ仕様の縦横比に対応している訳ではない。図１においては、入力コンポーネント２０が画面四角形１０の左上領域に配置されている。本実施例においては、入力コンポーネント２０は、エンドユーザーが顧客データベース検索の目的で（一般にはキーボードで）英数字のテキストを入力する、テキストボックス・コントロールである。同じ画面四角形１０内において、デスクトップ・インターフェースのずっと右側に、出力コントロールまたは出力コンポーネント３０が配置されている。本実施例における出力コンポーネント３０は、ヘッダと３行の顧客名の入ったリストボックスである。入力コンポーネント２０は、エンドユーザーのインタラクションを得るためにフォーカスされるいかなる他のタイプのＧＵＩコンポーネントまたはウィジェットであってもよいことに注意するべきである。出力コンポーネント３０は、入力コンポーネント２０とのインタラクションに応答して新たなコンテンツが生成する、ＧＵＩ上のコーディネート場所（ｃｏｏｒｄｉｎａｔｅ ｌｏｃａｔｉｏｎｓ）のような出力領域を含むことが、更に意図されている。出力領域の例として、エンドユーザーによる検索ダイアログのテキストボックス（例えば入力コンポーネントまたは入力コントロール）とのインタラクションに応答してハイライトされたドキュメント内のテキストを含んでもよい。入力コントロールと入力コンポーネントは、互換可能に使用されてもよい。出力コントロール、出力コンポーネント、出力領域、（入力コントロールに関する）関連オブジェクトは、互換可能に使用されてもよい。図１に示されるように、入力コンポーネント２０と出力コンポーネント３０はどちらも非拡大画面上に表示されている。どちらもクリップされていないのに完全に画面上に見えているのであれば、両方のオブジェクトを取り囲む境界四角形４０は非拡大画面四角形より小さくなければならない。
【００６７】
図２は、非拡大画面四角形１０を上に、入力コンポーネント２０の拡大表示を示す拡大表示５０を下に示している。拡大表示においては、拡大レベルが上がるにつれて、表示可能なソース四角形２５が小さくなる。ある点において、境界四角形４０がソース四角形２５より大きくなり、もはや表示を再配置しなければ二つのオブジェクトを単一表示内に表示できなくなる。
【００６８】
出力コンポーネント３０または関連オブジェクトの場所をソースとして有し第１ビューポート５０の上に構成される図３の第２ビューポート６０を用いることにより、両方のオブジェクトを同一ビューポート内に表示することが可能である。
【００６９】
図４に示す本発明の一実施形態においては、エンドユーザーが、どちらのオブジェクトがメイン５０内で、どちらが第２ビューポート７０内であるかを切り替えるコマンドを出すことができる。これにより、ユーザーは、出力コンポーネント３０または関連オブジェクトとインタラクトすることができる。
【００７０】
図５においては、出力コンポーネント３０のソースの場所が、その場所内のコンテンツ、具体的にはテキストを決定するのに使用されている（オフスクリーン・モデルまたは例えばOCRを使用）。コンテンツは、カスタムのバックグランドおよびフォアグランドのスタイルおよびフォントを用いて第２ビューポート６０内にレンダリングされる。
【００７１】
図６においては、入力コンポーネント２０（または入力オブジェクト）がフォーカスを受けた後に、出力コンポーネント３０が、アニメーション軌跡８０を用いて表示される。この図においては、アニメーション軌跡８０は、第２ビューポート６０を画面の右側からその最終的場所にスライドさせている。他のアニメーションには、フェードイン、ズームアップなどが含まれる。
【００７２】
図７においては、２つの出力コンポーネント３０、９０のために、２つの第２ビューポート６０、９５がそれぞれ表示されている。これらの２つの出力コンポーネントは、拡大表示内で入力コンポーネント３０とともに表示できる。図示された例は、エンドユーザーが、入力コンポーネント２０内で、テキスト文字列「acme」を入力したところである。これにより会社データベースに問い合わせが行われ、リストボックス出力コントロール３０が１つのレコード「Acme Corp.」にフィルタされる。その結果に応答して、第２出力コンポーネント９０が、別のリストボックスの形式で、「Acme Corp.」に関係する取引項目に関する問い合わせに答える。
【００７３】
図８に示す本発明の一実施形態の論理ダイアグラムにおいては、ルールエンジンは常にイベントによってトリガーされなければならない（１００）。最もわかりやすいイベントは、フォーカス・イベントであるが、状態変化およびテキスト変化イベントのような他のイベントもモニターする必要がある場合がある。イベントは、特定のオブジェクトに向けてトリガーされる。多くの場合、この第１オブジェクトは何らかの入力コントロールである。ルールエンジンは、この特定のオブジェクトのためのルールを検索する必要がある（１１０）。特定のオブジェクトのためのルールが見つかった場合（１２０）、ルールエンジンは、関連オブジェクト（例えば出力コンポーネントまたは出力領域）およびこのオブジェクトの画面上の場所を見つけるためのデータおよび／またはコードを含んでいる必要がある。関連オブジェクトが見つかり（１４０）、画面上の場所とサイズがわかると、拡大された第２ビューポートが生成される必要がある（１６０）。第２ビューポートは、関連オブジェクトの画面上の場所をソースとして用い、拡大ビューポート内に、第１または入力オブジェクトとともに配置される必要がある。
【００７４】
図９においては、第２または関連オブジェクトが最初に識別された後に、第２または関連オブジェクトのサイズまたは場所が変化した場合（１８０）、第２ビューポートを調節できるように（２００）、第１または入力イベント内のイベントがモニターされている（１７０）。
【００７５】
図１０においては、第２または関連オブジェクトが最初に識別された後に、第２または関連オブジェクトのサイズまたは場所が変化した場合、第２ビューポートを調節するように（２２０）、第２または関連オブジェクト内のイベントがモニターされている（２１０）。
【００７６】
図１１においては、一旦、第２または関連オブジェクトが識別されると、第２ビューポートおよびその中の第２または関連オブジェクトをレンダリングするか否か、またどのようにレンダリングするかを決定する必要がある。第１の決定（２３０）は、第２または関連オブジェクトが既に第１ビューポート内で第１または入力オブジェクトとともに見えている場合は、第２ビューポートを表示しないように決定される必要がある。これは、一般に、低拡大レベルの場合である。第２の決定（２５０）は、第２ビューポートが何らかの形で第１または入力オブジェクトにオーバーラップするか第１または入力オブジェクトを見えなくする場合、第２ビューポートを表示しないように決定される必要がある。これは、一般に、高拡大レベルの場合である。第３の決定（２７０）は、第２ビューポートを第１または入力オブジェクトに対してどこに配置するかを決定する必要がある。一般には、上、下、右または左に配置することができる。
【００７７】
第４の決定（２８０）は、第２または関連オブジェクトを第２ビューポート内にどのようにレンダリングするか決定する必要がある。これは、ソース画像に基づいても（図３参照）、コンテンツに基づいても（図５参照）どちらでもよい。
【００７８】
第５の決定（２９０）は、第２ビューポートの出現をどのようにアニメーションするか（図６参照）決定する必要がある。これは、スライド、フェードイン、ズームアップなどによって行うことができる。
【００７９】
Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ａｃｃｅｓｓｉｂｉｌｉｔｙ（ＭＳＡＡ）は、ユーザー・インターフェース・アクセシビリティのためのアプリケーション・プログラミング・インターフェース（ＡＰＩ）である。ＭＳＡＡは、アプリケーションのユーザー・インターフェース（ＵＩ）要素に対してアクセスし、識別し、操作するだけでなく、支援技術（ＡＴ）製品がアプリケーション（またはオペレーティングシステム）の標準およびカスタムのユーザー・インターフェース（ＵＩ）要素とインタラクトするのを助けるように設計されている。ＵＩメッセージングは、ＩＡｃｃｅｓｓｉｂｌｅ２およびＪａｖａ  Ａｃｃｅｓｓ  Ｂｒｉｄｇｅのような追加の支援技術ＡＰＩからも取り出すことができる。
【００８０】
マイクロソフト社は、さらに、ＵＩ Ａｕｔｏｍａｔｉｏｎ（ＵＩＡ）と呼ばれるＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムのためのアクセシビリティ・フレイムワークを提供している。ＵＩＡはＭＳＡＡの後継である。しかし、ある種のイベントにとっては、ＭＳＡＡの方が好ましい場合がある。ＵＩＡは、デスクトップ上の殆どのユーザー・インターフェース（ＵＩ）要素へのプログラムによるアクセスを提供し、エンドユーザーにＵＩに関する情報を提供し、標準入力以外の手段によってＵＩを操作するために、スクリーン・リーダーや拡大ソフトウェア等の支援技術製品を有効にする。本発明の目的では、ＵＩＡからのイベントにアクセスするのは、あるＵＩコンポーネントにフォーカスがなされた時のようなキー・イベントを取り込むための効率的な方法である。
【００８１】
ＵＩＡおよび／またはＭＳＡＡからのイベントを取り込むことに加えて、本発明のルールエンジンは、イベントをファイアして、拡大アプリケーションおよびスクリーン・リーダー・アプリケーションにシグナルを送る。これは、ルールエンジン３００が６つの異なるイベントをファイアする図１２に示されている。ＳＤＶ＿ＥＮＴＥＲは、入力コントロールの１つがフォーカスを受けるときにファイアされる。ＵＩＡのＦｏｃｕｓＣｈａｎｇｅｄ（フォーカス変化）イベントは、プロセス名、コントロール・タイプ、ウィンドウ・クラス名および自動ｉｄによって入力コントロールを識別するために用いられる。ＳＥＣＯＮＤ＿ＳＨＯＷＮは、出力コントロールが見えるようになったときにファイアされる。これは、ＳＤＶ＿ＥＮＴＥＲのファイアと同時でもよく、またはＳＥＣＯＮＤ＿ＳＨＯＷＮの方が後に来てもよい。ＳＥＣＯＮＤ＿ＣＨＡＮＧＥＤは、出力コントロールのための場所が変化したときにファイアされる。本発明の一実施形態においては、ＵＩＡのＢｏｕｎｄｉｎｇＲｅｃｔａｎｇｌｅ（境界四角形）のプロパティ変化イベントは多過ぎる場合があるので、場所の変化を検出するためにＭＳＡＡイベントを用いる。ＳＥＣＯＮＤ＿ＣＯＮＴＥＮＴ＿ＣＨＡＮＧＥＤは出力コントロールのためのテキストが変化したときにファイアされる。ＵＩＡのＴｅｘｔＣｈａｎｇｅｄ（テキスト変化）およびＵＩＡのＴｅｘｔＳｅｌｅｃｔｉｏｎ  ｃｈａｎｇｅｄ（テキスト選択変化）イベントは、出力コントロールのテキスト変化と出力コントロールがいつ自動的に現れ隠れたかを追跡するのに用いられる。テキスト・イベントを分析するロジックは、アプリケーションのパフォーマンスを向上させるため、ＤｏｃｕｍｅｎｔＰａｔｔｅｒｎ（ドキュメントパターン）、ＤｏｃｕｍｅｎｔＲａｎｇｅ（ドキュメント範囲）オブジェクトを得る代わりに、ＶａｌｕｅＰａｔｔｅｒｎ（バリューパターン）、Ｖａｌｕｅ  ｓｔｒｉｎｇ（バリューストリング）を使用する。ＳＥＣＯＮＤ＿ＨＩＤＤＥＮは、出力コントロールが隠されるときにファイアされる。これは、入力コントロールがもはやフォーカスを受けていないときにファイアされるＳＤＶ＿ＥＸＩＴよりも前にファイアされる。
【００８２】
拡大エンジン３１０は、ルールエンジン３００によってファイアされたイベントに応答する。例えば、ｏｎ  ＳＥＣＯＮＤ＿ＳＨＯＷＮは、以下のものを含む数々のプロシジャーおよび／または関数を実行する。
１）入力および出力コントロールのための境界四角形を得るために呼び出しする。
２）現在のフォーカスの四角形を得るために呼び出しする。
３）第２ビューポートを表示する必要があるか、それとも拡大された単一の第１ビューポート内に全て一緒に表示できるかを決定するために用いられる、最大の出力および入力フォーカス四角形を得るために呼び出しする。
４）第２ビューポートを画面の頂部または底部に表示すべきか計算する。
５）（現在のフォーカスが見える状態を維持するために）第１ビューポートをスクロールすることが必要か計算する。
６）必要に応じて、第２ビューポートをスライドインし、第１ビューポートをスクロールする。
７）マウスポイントを、ＳＤＶ特有のツールポインタに変更する。
８）第２ビューを表示する。
【００８３】
ＳＤＶウィンドウ・アニメーションのプロパティがＳｌｉｄｅＡｎｉｍａｔｉｏｎ（スライド・アニメーション）に設定されている場合、ＳＤＶウィンドウが有効にされると、ＳＤＶウィンドウのディスプレイ上の場所を一定時間（現在は２０ｍｓ）変更する別個のスレッドが開始され、これによって、ＳＤＶウィンドウがスライドイン（またはＳＤＶウィンドウが無効にされるとスライドアウト）される。必要に応じて、アニメーションはキャンセルもできる。
【００８４】
第２ビューポートは、（フリーズ・ウィンドウまたはレンズ・ウィンドウのような）追加の拡大ウィンドウであり、異なるパラメータとプロパティを有している。第２ビューポートは、その場所を制御するために、このウィンドウに表示されるべき非拡大画面（デスクトップ）の１×エリアの場所である、ＳｏｕｒｃｅＬｏｃａｔｉｏｎ（ソース場所）プロパティ、および、ディスプレイ上のＳＤＶウィンドウの実際の場所であるＤｅｓｔｉｎａｔｉｏｎＬｏｃａｔｉｏｎ（デスチネーション場所）を有している。ＤｅｓｔｉｎａｔｉｏｎＬｏｃａｔｉｏｎのサイズがＳｏｕｒｃｅＬｏｃａｔｉｏｎのサイズよりも大きい場合、このウィンドウのソース・コンテンツはＤｉｒｅｃｔＸによって拡大され、拡大レベルは、拡大レベル＝ＤｅｓｔｉｎａｔｉｏｎＬｏｃａｔｉｏｎのサイズ／ＳｏｕｒｃｅＬｏｃａｔｉｏｎのサイズとして計算される。
【００８５】
拡大エンジン３１０は第２ビューポートのためのソースの場所をアップデートすることによってｏｎ  ＳＥＣＯＮＤ＿ＣＨＡＮＧＥＤに応答する。エンドユーザーのマウスが移動したかどうかを決定するためにマウス・フックを使用してもよい。マウスが入力境界外に移動すると、第２ビューポートは削除されるかまたは表示からスライドアウトされる。または、マウスが移動して入力境界内に戻ると、第２ビューポートが再び現れるかまたは表示内にスライドして戻る。ｏｎ ＳＥＣＯＮＤ＿ＨＩＤＤＥＮに応答して、拡大エンジン３１０は、第２ビューポートをスライドアウトさせる。
【００８６】
拡大エンジン３１０と同様に、スクリーン・リーダー３２０もまた、ルールエンジン３００によってファイアされるイベントに応答する。ｏｎ ＳＥＣＯＮＤ＿ＳＨＯＷＮに応答して、スクリーン・リーダー３２０はＳＤＶモードがアクティブであることをアナウンスしてもよく、および／またはオプションとして出力コントロール内のテキストをアナウンスしてもよい。ｏｎ ＳＥＣＯＮＤ＿ＣＯＮＴＥＮＴ＿ＣＨＡＮＧＥＤに応答して、スクリーン・リーダー３２０は、オプションとして、出力コントロール内のテキストをアナウンスしてもよい。最後に、ｏｎ ＳＥＣＯＮＤ＿ＨＩＤＤＥＮに応答して、スクリーン・リーダー３２０は、オプションとして、ＳＤＶモードの存続をアナウンスしてもよい。
【００８７】
ルールエンジン３００に加えて、拡大エンジン３１０、スクリーン・リーダー３２０およびアプリケーション・ハンドラー３３０も、イベントに応答して数々の方法を呼び出す。例えば、ハンドラー３３０は、拡大ソフトウェアの起動に際して、ＳＤＶのフィーチャーを有効にするためにＳＤＶＥｎａｂｌｅを呼び出す。エンドユーザーが「Ｓａｙ Ｏｕｔｐｕｔ Ｔｅｘｔ（出力テキスト読み上げ）」コマンドを実行するときと同様に、ＳＥＣＯＮＤ＿ＳＨＯＷＮ、ＳＥＣＯＮＤ＿ＣＨＡＮＧＥＤおよびＳＥＣＯＮＤ＿ＣＯＮＴＥＮＴ＿ＣＨＡＮＧＥＤに応答して、ＳＤＶＧｅｔＲｅｌａｔｅｄＯｂｊｅｃｔが呼び出される。ＳＤＶＧｅＴＭａｉｎＢｏｕｎｄｓ、ＳＤＶＧｅｔＭａｘＦｏｃｕｓＲｅｃｔ、ＳＤＶＧｅｔＳｅｃｏｎｄＢｏｕｎｄｓおよびＳＤＶＧｅｔＭａｘＯｕｔｐｕｔＲｅｃｔは全て、ＳＥＣＯＮＤ＿ＳＨＯＷＮに応答して呼び出され、第２ビューポートがどこにどのように現れるか、またはそもそも現れるのかどうかを決定するのに用いられる。最後に、ＳＤＶＥｎａｂｌｅＳｃｅｎａｒｉｏｓは、ダイアログボックス（図１３）から呼び出され、既知のＳＤＶシナリオを有効または無効にする。
【００８８】
図１３は、ＳＤＶ設定を有効または無効にするためのチェックボックスを有するダイアログボックス３４０を示している。デフォルトでは、「Automatically show the second view port if needed and possible（必要かつ可能な場合に自動で第２ビューポートを表示する）」のチェックボックスにチェックが入れられている。チェックが入れられていない場合には、インジケータだけが用いられる。デフォルトでは、「Show the second view port even at lower magnification levels（低拡大レベルでも第２ビューポートを表示する）」のチェックボックスがオンになっている。チェックが入れられている場合、もはや入力コントロールと一緒には表示できなくなる時点まで、全ての拡大レベルで、第２ビューポートが表示される。チェックが入れられていない場合、拡大レベルが十分に高く、入力領域および出力領域がもはや単一表示内に表示できない場合にだけ、第２ビューポートが表示される。
【００８９】
デフォルトでは、「Animate second view port（第２ビューポートをアニメーションする）」のチェックボックスが、オンになっている。チェックが入れられている場合、ビューポートはスライドイン、スライドアウトする。チェックが入れられていない場合、ビューポートはアニメーションなしに現れたり消えたりする。フェード、ワイプなどのような他のタイプのアニメーションおよび視覚効果も可能であることに留意されたい。
【００９０】
（「If the secondary view port is not displayed（第２ビューポートが表示されない場合）」のグループ）
【００９１】
デフォルトでは、「Play a sound（サウンドを流す）」のチェックボックスがオンになっており、第２ビューポートが表示されない場合、聴覚的インジケータを提供する。デフォルトでは、「Change the mouse pointer（マウスポインタを変更する）」のチェックボックスがオンになっており、第２ビューポートが表示されない場合、ポインティング・インディシアムを変更する。デフォルトでは、「Display a frame around the screen（画面の周りにフレームを表示する）」のチェックボックスがオンになっており、第２ビューポートが表示されない場合、フレームが表示される。
【００９２】
（「Program Echo（プログラム・エコー）」のグループ）
【００９３】
デフォルトでは、「Announce changes happening in the output area（出力エリアに生じる変化をアナウンスする）」のチェックボックスがオンになっている。デフォルトでは、「Announce changes happening in the input control（入力コントロールに生じる変化をアナウンスする）」のチェックボックスがオンになっている。
【００９４】
（「Use Smart Dual View for the following applications:（以下のアプリケーションにＳｍａｒｔ  Ｄｕａｌ  Ｖｉｅｗを使用する）」のグループ）
【００９５】
これは、Ｓｍａｒｔ  Ｄｕａｌ  Ｖｉｅｗが定義される各アプリケーションのためのチェックボックスのリストである。デフォルトでは、すべてにチェックが入れられている。
【００９６】
（ハードウェアおよびソフトウェアのインフラストラクチャ例）
【００９７】
本発明は、ソフトウェアベースの命令に応答するアクションを実行する様々なコンピュータ・プラットフォーム上で、特に低視力ユーザー用の拡大ソフトウェアのために、実施可能である。これらには、従来型のデスクトップおよびノートブック・デバイス、並びに、スマートフォンおよびタブレットが含まれる。スマートフォンおよびタブレットは、デスクトップシステムよりも解像度が低く画面が小さいことが多い。このため、携帯型機器の制限を考慮すると、本発明は特に有益となる。以下に、本発明を有効にするために使用可能な、先行する情報技術の基礎について記載する。
【００９８】
請求項に記載するコンピュータ可読媒体は、コンピュータ可読信号媒体でもコンピュータ可読記憶媒体でもよい。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線または半導体のシステム、機器または装置、またはこれらの任意の適する組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例としては、１本以上のワイヤーを含む電気的接続、可搬式コンピュータ・ディスケット、ハードディスク、ランダムアクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去・プログラム可能読取専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバ、可搬式コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、光学式記憶装置、磁気記憶装置、またはこれらの任意の適する組み合わせが含まれるが、これらに限定されない。本書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、機器または装置によって、またはそれらに関連して使用されるプログラムを含むかまたは記憶する、何らかの持続的有形の媒体であってもよい。
【００９９】
コンピュータ可読信号媒体は、例えばベースバンドにおける、または搬送波の一部としての、コンピュータ可読プログラム・コードが埋め込まれた伝達データ信号を含んでもよい。そのような伝達信号は、電磁気、光またはこれらの任意の適する組み合わせを含むがこれらに限定されない様々な形式をとってもよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体以外で、命令実行システム、機器または装置によってまたはそれらに関連して使用されるプログラムを通信、伝達または転送できる何らかのコンピュータ可読媒体であってもよい。しかし、上述のように、法律上の発明対象に関する制限のため、ソフトウェア製品としての本発明の請求項は、コンピュータ・ハードドライブ、フラッシュＲＡＭ、光ディスク等の持続的ソフトウェア媒体に埋め込まれたものである。
【０１００】
コンピュータ可読媒体に埋め込まれたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ラジオ周波数等、またはこれらの任意の適する組み合わせを含むがこれらに限定されない何らかの適切な媒体を用いて伝送できる。本発明の態様のための操作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ、Ｃ＃、Ｃ＋＋、ビジュアルベーシック、オブジェクティブC、パイソンなどのオブジェクト指向｛しこう｝プログラミング言語、および、「Ｃ」プログラミング言語または同様のプログラミング言語のような従来型の手続｛てつづ｝きプログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせによって書かれることができる。
【０１０１】
以下、本発明の態様を、本発明の実施形態の方法、機器（システム）およびコンピュータ・プログラム製品のフローチャート図および／またはブロック・ダイアグラムに関して説明する。フローチャート図および／またはブロック・ダイアグラムの各ブロックおよびフローチャート図および／またはブロック・ダイアグラムのブロックの組み合わせは、コンピュータ・プログラムの命令によって実行可能であることが理解できるだろう。これらコンピュータ・プログラムの命令は、汎用コンピュータ、専用コンピュータ、または他のマシンを製造するプログラム可能なデータ処理機器のプロセッサに与えられ、命令が、コンピュータまたは他のプログラム可能なデータ処理機器のプロセッサを介して実行され、フローチャートおよび／またはブロック・ダイアグラムの単数または複数のブロックに記載された機能／動作を実行する手段を作り出すことができる。
【０１０２】
これらコンピュータ・プログラムの命令は、また、コンピュータ、他のプログラム可能なデータ処理機器、または他の特殊な方法で機能する装置に指令可能なコンピュータ可読媒体に記憶可能であり、コンピュータ可読媒体に記憶された命令が、フローチャートおよび／またはブロック・ダイアグラムの単数または複数のブロックに記載された機能／動作を実行する命令を含む製品として製造されることができる。
【０１０３】
コンピュータ・プログラムの命令は、また、コンピュータ、他のプログラム可能データ処理機器、またはコンピュータ上で実行される一連の演算ステップを生じさせる他の装置、またはコンピュータ実行プロセスを生じさせる他のプログラム可能機器または他の装置にロードされ、コンピュータまたは他のプログラム可能な機器上で実行される命令が、フローチャートおよび／またはブロック・ダイアグラムの単数または複数のブロックに記載された機能／動作を実行するためのプロセスを提供することができる。
【０１０４】
参考のため、「エンドユーザー」とは、ソフトウェアの基になるソースコードの変更を行う開発者または作成者と反対の意味でのソフトウェアの操作者であることに留意されたい。セキュリティの目的で、許可期間中に特定のユーザーを識別する認証手段が、そのユーザーが実行を許可されているプロシジャーと機能が何であるかを定義する。
【０１０５】
（用語集）
【０１０６】
アクティブなビューポート：キーボードおよびマウスの入力を受け付けるビューポート。ほぼ常に、第１ビューポートを意味する。
【０１０７】
アニメーション：特に、エンドユーザーに対して第２、第３ビューポートを表示することに関する、動的変化、色変化、不透明度のような任意の視覚効果を含む。アニメーション・サイクル速度は一般にミリ秒で測られ、一般には２０から３，０００ミリ秒の間である。
【０１０８】
コンポーネント：特定のユーザー・コンピュータ間のインタラクションを容易にする、グラフィック・ユーザー・インターフェース上の要素。コンポーネントは、ボタン、メニュー、リンク、タブ、スクロールバー、ラベル、チェックボックス、ラジオボタン、スライダおよびスピナーを含むが、これらに限定されない。
【０１０９】
ディスプレイモニター：エンドユーザーにグラフィック・ユーザー・インターフェースを示すことが可能なコンピュータ用の電子的視覚ディスプレイ。
【０１１０】
エンドユーザー：拡大ソフトウェアのソースコードを変更するアクセスを行わない、拡大ソフトウェアの操作者。
【０１１１】
フォーカス：入力を受け付けるように選択されているグラフィック・ユーザー・インターフェースのコンポーネントを指示する。キーボードから打ち込まれるかクリップボードから貼り付けられたテキストは、フォーカスを受けているコンポーネントに送られる。一般に、コンポーネントからフォーカスが取り消されるのは、他のコンポーネントにフォーカスを与えることによる。
【０１１２】
グラフィック・ユーザー・インターフェース（ＧＵＩ）：テキストベースのユーザー・インターフェース、キー入力されたコマンドラベルまたはテキスト・ナビゲーションの代わりに、アイコンおよび視覚インジケータを通じて、ユーザーにコンピュータ機器とのインタラクトを許可する型のユーザー・インターフェース。
【０１１３】
入力コンポーネント：ユーザーが入力を発生させるためにインタラクトする１つまたは複数のコントロール。検索編集ボックス、「次へ」および「戻る」ボタン、スクリーンキーボード上のキー。入力コンポーネントは、入力コントロールと互換可能に使用される。
【０１１４】
第１ビューポート：デフォルトのビューポートであり、Ｓｍａｒｔ  Ｄｕａｌ  Ｖｉｅｗがない場合は唯一のビューポート。このビューポートは拡大された入力コントロールを表示する。
【０１１５】
メッセージング（オペレーティングシステム）：ソフトウェア・コンポーネントの間でやりとりされ、請求項に記載の拡大ソフトウェアによってインターセプト可能な、関数呼び出し、メッセージ、イベントを含む。そのようなインターセプトされた関数呼び出し、イベントまたはメッセージを扱うコードは「フック」と呼ばれる。例えばＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓでは、ダイアログ、スクロールバー、メニューおよびその他のアイテムのために、システム・イベントおよびアプリケーション・イベントを処理または変更するために用いられるフックの挿入が許可されている。キーボードおよびマウスのイベントを挿入、削除、処理または変更するためのフックも許可されている。
【０１１６】
出力コンポーネント：入力コンポーネントとのインタラクションに応答して視覚的状態が変化するコンポーネントまたはウィジェット。
【０１１７】
出力領域：入力コントロールに基づいて変化するコンテンツを含む、静的（例えばＷｉｎｄｏｗｓオペレーティングシステムの電卓アプリケーション）または可変の（例えばＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄの検索）場所。
【０１１８】
関連オブジェクト：実質的に、入力コンポーネントまたは入力オブジェクトとのインタラクションに応答して変化する出力コンポーネントと類義。
【０１１９】
ルールエンジン：最初のリリースにおいては、入力コントロールおよび一致する出力領域に関する所定の決定リストを処理するエンジン。
【０１２０】
画面拡大ソフトウェア：コンピュータのグラフィック出力とインターフェースして、拡大された画面コンテンツを示す。周知の画面拡大ソフトウェア・アプリケーションはＺＯＯＭＴＥＸＴブランドのもとで販売されている。
【０１２１】
ＳＤＶモード：一旦、サポートされた入力コントロールにフォーカスが設定されると画面拡大ソフトウェアが入る、特定の状態。
【０１２２】
第２ビューポート：Ｓｍａｒｔ  Ｄｕａｌ  Ｖｉｅｗのフィーチャーによって生成される、拡大された出力領域を表示する追加のビューポート。
【０１２３】
スマート・デュアル・ビュー：概ね本発明を指しており、即ち、コンピュータオペレーティングシステムにおけるフォーカス・イベントのモニターに応答して、複数の拡大ビューポートを生成すること。
【０１２４】
上記された、または上記から明らかな効果が効率的に得られる。本発明の範囲から逸脱することなく上記構成に変更を加えることが可能であるので、上記記載に含まれるかまたは添付の図面に示される全ての事項は、意味を限定的するものではなく例示と解釈すべきであることが意図されている。
【符号の説明】
【０１２５】
１０  画面四角形
２０  入力コンポーネント
２５  ソース四角形
３０  出力コンポーネント
４０  境界四角形
５０  第１ビューポート
６０  第２ビューポート
７０  第２ビューポート
８０  アニメーション軌跡
９０  出力コンポーネント
９５  第２ビューポート
３００  ルールエンジン
３１０  拡大エンジン
３２０  スクリーン・リーダー
３３０  アプリケーション・ハンドラー
３４０  ダイアログボックス
【図１】
2018041066.tif 000004
【図２】
2018041066.tif 000005
【図３】
2018041066.tif 000006
【図４】
2018041066.tif 000007
【図５】
2018041066.tif 000008
【図６】
2018041066.tif 000009
【図７】
2018041066.tif 000010
【図８】
2018041066.tif 000011
【図９】
2018041066.tif 000012
【図１０】
2018041066.tif 000013
【図１１】
2018041066.tif 000014
【図１２】
2018041066.tif 000015
【図１３】
2018041066.tif 000016
【手続補正書】
【提出日】平成29年9月27日(2017.9.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１３
【補正方法】変更
【補正の内容】
【請求項１３】
前記出力領域が単一の出力コントロールによって定義されることを特徴とする、請求項１２に記載の媒体。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１４
【補正方法】変更
【補正の内容】
【請求項１４】
前記単一の出力コントロールが、単一行テキストボックス・コントロール、複数行テキストボックス・コントロール、リッチテキスト・コントロール、リストボックス・コントロール、ドロップダウンリスト・コントロール、テーブル・コントロール、ビュレット付きリスト・コントロール、チェックボックスリスト・コントロール、ラジオボタンリスト・コントロール、リストビュー・コントロール、グリッドビュー・コントロールおよびチャート・コントロールからなるグループから選択されることを特徴とする、請求項１３に記載の媒体。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１５
【補正方法】変更
【補正の内容】
【請求項１５】
前記第２ビューポートが、前記入力コントロールとの前記エンドユーザーのインタラクションに応答した前記出力領域の変化に応答して、一時的に前記第１ビューポートにオーバーラップすることを特徴とする、請求項１２に記載の媒体。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１６
【補正方法】変更
【補正の内容】
【請求項１６】
前記第１ビューポート内のマウスポインタの動きをモニターし、前記入力コントロールから所定の距離離れて移動するマウスポインタの場所に応答して、前記第１および第２ビューポートを閉じる命令をさらに含むことを特徴とする、請求項１２に記載の媒体。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１７
【補正方法】変更
【補正の内容】
【請求項１７】
前記第２ビューポートの表示に応答して、前記第１ビューポートのサイズを縮小する命令をさらに含み、これによって、両方のビューポートが前記ディスプレイモニター上で同時に可視であることを特徴とする、請求項１２に記載の媒体。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１８
【補正方法】変更
【補正の内容】
【請求項１８】
前記オペレーティングシステムから前記グラフィック・ユーザー・インターフェースを表示しているコンピュータモニターの最新の解像度を取得する命令、
前記第１拡大レベルのもとで、前記入力コントロールと前記出力領域が前記第１ビューポート内で完全に可視であるか否かを計算する命令、および、
前記入力コントロールと前記出力領域の両方が、前記グラフィック・ユーザー・インターフェース上で大き過ぎるか距離が離れ過ぎていて、前記第１ビューポート内で一緒に表示できない場合にだけ、前記第２ビューポートを表示する命令を更に含むことを特徴とする、請求項１２に記載の媒体。
【手続補正７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２０
【補正方法】変更
【補正の内容】
【請求項２０】
前記第１ビューポート内に前記入力コントロールを表示し前記第２ビューポート内に前記出力領域を表示している間に前記エンドユーザーによって拡大レベルが低くされ、低くされた拡大レベルが前記第１ビューポート内に前記入力コントロールと前記出力領域を同時に表示する能力を満たすのに応答して、前記第２ビューポートを閉じ、前記入力コントロールおよび前記出力領域を前記第１ビューポート内に一緒に表示する命令を更に含むことを特徴とする、請求項１８に記載の媒体。
【手続補正８】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２１
【補正方法】変更
【補正の内容】
【請求項２１】
入力コントロールと出力領域のルールの配列を作る命令であって、各ルールは、ソフトウェア・アプリケーションと少なくとも１つの入力コントロールと少なくとも１つの出力領域に割り当てられている命令、
ソフトウェア・アプリケーションが前記ルール内で見つかる少なくとも１つの入力コントロールにフォーカスを置くのに応答してファイアされるオペレーティングシステムのイベントをモニターする命令、
自動的に、前記入力コントロール上に第１ビューポートをセンタリングする命令、
自動的に、前記出力領域のために第２ビューポートを表示する命令、
さらに、前記入力コントロールからフォーカスが失われるときのためにオペレーティングシステムのイベントをモニターする命令、および、
自動的に、前記入力コントロールのフォーカス喪失に応答して、前記第１および第２ビューポートを閉じる命令、を更に含むことを特徴とする、請求項１２に記載の媒体。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２２
【補正方法】変更
【補正の内容】
【請求項２２】
拡大されていないグラフィック・ユーザー・インターフェース上で表示されるときの前記入力コントロールと前記出力領域の相対的場所と類似、協調する関係で、前記第１ビューポートと前記第２ビューポートを前記グラフィック・ユーザー・インターフェース上に表示する命令を更に含むことを特徴とする、請求項１２に記載の媒体。
【手続補正１０】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２３
【補正方法】変更
【補正の内容】
【請求項２３】
前記出力領域が表示された前記第２ビューポートだけをパンするキーボード・コマンドを割り当てる命令を更に含むことを特徴とする、請求項１２に記載の方法。
【手続補正１１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２５
【補正方法】変更
【補正の内容】
【請求項２５】
前記第１ビューポートのためにマウスポインタ境界を確立する命令、オペレーティングシステムのメッセージから前記エンドユーザーのマウスポインタの場所をモニターする命令、および、前記エンドユーザーによる前記マウスポインタ境界外へのマウスポインタの場所の移動に応答して自動的に前記第１および第２ビューポートを閉じる命令をさらに含む、請求項２４に記載の媒体。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
図９においては、第２または関連オブジェクトが最初に識別された後に、第２または関連オブジェクトのサイズまたは場所が変化した場合（１８０）、第２ビューポートを調節できるように（２００）、第１または入力オブジェクト内のイベントがモニターされている（１７０）。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
拡大エンジン３１０は、ルールエンジン３００によってファイアされたイベントに応答する。例えば、ｏｎ  ＳＥＣＯＮＤ＿ＳＨＯＷＮは、以下のものを含む数々のプロシジャーおよび／または関数を実行する。
１）入力および出力コントロールのための境界四角形を得るために呼び出しする。
２）現在のフォーカスの四角形を得るために呼び出しする。
３）第２ビューポートを表示する必要があるか、それとも拡大された単一の第１ビューポート内に全て一緒に表示できるかを決定するために用いられる、最大の出力および入力フォーカス四角形を得るために呼び出しする。
４）第２ビューポートを画面の頂部または底部に表示すべきか計算する。
５）（現在のフォーカスが見える状態を維持するために）第１ビューポートをスクロールすることが必要か計算する。
６）必要に応じて、第２ビューポートをスライドインし、第１ビューポートをスクロールする。
７）マウスポインタを、ＳＤＶ特有のツールポインタに変更する。
８）第２ビューを表示する。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
拡大エンジン３１０と同様に、スクリーン・リーダー３２０もまた、ルールエンジン３００によってファイアされるイベントに応答する。ｏｎ ＳＥＣＯＮＤ＿ＳＨＯＷＮに応答して、スクリーン・リーダー３２０はＳＤＶモードがアクティブであることをアナウンスしてもよく、および／またはオプションとして出力コントロール内のテキストをアナウンスしてもよい。ｏｎ ＳＥＣＯＮＤ＿ＣＯＮＴＥＮＴ＿ＣＨＡＮＧＥＤに応答して、スクリーン・リーダー３２０は、オプションとして、出力コントロール内のテキストをアナウンスしてもよい。最後に、ｏｎ ＳＥＣＯＮＤ＿ＨＩＤＤＥＮに応答して、スクリーン・リーダー３２０は、オプションとして、ＳＤＶモードの終了をアナウンスしてもよい。
【外国語明細書】
2018041066000001.pdf