(57)【要約】【課題】表示データに関して複数のブラウザ間での互換性を確保するための修正作業を効率化すること。【解決手段】修正候補判定装置は、表示データに含まれる複数の表示要素のうちの他の表示要素を包含する表示要素ごとに、当該表示要素が包含する表示要素群について、複数のブラウザのそれぞれによる表示結果における各表示要素の表示領域の相対的な位置関係を特定する特定部と、前記表示要素群ごとに、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係を相互に比較して、いずれかのブラウザに関して特定された位置関係が他のブラウザに関して特定された位置関係と異なる表示要素群を、前記表示データにおける修正箇所の候補であると判定する判定部と、を有する。【選択図】図３
2016018254.tif 000002
【特許請求の範囲】
【請求項１】
表示データに含まれる複数の表示要素のうちの他の表示要素を包含する表示要素ごとに、当該表示要素が包含する表示要素群について、複数のブラウザのそれぞれによる表示結果における各表示要素の表示領域の相対的な位置関係を特定する特定部と、
前記表示要素群ごとに、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係を相互に比較して、いずれかのブラウザに関して特定された位置関係が他のブラウザに関して特定された位置関係と異なる表示要素群を、前記表示データにおける修正箇所の候補であると判定する判定部と、
を有することを特徴とする修正候補判定装置。
【請求項２】
前記判定部は、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係について、当該各表示領域の左端及び右端の水平方向のずれの方向と、当該各表示領域の上端及び下端の垂直方向のずれの方向とを比較する、
ことを特徴とする請求項１記載の修正候補判定装置。
【請求項３】
前記判定部は、前記ずれが無いと判定する閾値を比較される表示領域に係る表示要素に基づいて変更する、
ことを特徴とする請求項２記載の修正候補判定装置。
【請求項４】
コンピュータが、
表示データに含まれる複数の表示要素のうちの他の表示要素を包含する表示要素ごとに、当該表示要素が包含する表示要素群について、複数のブラウザのそれぞれによる表示結果における各表示要素の表示領域の相対的な位置関係を特定し、
前記表示要素群ごとに、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係を相互に比較して、いずれかのブラウザに関して特定された位置関係が他のブラウザに関して特定された位置関係と異なる表示要素群を、前記表示データにおける修正箇所の候補であると判定する、
処理を実行することを特徴とする修正候補判定方法。
【請求項５】
コンピュータに、
表示データに含まれる複数の表示要素のうちの他の表示要素を包含する表示要素ごとに、当該表示要素が包含する表示要素群について、複数のブラウザのそれぞれによる表示結果における各表示要素の表示領域の相対的な位置関係を特定し、
前記表示要素群ごとに、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係を相互に比較して、いずれかのブラウザに関して特定された位置関係が他のブラウザに関して特定された位置関係と異なる表示要素群を、前記表示データにおける修正箇所の候補であると判定する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、修正候補判定装置、修正候補判定方法、及びプログラムに関する。
【背景技術】
【０００２】
インターネットの普及ととともに、インターネットを介して取得されるＨＴＭＬ文書を表示させるＷｅｂブラウザの種類が増加している。Ｗｅｂブラウザの種類に加え、Ｗｅｂブラウザのバージョン及び動作ＯＳ等の違いを考慮すると多数の組み合わせが存在する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−３４６８３号公報
【特許文献２】特開２０１３−７７３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、各Ｗｅｂブラウザは、相互に描画特性が異なったり、独自の拡張機能を有していたりする。また、ＨＴＭＬに関してＷｅｂブラウザごとに解釈が異なる定義が有る。その結果、ＷｅｂブラウザごとにＨＴＭＬ文書の表示結果が異なる場合が有る。
【０００５】
そのため、ＨＴＭＬ文書の作成者は、各Ｗｅｂブラウザにおいて自らの意図した通りにＨＴＭＬ文書が表示されるか否か、すなわち、各Ｗｅｂブラウザ間でＨＴＭＬ文書の表示結果が同じになるか否かについて、テストの実施が要求される。
【０００６】
現状では、各ＷｅｂブラウザにおいてＨＴＭＬ文書を実際に表示させ、表示結果が他のＷｅｂブラウザと一致するか否かが目視で確認されることでテストが行われるのが一般的である。しかし、この方法では、熟練者でなければ、ＨＴＭＬ文書内におけるいずれの記述が、表示結果の相違の発生要因となっているのかを特定するのに時間を要する。
【０００７】
そこで、一側面では、表示データに関して複数のブラウザ間での互換性を確保するための修正作業の効率化を目的とする。
【課題を解決するための手段】
【０００８】
一つの案では、修正候補判定装置は、表示データに含まれる複数の表示要素のうちの他の表示要素を包含する表示要素ごとに、当該表示要素が包含する表示要素群について、複数のブラウザのそれぞれによる表示結果における各表示要素の表示領域の相対的な位置関係を特定する特定部と、前記表示要素群ごとに、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係を相互に比較して、いずれかのブラウザに関して特定された位置関係が他のブラウザに関して特定された位置関係と異なる表示要素群を、前記表示データにおける修正箇所の候補であると判定する判定部と、を有する。
【発明の効果】
【０００９】
一態様によれば、表示データに関して複数のブラウザ間での互換性を確保するための修正作業を効率化することができる。
【図面の簡単な説明】
【００１０】
【図１】第一の実施の形態におけるシステム構成例を示す図である。
【図２】第一の実施の形態における比較装置のハードウェア構成例を示す図である。
【図３】第一の実施の形態における比較装置の機能構成例を示す図である。
【図４】比較装置が実行する処理手順の一例を説明するためのフローチャートである。
【図５】本実施の形態におけるＨＴＭＬ文書の正しい表示結果の一例を示す図である。
【図６】ＨＴＭＬ要素の表示座標の取得結果の一例を示す図である。
【図７】ＨＴＭＬ文書の定義内容の一例を示す図である。
【図８】ＨＴＭＬ文書の表示結果とブロックレベル要素との対応関係を示す図である。
【図９】ＨＴＭＬ文書の階層情報の一例を示す図である。
【図１０】修正箇所の候補を示す情報の出力例を示す図である。
【図１１】ルートノードの直下のノードに対応するＨＴＭＬ要素の相対的な位置関係の第一の例を示す図である。
【図１２】ルートノードの直下のノードに対応するＨＴＭＬ要素の相対的な位置関係の第二の例を示す図である。
【図１３】比較対象の２種類のＷｅｂブラウザによる表示結果におけるＨＴＭＬ要素群の相対的な位置関係の比較処理の第一の例を説明するためのフローチャートである。
【図１４】一致しないと判定される位置関係の一例を示す図である。
【図１５】一致すると判定される位置関係の一例を示す図である。
【図１６】二つのＨＴＭＬ要素の相対的な位置関係の一例を示す図である。
【図１７】２種類のＷｅｂブラウザのそれぞれにおける対象要素群の位置関係の一例を示す図である。
【図１８】二つのＨＴＭＬ要素の組み合わせごとの位置関係の判定結果の一例を示す図である。
【図１９】比較対象の２種類のＷｅｂブラウザによる表示結果におけるＨＴＭＬ要素群の相対的な位置関係の比較処理の第二の例を説明するためのフローチャートである。
【図２０】第二の実施の形態におけるシステム構成例を示す図である。
【図２１】第二の実施の形態における比較装置の機能構成例を示す図である。
【図２２】第二の実施の形態における各ＨＴＭＬ文書の表示座標の取得処理の処理手順の一例を説明するためのシーケンス図である。
【図２３】ＨＴＭＬ文書の加工処理の処理手順の一例を説明するためのフローチャートである。
【図２４】ＨＴＭＬ要素のタグに対するｉｄ属性の付加の一例を示す図である。
【図２５】ｉｄ属性の値とＸＰａｔｈとの対応情報の構成例を示す図である。
【図２６】各ＨＴＭＬ要素の表示座標を取得するためのスクリプトの一例を示す図である。
【図２７】ｉｄ属性及びスクリプトが追加されたＨＴＭＬ文書の定義例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、第一の実施の形態におけるシステム構成例を示す図である。図１において、ＨＴＴＰサーバ２０と比較装置１０とは、インターネット又はＬＡＮ（Local Area Network）等のネットワークを介して通信可能に接続される。
【００１２】
ＨＴＴＰサーバ２０は、１以上のＨＴＭＬ文書を記憶するコンピュータである。ＨＴＴＰサーバ２０は、ＨＴＴＰリクエストを受信すると、当該ＨＴＴＰリクエストに係るＵＲＬ（Uniform Resource Locator）に対応するＨＴＭＬ文書を返信する。本実施の形態において、ＨＴＴＰサーバ２０は、複数のＷｅｂブラウザにおける互換性の評価対象とされるＨＴＭＬ文書を記憶する。
【００１３】
比較装置１０は、ＨＴＴＰサーバ２０に記憶されたＨＴＭＬ文書について、複数のＷｅｂブラウザによる表示結果を比較するコンピュータである。比較装置１０は、複数のＷｅｂブラウザによる表示結果に相違点が検出された場合は、ＨＴＭＬ文書内において、当該相違点を解消するためにユーザに修正させるべき箇所の候補を特定する。
【００１４】
なお、比較装置１０に、ＨＴＴＰサーバ２０に対応する機能が実装されてもよい。すなわち、比較装置１０とＨＴＴＰサーバ２０とは、一つの装置によって実現されてもよい。
【００１５】
図２は、第一の実施の形態における比較装置のハードウェア構成例を示す図である。図２の比較装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び入力装置１０７等を有する。
【００１６】
比較装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１７】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って比較装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等であり、様々な操作指示を入力させるために用いられる。
【００１８】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００１９】
図３は、第一の実施の形態における比較装置の機能構成例を示す図である。図３において、比較装置１０は、２以上のＷｅｂブラウザ１１、表示位置取得部１２、構造解析部１３、比較部１４、相違点記録部１５、及び相違点出力部１６等を有する。これら各部は、比較装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００２０】
Ｗｅｂブラウザ１１は、ＨＴＭＬ文書の表示を制御する。各Ｗｅｂブラウザ１１は、例えば、相互に異なる種類のＷｅｂブラウザ１１である。
【００２１】
表示位置取得部１２は、評価対象のＨＴＭＬ文書に関して、各Ｗｅｂブラウザ１１による表示結果におけるＨＴＭＬ要素の表示位置（表示領域）の座標情報を取得する。ＨＴＭＬ要素は、ＨＴＭＬ文書を構成する要素であり、例えば、画像、文字列、及びブロックレベル要素等を含む。ブロックレベル要素とは、見出し、段落等、文書を構成する基本又は骨組みとなる要素である。ブロックレベル要素は、他のＨＴＭＬ要素を包含することができ、或るブロックレベル要素に包含されたＨＴＭＬ要素は、Ｗｅｂブラウザ１１における表示においても、一つのまとまり（グループ）として扱われる。また、ブロックレベル要素は、他のブロックレベル要素を包含することもできる。したがって、ブロックレベル要素は、階層構造を形成する。なお、ブロックレベル要素を構成するタグの一例として、ｄｉｖタグ、ｃｅｎｔｅｒタグ、ｔａｂｌｅタグ、ｐタグ等が有る。本実施の形態では、主に、ｄｉｖタグ及びｃｅｎｔｅｒタグが、ブロックレベル要素を構成するタグの具体例として用いられるが、他のブロックレベル要素を含むＨＴＭＬ文書や、複数種類のブロックレベル要素が混在したＨＴＭＬ文書についても、本実施の形態は有効である。
【００２２】
構造解析部１３は、評価対象のＨＴＭＬ文書を解析して、当該ＨＴＭＬ文書内のブロックレベル要素の階層構造（包含関係）を取得する。比較部１４は、構造解析部１３によって取得された階層構造において同じ階層に属するＨＴＭＬ要素群（すなわち、同一のＨＴＭＬ要素に包含されるＨＴＭＬ要素群）ごとに、各ＨＴＭＬ要素について各Ｗｅｂブラウザ１１による表示結果における相対的な位置関係（配置関係）を比較する。相違点記録部１５は、比較部１４によって相対的な位置関係が一致しない（相違する）と判定された階層に対応するブロックレベル要素の識別情報を、例えば、補助記憶装置１０２に記録する。相違点出力部１６は、評価対象のＨＴＭＬ文書内において、相違点記録部１５によって記録されたブロックレベル要素に包含されるＨＴＭＬ要素群に対応する部分をＨＴＭＬ文書のソースコード内において特定し、当該部分を示す情報を出力する。
【００２３】
以下、比較装置１０が実行する処理手順について説明する。図４は、比較装置が実行する処理手順の一例を説明するためのフローチャートである。
【００２４】
ステップＳ１０１において、表示位置取得部１２は、評価対象のＨＴＭＬ文書を２種類のＷｅｂブラウザ１１によって表示装置１０６に表示させる。例えば、表示位置取得部１２は、各Ｗｅｂブラウザ１１に対して、評価対象のＵＲＬを入力する。各Ｗｅｂブラウザ１１は、入力されたＵＲＬに係るＨＴＭＬ文書をＨＴＴＰサーバ２０から取得し、取得されたＨＴＭＬ文書を表示装置１０６に表示させる。２種類のＷｅｂブラウザ１１のうち、いずれか一方は、正しい表示結果、すなわち、ＨＴＭＬ文書の作成者の意図した通りの表示結果が得られるものであることが望ましい。
【００２５】
図５は、本実施の形態におけるＨＴＭＬ文書の正しい表示結果の一例を示す図である。本実施の形態では、図５に示される表示結果が、評価対象のＨＴＭＬ文書の正しい表示結果であるとする。
【００２６】
続いて、表示位置取得部１２は、２種類のＷｅｂブラウザ１１によるそれぞれの表示結果（表示画像）における、ＨＴＭＬ文書内の各ＨＴＭＬ要素の表示位置（表示領域）を示す座標情報（以下、「表示座標」という。）を取得する（Ｓ１０２）。
【００２７】
各ＨＴＭＬ要素の表示座標は、例えば、各ＨＴＭＬ要素の外接矩形（例えば、最小外接矩形）の左上頂点及び右下頂点の座標値でもよい。斯かる表示座標は、例えば、特開２０１０−３９８１５号公報に記載された方法を用いて取得されてもよい。すなわち、ＨＴＭＬ文書の表示結果を画面キャプチャし、画面キャプチャによって得られた画像を解析することにより、各ＨＴＭＬ要素の表示座標が取得されてもよい。
【００２８】
具体的には、ＨＴＭＬ文書に含まれるＨＴＭＬ要素群のうち、表示座標の取得対象とする一つのＨＴＭＬ要素の色が黒となり、他の全てのＨＴＭＬ要素の色が白となるように、ＨＴＭＬ文書を改変し、改変後のＨＴＭＬ文書を各Ｗｅｂブラウザ１１によって表示させる。続いて、各表示結果を画面キャプチャして得られた画像を画像処理して、黒で表示されたＨＴＭＬ要素の表示座標を取得する。この際、一つのＨＴＭＬ要素だけが黒で表示されるため、表示結果のうちの黒色の領域が、黒色に変化させたＨＴＭＬ要素であると分かる。この手順を、全てのＨＴＭＬ要素に対して繰り返すことにより、全てのＨＴＭＬ要素のそれぞれの表示座標を取得することができる。このようにして、ＨＴＭＬ文書を構成する文字列及び画像や、ｄｉｖタグ等によって指定されるブロックレベル要素に関する表示座標を取得することができる。
【００２９】
図６は、ＨＴＭＬ要素の表示座標の取得結果の一例を示す図である。図６には、各ＨＴＭＬ要素のＸＰａｔｈに対応付けられて、当該ＨＴＭＬ要素の表示座標が示されている。ＸＰａｔｈとは、ＨＴＭＬ文書中の各ＨＴＭＬ要素を識別することができる情報である。図６において、表示座標は、ｌｅｆｔ、ｔｏｐ、ｒｉｇｈｔ、及びｂｏｔｔｏｍ等によって表現されている。ｌｅｆｔは、ＨＴＭＬ要素の外接矩形の左端のＸ座標値である。ｔｏｐは、当該外接矩形の上端のＹ座標値である。ｒｉｇｈｔは、当該外接矩形の右端のＸ座標値である。ｂｏｔｔｏｍは、当該外接矩形下端のＹ座標値である。
【００３０】
なお、ステップＳ１０２では、比較対象の２種類のＷｅｂブラウザ１１の表示結果ごとに、図６に示される構成を有する情報が生成される。また、ステップＳ１０１及びＳ１０２は、各Ｗｅｂブラウザ１１に関して並列的に実行されてもよいし、直列的に実行されてもよい。
【００３１】
続いて、構造解析部１３は、ＨＴＭＬ文書を解析（パース）して、ブロックレベル要素の階層構造を取得する（Ｓ１０３）。解析対象のＨＴＭＬ文書は、２種類のＷｅｂブラウザ１１のいずれか一方によって取得されたＨＴＭＬ文書でよい。各Ｗｅｂブラウザ１１によって取得されるＨＴＭＬ文書は同じものであるからである。又は、構造解析部１３が、各Ｗｅｂブラウザ１１に対して指定されたＵＲＬに基づいて、当該ＨＴＭＬ文書をＨＴＴＰサーバ２０から取得してもよい。
【００３２】
図７は、ＨＴＭＬ文書の定義内容の一例を示す図である。図７では、ブロックレベル要素に関する定義が、破線の矩形によって囲まれている。要素ｃｅｎｔｅｒ１は、ｃｅｎｔｅｒタグによって囲まれたブロックレベル要素である。要素ｄｅｖＮ（Ｎは整数）は、ｄｉｖタグによって囲まれたブロックレベル要素である。なお、図７では、各文字列が「文字列１」〜「文字列１３」によって表現されているが、これらは、図５に示される文字列を、便宜上、記号化して表現したものである。
【００３３】
図７に示される各ブロックレベル要素と、図５に示した表示結果との対応関係を示すと、図８に示されるようになる。図８は、ＨＴＭＬ文書の表示結果とブロックレベル要素との対応関係を示す図である。図８では、各ブロックレベル要素が、矩形によって表現されている。各矩形には、当該矩形が対応するブロックレベル要素に対して図７において付与された符号が付されている。また、文字列に関しては、図８に示した形式で（「文字列Ｎ」）によって表現されている。なお、文字列は、何らかのタグによって囲まれた範囲を一つの文字列とする。
【００３４】
ステップＳ１０３では、図７に示されるＨＴＭＬ文書における、ブロックレベル要素の包含関係が解析されることにより、ブロックレベル要素間、及びブロックレベル要素と他のＨＴＭＬ要素との包含関係に基づく階層構造が解析される。その結果、例えば、図９に示されるような情報（以下、「階層情報」という。）が得られる。
【００３５】
図９は、ＨＴＭＬ文書の階層情報の一例を示す図である。図９では、階層情報が、樹形図によって表現されている。樹形図における各ノード（節点）は、ＨＴＭＬ要素に対応する。各ノードには、当該ノードに対応するＨＴＭＬ要素に対して図８及び図７に付されている符号が記載されている。なお、以下の説明において、ルートノードもブロックレベル要素であるとする。
【００３６】
続いて、比較部１４は、図９に示されるノード群のうち、ブロックレベル要素に対応する一つのノードを処理対象として選択する（Ｓ１０４）。例えば、ルートノードが処理対象として選択される。但し、ノードの選択順は、所定のものに限定されない。以下、処理対象として選択されたノードを、「対象ノード」という。
【００３７】
続いて、比較部１４は、対象ノードの一つ下の階層に属する各ノードに対応するＨＴＭＬ要素群を特定する（Ｓ１０５）。例えば、図９の例において、ルートノードが対象ノードである場合、図１１に示されるＨＴＭＬ要素群が特定される。
【００３８】
図１１は、ルートノードの直下のノードに対応するＨＴＭＬ要素の相対的な位置関係の第一の例を示す図である。図１１に示されるように、ルートノードが対象ノードである場合、要素ｃｅｎｔｅｒ１、要素ｄｉｖ１、要素ｄｉｖ４、及び文字列１３が特定される。  特定されたＨＴＭＬ要素群に２以上のＨＴＭＬ要素が含まれる場合（Ｓ１０６でＹｅｓ）、比較部１４は、当該ＨＴＭＬ要素群に含まれる各ＨＴＭＬ要素に関して、比較対象の２種類のＷｅｂブラウザ１１による表示結果における相対的な位置関係の比較処理を実行する（Ｓ１０７）。当該比較処理の詳細については後述される。
【００３９】
比較された位置関係が一致すると判定された場合（Ｓ１０８でＹｅｓ）、ステップＳ１１０に進む。比較された位置関係が一致しないと判定された場合（Ｓ１０８でＮｏ）、相違点記録部１５は、対象ノードの識別情報（例えば、対象ノードに対応するＨＴＭＬ要素のＸＰａｔｈ）を、メモリ装置１０３又は補助記憶装置１０２等に記録する（Ｓ１０９）。
【００４０】
ステップＳ１０４以降は、図９に示されるノード群に含まれるノードのうち、ブロックレベル要素に対応する全てのノード、又はルートノードに関して実行される。図９の例では、ルートノード、ノードｃｅｎｔｅｒ１、ノードｄｉｖ１、ノードｄｉｖ４、ノードｄｉｖ２、及びノードｄｉｖ３の６つのノードに関して処理が実行される。これらのノードの全てに関してステップＳ１０４以降の処理が完了すると（Ｓ１１０でＹｅｓ）、相違点出力部１６は、ステップＳ１０９においてその識別情報が記録されたノードの一階層下の各ノードに対応するＨＴＭＬ要素を示す情報（すなわち、修正箇所の候補を示す情報）を出力する（Ｓ１１１）。例えば、相違点出力部１６は、ＨＴＭＬ文書のソースコードを表示装置１０６に表示させ、当該ソースコード上において、当該ＨＴＭＬ要素の開始タグに対応する箇所の表示態様を他の箇所と異ならせることにより、修正箇所の候補を示す情報を出力する。表示態様の変更は、例えば、強調表示、下線の付与、又はその他の方法によって行われてもよい。
【００４１】
図１０は、修正箇所の候補を示す情報の出力例を示す図である。図１０は、ルートノードの一階層下のノードに対応するＨＴＭＬ要素群について、一方のＷｅｂブラウザ１１の表示結果における位置関係が図１１に示される通りであり、他方のＷｅｂブラウザ１１の表示結果における位置関係が図１２に示される通りである場合に対応する。
【００４２】
この場合、当該ＨＴＭＬ要素群の相対的な位置関係は、図１１と図１２とで相互に異なる。具体的には、要素ｄｉｖ４の配置位置が、図１１と図１２とで相互に異なる。したがって、ステップＳ１０９では、要素ｄｉｖ４を包含するルートノードの識別情報が記録される。そこで、図１０では、ルートノードに包含されるＨＴＭＬ要素群に対応する部分（要素ｃｅｎｔｅｒ１、要素ｄｉｖ１、要素ｄｉｖ４、及び文字列１３に関する定義）が強調表示されている。なお、破線の矩形は、当該矩形内が強調表示されていることを意味する。
【００４３】
図１０に示されるような情報が出力されることにより、ユーザは、Ｗｅｂブラウザ１１間で表示結果を一致させるために、修正すべき箇所を絞り込むことができる。その結果、ＨＴＭＬ文書の修正作業を効率化することができる。
【００４４】
一方、ステップＳ１０５において特定されたＨＴＭＬ要素群に含まれるＨＴＭＬ要素の個数が１以下である場合（Ｓ１０６でＮｏ）、ステップＳ１０７〜Ｓ１０９は実行されずにステップＳ１０４に進む。すなわち、ステップＳ１０５において１個のＨＴＭＬ要素が特定された場合、当該ＨＴＭＬ要素に関しては、２種類のＷｅｂブラウザ１１による表示結果における位置関係は同じであると判定される。
【００４５】
なお、上記では、２種類のＷｅｂブラウザ１１に関して処理が実行される例を示したが、３種類以上のＷｅｂブラウザ１１に関して、同時に処理が実行されてもよい。この場合、一つのＷｅｂブラウザ１１を基準として、当該Ｗｅｂブラウザ１１による表示結果における各ＨＴＭＬ要素の相対的な位置関係と、他の少なくともいずれか一つのＷｅｂブラウザ１１による表示結果における各ＨＴＭＬ要素の相対的な位置関係とが異なる場合、ステップＳ１０８ではＮｏと判定されてもよい。
【００４６】
続いて、ステップＳ１０７の詳細について説明する。図１３は、比較対象の２種類のＷｅｂブラウザによる表示結果におけるＨＴＭＬ要素群の相対的な位置関係の比較処理の第一の例を説明するためのフローチャートである。
【００４７】
ステップＳ２１０において、比較部１４は、図４のステップＳ１０５において特定されたＨＴＭＬ要素群（以下、「対象要素群」という。）における二つずつのＨＴＭＬ要素の組み合わせのうち、未処理の一つの組み合わせを処理対象として選択する。未処理の組み合わせとは、ステップＳ２２０以降に関して処理対象とされていない組み合わせをいう。
【００４８】
続いて、比較部１４は、選択された組み合わせに含まれる二つのＨＴＭＬ要素について、２種類のＷｅｂブラウザ１１の表示結果における相対的な位置関係を求める（Ｓ２２０）。
【００４９】
通常、Ｗｅｂブラウザ１１によってデフォルトの行間や文字間隔等が異なる。したがって、ＨＴＭＬ要素間の絶対的な距離によって、２種類のＷｅｂブラウザ１１における当該ＨＴＭＬ要素間の位置関係を比較した場合、人の目には同様に見えても位置関係は異なると判定される場合が有る。すなわち、人から見ればほぼ同じと見える位置関係でも、コンピュータによっては異なると判定され、その結果、相違点が過剰に検出されてしまう。
【００５０】
そこで、比較部１４は、二つのＨＴＭＬ要素の上下左右方向（水平・垂直方向）の整列関係（ずれの方向）が一致していれば、当該二つのＨＴＭＬ要素の相対的な位置関係は一致すると判定する。例えば、比較部１４は、二つのＨＴＭＬ要素について、図１４の（Ａ）に示される位置関係と、（Ｂ）に示される位置関係とは異なると判定する。（Ａ）では二つのＨＴＭＬ要素の左端及び右端が揃っているのに対し、（Ｂ）では二つのＨＴＭＬ要素の左端及び右端が揃っていないからである。すなわち、（Ａ）と（Ｂ）とでは、左右方向（水平方向）におけるずれの方向が異なるからである。一方、比較部１４は、図１５の（Ａ）に示される位置関係と、（Ｂ）に示される位置関係とは一致すると判定する。一方のＨＴＭＬ要素に対する他方のＨＴＭＬ要素の上下方向及び左右方向におけるずれの方向が、一致するからである。なお、例えば、二つのＨＴＭＬ要素間の間隔、すなわち、ずれの量が（Ａ）と（Ｂ）とで異なっても、判定結果には影響しない。
【００５１】
上記のような判定結果を得るための比較部１４による判定方法の一例を説明する。ここでは、少なくとも一方のＷｅｂブラウザ１１の表示結果における、二つのＨＴＭＬ要素の相対的な位置関係が、図１６に示される通りであるとする。
【００５２】
図１６は、二つのＨＴＭＬ要素の相対的な位置関係の一例を示す図である。図１６において、ＨＴＭＬ要素ｅ１は、ステップＳ２１０において選択された二つのＨＴＭＬ要素のうちの一方のＨＴＭＬ要素であり、ＨＴＭＬ要素ｅ２は、他方のＨＴＭＬ要素である。ＨＴＭＬ要素ｅ１の左上頂点の座標値は、（ｌｅｆｔ１，ｔｏｐ１）として表記され、右下頂点の座標は、（ｒｉｇｈｔ１，ｂｏｔｔｏｍ１）として表記されている。また、ＨＴＭＬ要素ｅ２の左上頂点の座標値は、（ｌｅｆｔ２，ｔｏｐ２）として表記され、右下頂点の座標は、（ｒｉｇｈｔ２，ｂｏｔｔｏｍ２）として表記されている。ｌｅｆｔ１、ｔｏｐ１、ｒｉｇｈｔ１、ｂｏｔｔｏｍ１、ｌｅｆｔ２、ｔｏｐ２、ｒｉｇｈｔ２、及びｂｏｔｔｏｍ２の値は、例えば、図４のステップＳ１０２において取得済みである。
【００５３】
比較部１４は、上記座標値を、以下の関数ｆ（ｘ）に当てはめて、ｆ０〜ｆ７の値を求める。
【００５４】
ｆ０＝ｆ（ｌｅｆｔ１−ｌｅｆｔ２）
ｆ１＝ｆ（ｌｅｆｔ１−ｒｉｇｈｔ２）
ｆ２＝ｆ（ｒｉｇｈｔ１−ｌｅｆｔ２）
ｆ３＝ｆ（ｒｉｇｈｔ１−ｒｉｇｈｔ２）
ｆ４＝ｆ（ｔｏｐ１−ｔｏｐ２）
ｆ５＝ｆ（ｔｏｐ１−ｂｏｔｔｏｍ２）
ｆ６＝ｆ（ｂｏｔｔｏｍ１−ｔｏｐ２）
ｆ７＝ｆ（ｂｏｔｔｏｍ１−ｂｏｔｔｏｍ２）
ここで、ｆ（ｘ）の値は、以下の通りである。
【００５５】
ｘ＞αの場合、ｆ（ｘ）＝１
−α＜＝ｘ＜＝αの場合、ｆ（ｘ）＝０
ｘ＜−αの場合、ｆ（ｘ）＝−１
なお、閾値αは、関数ｆ（ｘ）において比較される二つの値が同じであると判定する範囲を示す０以上の定数であり、予め決定される。すなわち、関数ｆ（ｘ）によって求められるｆ０〜ｆ７は、比較された二つのＨＴＭＬ要素の左上頂点及び左下頂点に関して、上下左右方向の相対的なずれの方向を示すものである。換言すれば、ｆ０〜ｆ７は、図１６に示されるベクトルｖ１〜ｖ４に関して、上下左右方向の向きを示すものである。
【００５６】
図１６の例によれば、ｆ０〜ｆ７の値は、以下の通りである。なお、図１６において、原点は、左上であるとする。また、こでは、便宜上、α＝０とであるとする。
【００５７】
ｆ０＝ｆ（ｌｅｆｔ１−ｌｅｆｔ２）＝−１
ｆ１＝ｆ（ｌｅｆｔ１−ｒｉｇｈｔ２）＝−１
ｆ２＝ｆ（ｒｉｇｈｔ１−ｌｅｆｔ２）＝１
ｆ３＝ｆ（ｒｉｇｈｔ１−ｒｉｇｈｔ２）＝−１
ｆ４＝ｆ（ｔｏｐ１−ｔｏｐ２）＝−１
ｆ５＝ｆ（ｔｏｐ１−ｂｏｔｔｏｍ２）＝−１
ｆ６＝ｆ（ｂｏｔｔｏｍ１−ｔｏｐ２）＝−１
ｆ７＝ｆ（ｂｏｔｔｏｍ１−ｂｏｔｔｏｍ２）＝−１
ステップＳ２２０において、比較部１４は、ステップＳ２１０において選択された二つのＨＴＭＬ要素に関するｆ０〜ｆ７の値を、２種類のＷｅｂブラウザ１１のそれぞれの表示結果に関して求める。
【００５８】
続いて、比較部１４は、２種類のＷｅｂブラウザ１１のそれぞれの表示結果に関して求められたｆ０〜ｆ７を比較する（Ｓ２３０）。ここで、ｆに対する添え字（０〜７）が同じもの同士が比較される。比較された全ての値が一致する場合（Ｓ２３０でＹｅｓ）、比較部１４は、対象要素群に含まれるＨＴＭＬ要素における二つずつのＨＴＭＬ要素の組み合わせの全てに関して実行されたか否かを判定する（Ｓ２４０）。未処理の組み合わせが残っている場合（Ｓ２４０でＮｏ）、比較部１４は、未処理の組み合わせに関してステップＳ２１０以降を繰り返す。
【００５９】
全ての組み合わせに関して、ｆ０〜ｆ７の値が一致する場合（Ｓ２４０でＹｅｓ）、比較部１４は、対象要素群の相対的な位置関係が２種類のブラウザ間において一致すると判定する（Ｓ２５０）。一方、ｆ０〜ｆ７の値が一致しない組み合わせが検出された場合（Ｓ２３０でＮｏ）、比較部１４は、対象要素群の相対的な位置関係が２種類のブラウザ間において異なると判定する（Ｓ２６０）。
【００６０】
なお、ステップＳ２４０において、少なくともｆ０、ｆ４、ｆ５、ｆ６、及びｆ７が一致する場合に、比較部１４は、対象要素群の相対的な位置関係が２種類のブラウザ間において一致すると判定するよいにしてもよい。例えば、文字列同士の比較の場合、行頭だけの一致が確保されれば、相対的な位置関係は一致すると判定できる場合も有る。したがって、斯かる判定基準は、文字列同士の組み合わせに限定されて適用されてもよい。そうすることにより、例えば、２種類のブラウザ間において、文字間隔が異なる場合であっても、文字列同士の相対的な位置関係は一致すると判定することができる。
【００６１】
ここで、図１３の処理を具体例に基づいて説明する。図１７は、２種類のＷｅｂブラウザのそれぞれにおける対象要素群の位置関係の一例を示す図である。図１７において、（Ａ）は、２種類のＷｅｂブラウザ１１のうちの一方のＷｅｂブラウザ１１Ａの表示結果における、対象要素群に属する各ＨＴＭＬ要素１〜９の外接矩形の位置関係を示す。（Ｂ）は、２種類のＷｅｂブラウザ１１のうちの一方のＷｅｂブラウザ１１Ｂの表示結果における、対象要素群に属する各ＨＴＭＬ要素１〜９の外接矩形の位置関係を示す。なお、Ｗｅｂブラウザ１１Ａの表示結果において、各ＨＴＭＬ要素の符号の末尾には「Ａ」が付されている。Ｗｅｂブラウザ１１Ｂの表示結果において、各ＨＴＭＬ要素の符号の末尾には「Ｂ」が付されている。また、図１７に示されるＨＴＭＬ要素は、便宜上、図５に示されるＨＴＭＬ文書のＨＴＭＬ要素とは無関係である。
【００６２】
要素１〜９のうちの二つずつのＨＴＭＬ要素の組み合わせに関して、相対的な位置関係の一致又は不一致が判定されることにより、例えば、図１８に示されるような情報が得られる。
【００６３】
図１８、二つのＨＴＭＬ要素の組み合わせごとの位置関係の判定結果の一例を示す図である。図１８において（１）は、各組み合わせに属する二つのＨＴＭＬ要素の位置関係の判定結果を行列によって表現したものである。すなわち、○が配置されている行及び列に係るＨＴＭＬ要素の組み合わせは、相対的な位置関係が一致すると判定された組み合わせである。○が配置されていない行及び列に係るＨＴＭＬ要素の組み合わせは、相対的な位置関係が一致しないと判定された組み合わせである。
【００６４】
（２）は、（１）に示される情報をグラフによって表現したものである。
【００６５】
なお、図１３では、相対的な位置関係が一致しない組み合わせが検出された時点で処理が終了するため、図１８の（１）及び（２）に示されるように、位置関係が一致しない組み合わせが存在する場合は、全ての組み合わせに関して相対的な位置関係の判定は行われないが、図１８では、便宜上、全ての組み合わせの判定結果が示されている。
【００６６】
図１８によれば、図１７に示される要素１〜９に関して、Ｗｅｂブラウザ１１Ａの表示結果における相対的な位置関係と、Ｗｅｂブラウザ１１Ｂの表示結果における相対的な位置関係とは相違すると判定される。仮に、図１８の（１）の行列の全ての成分が○であれば、ＨＴＭＬ要素１〜９に関して、Ｗｅｂブラウザ１１Ａの表示結果における相対的な位置関係と、Ｗｅｂブラウザ１１Ｂの表示結果における相対的な位置関係とは一致すると判定される。
【００６７】
このように、本実施の形態では、ＨＴＭＬ要素群に含まれる各ＨＴＭＬ要素の外接矩形の各頂点のずれの方向が２種類のＷｅｂブラウザ１１に関して一致すれば、当該ＨＴＭＬ要素群に含まれる各ＨＴＭＬ要素の相対的な位置関係は、当該２種類のＷｅブラウザにおいて一致すると判定される。
【００６８】
なお、上記においては、αが定数である例を説明したが、相対的な位置関係が求められる二つのＨＴＭＬ要素の種類等に応じてαの値が変更されてもよい。
【００６９】
図１９は、比較対象の２種類のＷｅｂブラウザによる表示結果におけるＨＴＭＬ要素群の相対的な位置関係の比較処理の第二の例を説明するためのフローチャートである。図１９中、図１３と同一ステップには同一ステップ番号を付し、その説明は省略する。
【００７０】
図１９では、ステップＳ２１０に続いてステップＳ２１５が実行される。ステップＳ２１５において、比較部１４は、ステップＳ２１０において選択された二つのＨＴＭＬ要素の種類に応じた値を、αに設定する。例えば、ＨＴＭＬ要素の種類ごとに、αの値が補助記憶装置１０２に記憶されており、比較部１４は、選択された二つのＨＴＭＬ要素の種類に対して記憶されている値を、αに設定する。
【００７１】
例えば、二つのＨＴＭＬ要素の種類が共に文字列である場合、行頭や行末が僅かにずれても人の目には二つの文字列は揃っているように見える。そこで、文字列に対しては、αは０より大きい値が設定されてもよい。一方、二つのＨＴＭＬ要素が共に画像である場合、僅かなずれでも人が視認可能である場合が有る。例えば、タイルのように画像が配列され、各画像が相互に隣接する場合のように、僅かであっても隣接部分における隙間や重畳が許容されない場合が有る。このような場合を考慮して、画像に対しては、αには０が設定されてもよい。なお、相互に種類が異なるＨＴＭＬ要素の組み合わせに対しては、ずれに対する許容範囲が大きい方の要素に合わせてαの値が設定されてもよい。また、ＨＴＭＬ要素の種類ごとではなく、具体的なＨＴＭＬ要素の組み合わせごとにαの値が設定されてもよい。このように設定されるαの値は、一つのＨＴＭＬ文書に関してのみ有効である可能性が高いが、ＨＴＭＬ要素の種類ごとにαの値が設定される場合に比べて、ＨＴＭＬ要素間の相対的な位置関係の判定をより細かいものとすることができる。例えば、画像同士であってもずれが許容される組み合わせと許容されない組み合わせが存在する場合に、それぞれに適した判定を行うことができる。
【００７２】
上述したように、本実施の形態の比較装置１０は、ＨＴＭＬ文書に含まれる複数のＨＴＭＬ要素の包含関係（階層構造）において他のＨＴＭＬ要素を包含するＨＴＭＬ要素ごとに、当該ＨＴＭＬ要素が包含する各ＨＴＭＬ要素群について、複数のブラウザのそれぞれの表示結果における各ＨＴＭＬ要素の表示領域の相対的な位置関係を特定し、各ＨＴＭＬ要素群に関して、前記Ｗｅｂブラウザ１１ごとに特定された前記各表示領域の相対的な位置関係を相互に比較して、いずれかのＷｅｂブラウザ１１に関して特定された位置関係が他のＷｅｂブラウザ１１に関して特定された置関係と異なるＨＴＭＬ要素群を、前記ＨＴＭＬ文書における修正箇所の候補であると判定する。
【００７３】
したがって、ＨＴＭＬ文書に関して複数のＷｅｂブラウザ１１間での互換性を確保するための修正作業の効率化することができる。
【００７４】
すなわち、例えば、ＨＴＭＬ要素間の包含関係を考慮せずに、ＨＴＭＬ要素ごとに複数のＷｅｂブラウザ１１間での位置関係の異同を判定した場合、図８に示される文字列１０、１１、及び１２が、修正候補として判定される。この場合、ユーザは、ＨＴＭＬ文書のソースコードを参照して、文字列１０、１１、及び１２が要素ｄｉｖ４に包含されていることを確認して、ｄｉｖ４等が疑わしいことを判断する必要が有る。また、このような判断は、或る程度の熟練者でなければ困難な場合も有る。
【００７５】
一方、本実施の形態の比較装置１０によれば、図１０に示されるように、要素ｄｉｖ４及び要素ｄｉｖ４と同一階層に有るＨＴＭＬ要素が修正候補として判定される。すなわち、非互換の原因となっている可能性の高い箇所が直接的に特定される。斯かる観点からも、本実施の形態によれば、ＨＴＭＬ文書に関して複数のＷｅｂブラウザ１１間での互換性を確保するための修正作業を効率化できる可能性が高いと考えられる。
【００７６】
なお、各Ｗｅｂブラウザ１１の表示結果における、ＨＴＭＬ要素間の相対的な位置関係の比較は、各ＨＴＭＬ要素のそれぞれのＷｅｂブラウザ１１の表示結果における絶対的な座標値の比較によって行われてもよい。但し、この場合、ユーザにとっては視認が困難な違いまで相違点として拾われてしまい、その結果、意味の低い相違点に関するＨＴＭＬ要素までが、修正候補として判定されてしまう。
【００７７】
一方、本実施の形態のように、各Ｗｅｂブラウザ１１の表示結果における、ＨＴＭＬ要素間の相対的な位置関係の異同が、それぞれのＨＴＭＬ要素の外接矩形の各頂点の水平方向及び垂直方向のずれの方向の異同に基づいて判定される場合は、上記のように意味の低い相違点は除去され、ユーザに視認されやすい相違点を検出できる可能性を高めることができる。その結果、修正候補の数が減少し、ＨＴＭＬ文書の修正作業を効率化できる可能性を高めることができる。
【００７８】
次に、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第一の実施の形態と同様でもよい。
【００７９】
図２０は、第二の実施の形態におけるシステム構成例を示す図である。図２０中、図１と同一部分には同一符号を付し、その説明は省略する。
【００８０】
図２０において比較装置１０とＨＴＴＰプロキシ３０とは、ＬＡＮ等のネットワークを介して通信可能に接続される。また、ＨＴＴＰプロキシ３０とＨＴＴＰサーバ２０とは、ＬＡＮ又はインターネット等のネットワークを介して通信可能に接続される。
【００８１】
ＨＴＴＰプロキシ３０は、比較装置１０からのＨＴＴＰリクエストを中継してＨＴＴＰサーバ２０に転送し、当該ＨＴＴＰリクエストに対するＨＴＴＰサーバ２０からのＨＴＴＰレスポンスを中継して比較装置１０に転送するコンピュータである。なお、第一の実施の形態において、ＨＴＴＰプロキシは明示されていないが、このことは、第一の実施の形態が、ＨＴＴＰサーバ２０と比較装置１０との間にＨＴＴＰプロキシが介在しない形態に限定されることを意図する趣旨ではない。
【００８２】
第二の実施の形態において、ＨＴＴＰプロキシ３０は、ＨＴＴＰレスポンスに含まれるＨＴＭＬ文書に対して、当該ＨＴＭＬ文書に含まれる各ＨＴＭＬ要素の表示座標を取得するための定義情報を埋め込む。すなわち、第二の実施の形態では、ＨＴＭＬ文書に含まれる各ＨＴＭＬ要素の表示座標の取得方法について、第一の実施の形態において説明した、特開２０１０−３９８１５号公報に記載された方法とは異なる形態を説明する。なお、比較装置１０に、ＨＴＴＰプロキシ３０に対応する機能が実装されてもよい。すなわち、比較装置１０とＨＴＴＰプロキシ３０とは、一つの装置によって実現されてもよい。更に、比較装置１０に、ＨＴＴＰサーバ２０に対応する機能が実装されてもよい。
【００８３】
図２１は、第二の実施の形態における比較装置の機能構成例を示す図である。図２１中、図３と同一部分には同一符号を付し、その説明は省略する。
【００８４】
第二の実施の形態の比較装置１０の構成は、第一の実施の形態と同様である。但し、表示位置取得部１２は、ＨＴＴＰプロキシ３０から各ＨＴＭＬ要素の表示座標を受信する。
【００８５】
図２２は、第二の実施の形態における各ＨＴＭＬ文書の表示座標の取得処理の処理手順の一例を説明するためのシーケンス図である。第二の実施の形態では、図４のステップＳ１０１及びＳ１０２において、図２２に示される処理が実行される。なお、図２２におけるＷｅｂブラウザ１１は、比較対象のうちの一方のＷｅｂブラウザ１１である。したがって、比較される各Ｗｅｂブラウザ１１に関して、図２２の処理が実行されればよい。
【００８６】
ステップＳ３０１において、Ｗｅｂブラウザ１１は、指定されたＵＲＬに係るＨＴＭＬ文書の取得要求（ＨＴＴＰリクエスト）を、ＨＴＴＰプロキシ３０に送信する。ＨＴＴＰプロキシ３０は、当該ＨＴＴＰリクエストを、ＨＴＴＰサーバ２０に転送する（Ｓ３０２）。ＨＴＴＰサーバ２０は、当該ＨＴＴＰリクエストに係るＵＲＬに対応するＨＴＭＬ文書を含むＨＴＴＰレスポンスをＨＴＴＰプロキシ３０に返信する（Ｓ３０３）。
【００８７】
ＨＴＴＰプロキシ３０は、当該ＨＴＴＰレスポンスを受信すると、当該ＨＴＴＰレスポンスに含まれているＨＴＭＬ文書を加工する（Ｓ３０４）。具体的には、当該ＨＴＭＬ文書の表示結果における各ＨＴＭＬ要素の表示座標を取得するためのスクリプトが当該ＨＴＭＬ文書に追加される。
【００８８】
続いて、ＨＴＴＰプロキシ３０は、加工後のＨＴＭＬ文書を含むＨＴＴＰレスポンスを、Ｗｅｂブラウザ１１に返信する（Ｓ３０５）。Ｗｅｂブラウザ１１は、当該ＨＴＭＬレスポンスを受信すると、当該ＨＴＭＬレスポンスに含まれているＨＴＭＬ文書を表示させる（Ｓ３０６）。続いて、Ｗｅｂブラウザ１１は、当該ＨＴＭＬ文書に含まれているスクリプトを実行する（Ｓ３０７）。その結果、ＨＴＭＬ文書の表示結果における、各ＨＴＭＬ要素の表示座標が取得される。続いて、Ｗｅｂブラウザ１１は、スクリプトの定義に従って、各ＨＴＭＬ要素の表示座標を、ＨＴＴＰプロキシ３０に送信する（Ｓ３０８）。
【００８９】
ＨＴＴＰプロキシ３０は、各ＨＴＭＬ要素の表示座標を受信すると、各表示座標に対して表示位置取得部１２が解釈可能なＨＴＭＬ要素の識別情報であるＸＰａｔｈを関連付ける（Ｓ３０９）。続いて、ＨＴＴＰプロキシ３０は、各ＨＴＭＬ要素のＸＰａｔｈと表示座標とを表示位置取得部１２に送信する（Ｓ３１０）。その結果、表示位置取得部１２は、各ＨＴＭＬ要素の表示位置を取得できたことになる。
【００９０】
続いて、ステップＳ３０４の詳細について説明する。図２３は、ＨＴＭＬ文書の加工処理の処理手順の一例を説明するためのフローチャートである。
【００９１】
ステップＳ４０１において、ＨＴＴＰプロキシ３０は、ＨＴＭＬ文書のソースコードを解析して、表示座標の取得対象とされる各ＨＴＭＬ要素のタグの記述位置を特定する。タグの記述位置の特定は、公知のＨＴＭＬ文書の解析技術を用いて行えばよい。
【００９２】
続いて、ＨＴＴＰプロキシ３０は、特定された各タグに対して、当該タグを識別するための情報を付加する（Ｓ４０２）。本実施の形態では、斯かる情報として、ｉｄ属性が付加される。各タグのｉｄ属性の値は、ＨＴＭＬ文書内において相互に重複しなければ、どのような値であってもよい。なお、既にｉｄ属性が付加されているタグについては、当該ｉｄ属性を上書きせずに、そのまま利用するのが望ましい。上書きしてしまった場合、例えば、当該ｉｄ属性の値を利用している既存のスクリプト等が正常に動作しない可能性が有るからである。
【００９３】
図２４は、ＨＴＭＬ要素のタグに対するｉｄ属性の付加の一例を示す図である。図２４において、（１）は、ｉｄ属性の付加前の状態を示す。図２４の例では、二つのｄｉｖタグと、一つのｉｍｇタグとが示されている。（２）は、ｉｄ属性の付加後の状態を示す。各タグには、相互に重複しない値を有するｉｄ属性が付加されている。
【００９４】
続いて、ＨＴＴＰプロキシ３０は、各タグについて、当該タグに付加されたｉｄ属性の値と、当該タグのＸＰａｔｈの値との対応情報を記憶する（Ｓ４０３）。当該対応情報は、例えば、ＨＴＴＰプロキシ３０のメモリ装置又は補助記憶装置に記憶される。
【００９５】
図２５は、ｉｄ属性の値とＸＰａｔｈとの対応情報の構成例を示す図である。図２５に示されるように、ｉｄ属性の値ごとに、当該値に係るタグ（ＨＴＭＬ要素）のＸＰａｔｈの値が記憶される。
【００９６】
なお、ＸＰａｔｈは、ＨＴＭＬ文書のソースコード上の各ＨＴＭＬ要素を一意に識別するための情報である。ＸＰａｔｈを用いれば、例えば、ＨＴＭ文書内に複数のｄｉｖ要素が存在していても、各ｄｉｖ要素を区別することができる。
【００９７】
続いて、ＨＴＴＰプロキシ３０は、ｉｄ属性が付加された各ＨＴＭＬ要素の表示座標を取得するためのスクリプトを生成する（Ｓ４０４）。
【００９８】
図２６は、各ＨＴＭＬ要素の表示座標を取得するためのスクリプトの一例を示す図である。図２６では、ＪａｖａＳｃｒｉｐｔ（登録商標）で記述された例が示されている。
【００９９】
図２６のスクリプトｓｃ１において、「各ＨＴＭＬ要素の座標情報の取得処理」及び「ＨＴＴＰプロキシへの表示座標の送信処理」という記述が有る箇所には、実際には、当該記述が意味する処理をスクリプトの関数等を利用して実現する定義が含まれる。
【０１００】
例えば、「各ＨＴＭＬ要素の座標情報の取得処理」については、ｄｏｃｕｍｅｎｔ．ｇｅｔＥｌｅｍｅｎｔＢｙＩｄ（）及び、ｇｅｔＢｏｕｎｄｉｎｇＣｌｉｅｎｔＲｅｃｔ（）等の関数を利用することにより実現可能である。なお、これらの関数において、各ＨＴＭＬ要素は、ｉｄ属性の値によって識別される。すなわち、スクリプトにおいて各ＨＴＭＬ要素を識別可能とするために、各ＨＴＭＬ要素にはｉｄ属性が付加されたのである。
【０１０１】
また、「ＨＴＴＰプロキシへの表示座標の送信処理」は、ＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクトを利用して実現することができる。当該処理では、ｉｄ属性の値ごとに当該値に係るＨＴＭＬ要素に関して取得された座標情報が、ＨＴＴＰプロキシ３０に送信される。
【０１０２】
続いて、ＨＴＴＰプロキシ３０は、ＨＴＭＬ文書に対し、生成されたスクリプトｓｃ１を追加する（Ｓ４０５）。
【０１０３】
例えば、図７に示したＨＴＭＬ文書に関して図２３の処理が実行された場合、図２７に示されるようなＨＴＭＬ文書が生成される。
【０１０４】
図２７は、ｉｄ属性及びスクリプトが追加されたＨＴＭＬ文書の定義例を示す図である。図２７では、各ＨＴＭＬ要素にｉｄ属性が付加されている。また、符号ｓｃ２に示される部分には、生成されたスクリプトが追加される。
【０１０５】
図２７に示されるＨＴＭＬ文書を受信したＷｅｂブラウザ１１は、図２３のステップＳ４０４において説明したように、当該ＨＴＭＬ文書に含まれているスクリプトを実行する。当該スクリプトには、「各ＨＴＭＬ要素の座標情報の取得処理」及び「ＨＴＴＰプロキシへの表示座標の送信処理」が含まれている。したがって、Ｗｅｂブラウザ１１は、「各ＨＴＭＬ要素の座標情報の取得処理」の定義に基づいて、各ＨＴＭＬ要素の表示座標を取得し、取得された各表示座標を、各ＨＴＭＬ要素のｉｄ属性の値に関連付ける。また、Ｗｅｂブラウザ１１は、「ＨＴＴＰプロキシへの表示座標の送信処理」の定義に基づいて、ｉｄ属性の値が関連付けられた各表示座標を、ＨＴＴＰプロキシ３０に送信する。
【０１０６】
また、ステップＳ３０９において、ＨＴＴＰプロキシ３０は、ステップＳ３０８において受信された各表示座標に関連付けられているｉｄ属性の値を、図２５に示した対応情報に基づいてＸＰａｔｈに変換する。
【０１０７】
なお、ｉｄ属性の値ではなく、ＸＰａｔｈが表示座標に関連付けられるのは、比較装置１０において、各ＨＴＭＬ要素の識別には、ｉｄ属性の値よりＸＰａｔｈの方が都合が良いからである。
【０１０８】
上述したように、各ＨＴＭＬ要素の表示座標は、スクリプトを用いて取得されてもよい。また、他の方法によって、各ＨＴＭＬ要素の表示座標が取得されてもよい。
【０１０９】
なお、上記各実施の形態では、相互に種類（製品）が異なるＷｅｂブラウザ１１における表示結果を比較する例について説明したが、同一種類のＷｅｂブラウザ１１であって、相互に表示サイズが異なるＷｅｂブラウザ１１に関して、上記各実施の形態が適用されてもよい。例えば、表示サイズを変更しても、改行等によって表示位置が変更されないことが予定されているＨＴＭＬ文書に関して、相互に表示サイズが異なる同一種類の複数のＷｅｂブラウザ１１に関して、本実施の形態が適用されてもよい。
【０１１０】
なお、本実施の形態において、比較装置１０は、修正候補判定装置の一例である。表示位置取得部１２は、特定部の一例である。比較部１４は、判定部の一例である。ＨＴＭＬ文書は、表示データの一例である。ＨＴＭＬ要素は、表示要素の一例である。すなわち、ＨＴＭＬ文書以外の表示データであって、相互に包含関係又は階層構造を有する複数の表示要素を含む表示データに関して、本実施の形態が適用されてもよい。この場合、Ｗｅｂブラウザの代わりに、当該表示データに適したブラウザが用いられればよい。
【０１１１】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１１２】
以上の説明に関し、更に以下の項を開示する。
（付記１）
表示データに含まれる複数の表示要素のうちの他の表示要素を包含する表示要素ごとに、当該表示要素が包含する表示要素群について、複数のブラウザのそれぞれによる表示結果における各表示要素の表示領域の相対的な位置関係を特定する特定部と、
前記表示要素群ごとに、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係を相互に比較して、いずれかのブラウザに関して特定された位置関係が他のブラウザに関して特定された位置関係と異なる表示要素群を、前記表示データにおける修正箇所の候補であると判定する判定部と、
を有することを特徴とする修正候補判定装置。
（付記２）
前記判定部は、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係について、当該各表示領域の左端及び右端の水平方向のずれの方向と、当該各表示領域の上端及び下端の垂直方向のずれの方向とを比較する、
ことを特徴とする付記１記載の修正候補判定装置。
（付記３）
前記判定部は、前記ずれが無いと判定する閾値を比較される表示領域に係る表示要素に基づいて変更する、
ことを特徴とする付記２記載の修正候補判定装置。
（付記４）
コンピュータが、
表示データに含まれる複数の表示要素のうちの他の表示要素を包含する表示要素ごとに、当該表示要素が包含する表示要素群について、複数のブラウザのそれぞれによる表示結果における各表示要素の表示領域の相対的な位置関係を特定し、
前記表示要素群ごとに、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係を相互に比較して、いずれかのブラウザに関して特定された位置関係が他のブラウザに関して特定された位置関係と異なる表示要素群を、前記表示データにおける修正箇所の候補であると判定する、
処理を実行することを特徴とする修正候補判定方法。
（付記５）
前記判定する処理は、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係について、当該各表示領域の左端及び右端の水平方向のずれの方向と、当該各表示領域の上端及び下端の垂直方向のずれの方向とを比較する、
ことを特徴とする付記４記載の修正候補判定方法。
（付記６）
前記判定する処理は、前記ずれが無いと判定する閾値を比較される表示領域に係る表示要素に基づいて変更する、
ことを特徴とする付記５記載の修正候補判定方法。
（付記７）
コンピュータに、
表示データに含まれる複数の表示要素のうちの他の表示要素を包含する表示要素ごとに、当該表示要素が包含する表示要素群について、複数のブラウザのそれぞれによる表示結果における各表示要素の表示領域の相対的な位置関係を特定し、
前記表示要素群ごとに、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係を相互に比較して、いずれかのブラウザに関して特定された位置関係が他のブラウザに関して特定された位置関係と異なる表示要素群を、前記表示データにおける修正箇所の候補であると判定する、
処理を実行させるプログラム。
（付記８）
前記判定する処理は、前記ブラウザごとに特定された前記各表示領域の相対的な位置関係について、当該各表示領域の左端及び右端の水平方向のずれの方向と、当該各表示領域の上端及び下端の垂直方向のずれの方向とを比較する、
ことを特徴とする付記７記載のプログラム。
（付記９）
前記判定する処理は、前記ずれが無いと判定する閾値を比較される表示領域に係る表示要素に基づいて変更する、
ことを特徴とする付記８記載のプログラム。
【符号の説明】
【０１１３】
１０          比較装置
１１          Ｗｅｂブラウザ
１２          表示位置取得部
１３          構造解析部
１４          比較部
１５          相違点記録部
１６          相違点出力部
２０          ＨＴＴＰサーバ
３０          ＨＴＴＰプロキシ
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
Ｂ            バス
【図１】
2016018254.tif 000003
【図２】
2016018254.tif 000004
【図３】
2016018254.tif 000005
【図４】
2016018254.tif 000006
【図５】
2016018254.tif 000007
【図６】
2016018254.tif 000008
【図７】
2016018254.tif 000009
【図８】
2016018254.tif 000010
【図９】
2016018254.tif 000011
【図１０】
2016018254.tif 000012
【図１１】
2016018254.tif 000013
【図１２】
2016018254.tif 000014
【図１３】
2016018254.tif 000015
【図１４】
2016018254.tif 000016
【図１５】
2016018254.tif 000017
【図１６】
2016018254.tif 000018
【図１７】
2016018254.tif 000019
【図１８】
2016018254.tif 000020
【図１９】
2016018254.tif 000021
【図２０】
2016018254.tif 000022
【図２１】
2016018254.tif 000023
【図２２】
2016018254.tif 000024
【図２３】
2016018254.tif 000025
【図２４】
2016018254.tif 000026
【図２５】
2016018254.tif 000027
【図２６】
2016018254.tif 000028
【図２７】
2016018254.tif 000029