(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-23
(45)【発行日】2023-01-31
(54)【発明の名称】表示比較プログラム、装置、及び方法
(51)【国際特許分類】
G06F 40/14 20200101AFI20230124BHJP
G06F 40/106 20200101ALI20230124BHJP
【FI】
G06F40/14
G06F40/106
(21)【出願番号】P 2019002848
(22)【出願日】2019-01-10
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100084995
【氏名又は名称】加藤 和詳
(74)【代理人】
【識別番号】100099025
【氏名又は名称】福田 浩志
(72)【発明者】
【氏名】田中 宏
【審査官】長 由紀子
(56)【参考文献】
【文献】米国特許出願公開第2011/0019676(US,A1)
【文献】米国特許出願公開第2018/0052808(US,A1)
【文献】特開2016-071418(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
G06F 3/048
(57)【特許請求の範囲】
【請求項1】
表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書に含まれる各要素を階層構造で表
すと共に、各要素の画面上での位置及びサイズの情報を含む階層構造情報の各々を取得し、
前記階層構造情報が示す前記HTML文書全体の階層構造における、前記階層構造情報に含まれる部分構造が属する階層に応じた
、前記2つのブラウザ間での要素の配置の一致度の基準に基づいて、前記部分構造に含まれる要素の各々について、前記2つのブラウザの各々で表示する場合の配置
が一致するか否かを比較
し、
前記基準を超えて前記2つのブラウザ間で配置が異なる要素を、前記HTML文書を前記2つのブラウザの各々で表示する場合における非互換要素として出力する
ことを含む処理をコンピュータに実行させるための表示比較プログラム。
【請求項2】
前記基準として、前記部分構造が属する階層が下位階層であるほど、前記2つのブラウザ間で表示される要素の配置について、高い一致度を要求する基準を用いる請求項
1に記載の表示比較プログラム。
【請求項3】
前記基準として、少なくとも、前記部分構造が前記HTML文書全体の構造に関連する上位階層に属する場合と、前記部分構造が前記HTML文書の局所構造となる下位階層に属する場合とで、異なる基準を用いる請求項1
又は請求項2に記載の表示比較プログラム。
【請求項4】
前記基準として、前記上位階層では、前記部分構造に含まれる要素間の上下左右の位置関係の一致度、前記下位階層では、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度を用いる請求項
3に記載の表示比較プログラム。
【請求項5】
前記基準として、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度を用いる場合、前記一致度を判定するための閾値を、前記上位階層の場合より前記下位階層の場合の方が、高い一致度を要求する値にする請求項
4に記載の表示比較プログラム。
【請求項6】
前記要素間の距離及び角度の少なくとも一方の一致度を比較する際、前記2つのブラウザのいずれか一方で表示する場合の要素の配置を、横並びから縦並びに変換、又は、縦並びから横並びに変換して、前記一致度を比較する請求項
4又は請求項
5に記載の表示比較プログラム。
【請求項7】
前記階層構造を、前記上位階層と、前記下位階層と、前記上位階層と前記下位階層との間の中間階層とに分類する場合、
前記基準として、
前記上位階層では、前記部分構造に含まれる要素間の上下左右の位置関係の一致度、
前記中間階層では、前記2つのブラウザのいずれか一方で表示する場合の要素の配置を、横並びから縦並びに変換、又は、縦並びから横並びに変換することを許容した上での、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度、
前記下位階層では、前記2つのブラウザのいずれか一方で表示する場合の要素の配置を変換することなく、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度
を用いる
請求項
6に記載の表示比較プログラム。
【請求項8】
前記基準を、前記部分構造に含まれる要素の種類に応じて異ならせる請求項1~請求項
7のいずれか1項に記載の表示比較プログラム。
【請求項9】
表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書に含まれる各要素を階層構造で表
すと共に、各要素の画面上での位置及びサイズの情報を含む階層構造情報の各々を取得する取得部と、
前記階層構造情報が示す前記HTML文書全体の階層構造における、前記階層構造情報に含まれる部分構造が属する階層に応じた
、前記2つのブラウザ間での要素の配置の一致度の基準に基づいて、前記部分構造に含まれる要素の各々について、前記2つのブラウザの各々で表示する場合の配置
が一致するか否かを比較する比較部と、
前記基準を超えて前記2つのブラウザ間で配置が異なる要素を、前記HTML文書を前記2つのブラウザの各々で表示する場合における非互換要素として出力する出力部と、
を含む表示比較装置。
【請求項10】
表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書に含まれる各要素を階層構造で表
すと共に、各要素の画面上での位置及びサイズの情報を含む階層構造情報の各々を取得し、
前記階層構造情報が示す前記HTML文書全体の階層構造における、前記階層構造情報に含まれる部分構造が属する階層に応じた
、前記2つのブラウザ間での要素の配置の一致度の基準に基づいて、前記部分構造に含まれる要素の各々について、前記2つのブラウザの各々で表示する場合の配置
が一致するか否かを比較
し、
前記基準を超えて前記2つのブラウザ間で配置が異なる要素を、前記HTML文書を前記2つのブラウザの各々で表示する場合における非互換要素として出力する
ことを含む処理をコンピュータが実行する表示比較方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、表示比較プログラム、表示比較装置、及び表示比較方法に関する。
【背景技術】
【0002】
従来、ウェブページやアプリケーションなどのコンテンツの作成者は、作成したコンテンツが様々なブラウザ画面上で正しく表示されるか否かを検証する必要がある。この検証を目視で行うことは負荷が大きいため、コンテンツを構成するHTML(Hyper Text Markup Language)要素の配置を比較するクロスブラウザ表示テストなどの技術が開発されている。
【0003】
例えば、複数の表示要素を含む表示データに関して複数のブラウザ間での互換性を確保するための修正作業を効率化する修正候補判定装置が提案されている。この装置は、他の表示要素に包含される表示要素群について、複数のブラウザのそれぞれによる表示結果における各表示要素の表示領域の相対的な位置関係を特定する。また、この装置は、表示要素群毎に、ブラウザ毎に特定された各表示領域の相対的な位置関係を相互に比較する。そして、いずれかのブラウザに関して特定された位置関係が他のブラウザに関して特定された位置関係と異なる表示要素群を、表示データにおける修正箇所の候補であると判定する。
【0004】
また、表示データの表示に関する複数のブラウザ間での非互換を効率的に検出する非互換検出装置が提案されている。この装置は、同一の表示データに関する複数のブラウザのそれぞれの表示結果における、表示データに含まれる複数の表示要素のそれぞれの表示領域を示す表示領域情報を取得する。また、この装置は、ブラウザ毎に、当該ブラウザに関して取得された表示領域情報に基づいて、複数の表示要素の中で水平方向に相互に並列する表示要素の組み合わせを特定する。そして、この装置は、いずれかのブラウザに関して特定され、他のいずれかのブラウザに関して特定されない組み合わせに含まれる表示要素を、ブラウザ間の非互換部分として検出する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2016-18254号公報
【文献】特開2016-66227号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
近年、ブラウザは、パーソナルコンピュータ(PC)だけでなく各種のモバイル端末でも広く利用されているが、様々なデバイス用にウェブコンテンツを作成するのは負荷が大きい。そこで、近年では、「ワンソース・マルチユース」と言われるように、一つのHTML文書を様々なデバイスで表示する「レスポンシブ・デザイン」という技術が広く用いられている。
【0007】
このようなレスポンシブ・デザインのHTML文書をマルチデバイス環境で表示する場合、いずれの画面においても正常に表示されているとしても、画面サイズの相違により、表示レイアウトが変化する可能性がある。したがって、従来技術のように、単にHTML要素の配置関係を比較するだけでは、ブラウザ間の非互換性を適切に検出することができない場合がある。
【0008】
一つの側面として、開示の技術は、マルチデバイス環境で表示されるHTML文書の非互換性を検出可能に、画面サイズが異なる複数のブラウザでの表示を比較することを目的とする。
【課題を解決するための手段】
【0009】
一つの態様として、開示の技術は、表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書に含まれる各要素を階層構造で表すと共に、各要素の画面上での位置及びサイズの情報を含む階層構造情報の各々を取得する。また、前記階層構造情報が示す前記HTML文書全体の階層構造における、前記階層構造情報に含まれる部分構造が属する階層に応じた、前記2つのブラウザ間での要素の配置の一致度の基準に基づいて、前記部分構造に含まれる要素の各々について、前記2つのブラウザの各々で表示する場合の配置が一致するか否かを比較する。そして、前記基準を超えて前記2つのブラウザ間で配置が異なる要素を、前記HTML文書を前記2つのブラウザの各々で表示する場合における非互換要素として出力する
【発明の効果】
【0010】
一つの側面として、マルチデバイス環境で表示されるHTML文書の非互換性を検出可能に、画面サイズが異なる複数のブラウザでの表示を比較することができる、という効果を有する。
【図面の簡単な説明】
【0011】
【
図1】マルチデバイス環境におけるHTML文書表示時のレイアウトの変更を説明するための図である。
【
図2】HTML文書の階層構造情報の一例を示す図である。
【
図3】HTML要素の縦横並びの変更を説明するための図である。
【
図4】HTML要素の間隔やサイズの変更を説明するための図である。
【
図5】第1及び第2実施形態に係る表示比較装置の機能ブロック図である。
【
図6】第1実施形態における配置一致基準DBの一例を示す図である。
【
図7】HTML要素間の配置の比較を説明するための図である。
【
図8】HTML要素間の上下の位置関係を説明するための図である。
【
図9】HTML要素間の左右の位置関係を説明するための図である。
【
図10】HTML要素間の角度の一致度を比較する場合を説明するための図である。
【
図11】第1及び第2実施形態に係る表示比較装置として機能するコンピュータの概略構成を示すブロック図である。
【
図12】第1実施形態における表示比較処理の一例を示すフローチャートである。
【
図13】階層に応じた配置一致基準に基づくHTML要素の比較を説明するための図である。
【
図14】第2実施形態における配置一致基準DBの一例を示す図である。
【
図15】第2実施形態における表示比較処理の一例を示すフローチャートである。
【
図16】配置一致基準DBの他の例を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。
【0013】
各実施形態の詳細を説明する前に、マルチデバイス環境において、レスポンシブ・デザインのHTML文書を表示する場合における互換性、及び表示レイアウトの特徴について説明する。
【0014】
図1に示すように、レスポンシブ・デザインで作成されたHTML文書は、デスクトップPC、タブレットPC、モバイル端末等の、それぞれ画面サイズの異なるデバイスで表示される際に、各画面サイズに合わせたレイアウトに自動で変更される。したがって、個々のHTML要素の配置を比較した場合には、配置関係に差異があるHTML要素も存在するが、各デバイスに表示された画面はいずれも正常な表示である。すなわち、各デバイスに表示された画面同士は互換性を有する。
【0015】
このように、HTML要素の配置関係を単純に比較するだけでは、マルチデバイス環境における、ブラウザ間での表示の非互換性を適切に検出できない場合がある。
【0016】
ここで、画面サイズが異なるブラウザ間では、表示されるHTML要素の配置は変化するが、HTML文書の上位階層と下位階層とでは、その配置位置の変化の傾向は異なる。具体的には、
図2に示すように、上位階層に属するHTML要素間の配置関係は、画面サイズに応じてレイアウトが大きく変化し易く、その変化の傾向に規則性を見出すことが困難である。例えば、最上位の層に属するHTML要素は、画面全体が見易くなるようにレイアウトが工夫されるため、画面サイズに応じて様々な配置が採用される。
図1の例では、「ヘッダ」、「div」、及び「本文」の配置関係は、デスクトップPC用と、タブレットPC用と、モバイル端末用とでそれぞれ大きく異なる。
【0017】
一方、下位階層に属するHTML要素間の配置関係は、画面サイズが相違してもレイアウトが変化し難く、変化する場合でも、その変化に規則性がある場合が多い。変化の規則性としては、例えば、
図3に示すように、横並びのHTML要素を縦並びに変化させることや、その逆に、縦並びのHTML要素を横並びに変化させる場合などがある。ただし、HTML要素の並び順が入れ替わる場合には、互換性がないとみなす。また、変化の規則性としては、例えば、
図4に示すように、HTML要素の間隔やサイズを変化させる場合などがある。ただし、HTML要素が均等に配置されている場合と、HTML要素間の間隔にばらつきがある場合とでは、互換性がないとみなす。
【0018】
そこで、以下の各実施形態では、HTML要素の配置関係がブラウザ間で一致しているか否かの判断基準を、HTML要素が属する階層に応じて変更することで、HTML要素の配置関係をより適切に比較する。
【0019】
<第1実施形態>
第1実施形態に係る表示比較装置10は、機能的には、
図5に示すように、取得部12と、比較部14と、出力部16とを含む。また、表示比較装置10の所定の記憶領域には、配置一致基準データベース(DB)20が記憶される。
【0020】
取得部12は、表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書に含まれる各HTML要素を階層構造で表した階層構造情報の各々を取得する。階層構造情報は、少なくとも、HTML要素の親子関係を示す情報と、各HTML要素の画面上での位置及びサイズなどを示す属性情報とを含む。
【0021】
HTML要素の親子関係は、例えば
図2に示すように、各HTML要素をノードで表し、親子関係にあるHTML要素を示すノード同士を接続した木構造で表すことができる。また、属性情報としては、HTML要素が配置される画面上の領域を矩形領域で表した場合の矩形の基準位置(例えば左上角)の座標(x,y)と、矩形のサイズ(Δx,Δy)とを含む情報とすることができる。このような階層構造情報としては、例えば、HTML文書を内部で表現したDOM(Document Object Model)情報を用いることができる。取得部12は、取得した階層構造情報を比較部14へ受け渡す。
【0022】
比較部14は、取得部12から受け渡された階層構造情報が示すHTML文書全体の階層構造において、部分構造が属する階層に応じて、ブラウザ間でのHTML要素の配置が一致するか否かを判定するための配置一致基準を決定する。
【0023】
本実施形態における部分構造とは、階層構造情報において、ある1つのノードと、そのノードを親ノードとして直結する子ノードとを含む構造である。例えば、
図2の例で、ノード「本文」に着目した場合、ノード「本文」と、ノード「本文」を親ノードとして直結する子ノード「項目1」及び「項目2」とが、1つの部分構造となる。
【0024】
具体的には、比較部14は、処理対象の部分構造毎に、その部分構造が属する階層を、階層構造情報に基づいて特定し、特定した階層に応じた配置一致基準を、配置一致基準DB20から取得する。
【0025】
図6に示すように、配置一致基準DB20には、階層に応じた配置一致基準が記憶されている。配置一致基準DB20では、配置一致基準として、部分構造が属する階層が下位階層であるほど、2つのブラウザ間で表示されるHTML要素の配置について、高い一致度を要求する基準が定められる。すなわち、配置一致基準として、部分構造がHTML文書全体の構造に関連する上位階層に属する場合と、局所構造となる下位階層に属する場合とで、異なる基準が定められる。
【0026】
例えば、
図6に示すように、上位階層では、部分構造に含まれる子ノードに相当するHTML要素間の上下左右の位置関係が一致するか否かを比較する配置一致基準を定めておくことができる。一方、下位階層では、部分構造に含まれる子ノードに相当するHTML要素間の距離及び角度の少なくとも一方の一致度を比較する配置一致基準を定めておくことができる。
【0027】
比較部14は、決定した配置一致基準に基づいて、処理対象の部分構造に含まれる子ノードに相当するHTML要素の各々について、2つのブラウザの各々で表示する場合の配置を比較する。
【0028】
具体的には、
図7に示すように、比較部14は、HTML要素1から見たHTML要素2の配置が、ブラウザAで表示する場合とブラウザBで表示する場合とで、一致するか否かを比較する。なお、以下では、ブラウザXで表示されるHTML要素iを「HTML要素i-X」と表記する。また、表示するブラウザを区別することなくHTML要素について説明する場合には、単に「HTML要素i」と表記する。
【0029】
例えば、
図6に示す配置一致基準DB20で、上位階層について定められている配置一致基準、すなわち、HTML要素間の上下左右の位置関係が一致するか否かを比較する場合について説明する。
【0030】
この場合、比較部14は、階層構造情報に含まれる各HTML要素の位置及びサイズに基づいて、HTML要素1とHTML要素2との間の横方向(x座標)及び縦方向(y座標)の重複部分の有無を判定する。
図8に示すように、横方向に重複部分があり、縦方向に重複部分がない場合、比較部14は、HTML要素1とHTML要素2との配置は上下の関係であると判定する。また、
図9に示すように、横方向に重複部分がなく、縦方向に重複部分がある場合、比較部14は、HTML要素1とHTML要素2との配置は左右の関係であると判定する。
【0031】
比較部14は、上記の上下左右の関係の判定結果と、HTML要素1及びHTML要素2の基準位置(例えば、左上角)の座標とに基づいて、HTML要素1から見てHTML要素2が上、下、左、又は右のいずれに位置するかを特定する。比較部14は、この特定結果が、ブラウザAで表示する場合と、ブラウザBで表示する場合とで同一か否かを比較する。同一の場合には、HTML要素1とHTML要素2との配置関係は、ブラウザA及びB間で一致し、異なる場合には、配置関係が一致しない、という比較結果になる。
【0032】
また、例えば、
図6に示す配置一致基準DB20で、下位階層について定められている配置一致基準、すなわち、HTML要素間の角度の一致度を比較する場合について説明する。
【0033】
この場合、比較部14は、
図10に示すように、HTML要素1-Aの基準位置(例えば、左上角)からHTML要素2-Aの基準位置へのベクトルと、基準方向とのなす角θ
Aを求める。同様に、比較部14は、HTML要素1-Bの基準位置からHTML要素2-Bの基準位置へのベクトルと、基準方向とのなす角θ
Bを求める。基準方向は、例えば、HTML要素1とHTML要素2との位置関係が上下の場合には垂直方向、左右の場合には水平方向とすることができる。
【0034】
そして、比較部14は、θAとθBとの差(|θA-θB|)と、予め定めた閾値θthとを比較する。|θA-θB|<θthの場合には、HTML要素1とHTML要素2との配置関係は、ブラウザA及びB間で一致し、|θA-θB|≧θthの場合には、配置関係が一致しない、という比較結果になる。
【0035】
比較部14は、比較結果を出力部16へ受け渡す。
【0036】
出力部16は、比較部14から受け渡された比較結果に基づいて、配置一致基準を超えて2つのブラウザ間で配置が異なるHTML要素を、HTML文書を2つのブラウザの各々で表示する場合における非互換要素として記録したリストを出力する。例えば、リストには、非互換要素の要素名、どの配置一致基準を満たさなかったか等の情報を含めることができる。なお、非互換要素を記録したリストを出力する場合に限定されず、各HTML要素について、互換性の有無を記録したリストを出力するなどしてもよい。
【0037】
第1実施形態に係る表示比較装置10は、例えば
図11に示すコンピュータ40で実現することができる。コンピュータ40は、CPU(Central Processing Unit)41と、一時記憶領域としてのメモリ42と、不揮発性の記憶部43とを備える。また、コンピュータ40は、入力部、表示部等の入出力装置44と、記憶媒体49に対するデータの読み込み及び書き込みを制御するR/W(Read/Write)部45とを備える。また、コンピュータ40は、インターネット等のネットワークに接続される通信I/F46を備える。CPU41、メモリ42、記憶部43、入出力装置44、R/W部45、及び通信I/F46は、バス47を介して互いに接続される。
【0038】
記憶部43は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部43には、コンピュータ40を、表示比較装置10として機能させるための表示比較プログラム50が記憶される。表示比較プログラム50は、取得プロセス52と、比較プロセス54と、出力プロセス56とを有する。また、記憶部43は、配置一致基準DB20を構成する情報が記憶される情報記憶領域60を有する。
【0039】
CPU41は、表示比較プログラム50を記憶部43から読み出してメモリ42に展開し、表示比較プログラム50が有するプロセスを順次実行する。CPU41は、取得プロセス52を実行することで、
図5に示す取得部12として動作する。また、CPU41は、比較プロセス54を実行することで、
図5に示す比較部14として動作する。また、CPU41は、出力プロセス56を実行することで、
図5に示す出力部16として動作する。また、CPU41は、情報記憶領域60から情報を読み出して、配置一致基準DB20をメモリ42に展開する。これにより、表示比較プログラム50を実行したコンピュータ40が、表示比較装置10として機能することになる。なお、プログラムを実行するCPU41はハードウェアである。
【0040】
なお、表示比較プログラム50により実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
【0041】
次に、第1実施形態に係る表示比較装置10の作用について説明する。表示比較装置10にHTML文書が入力されると、表示比較装置10において、
図12に示す表示比較処理が実行される。なお、表示比較処理は、開示の技術の表示比較方法の一例である。
【0042】
ステップS12で、取得部12が、入力されたHTML文書を受け取り、表示する画面サイズが異なるブラウザA及びブラウザBの各々で表示されるHTML文書に含まれる各HTML要素を階層構造で表した階層構造情報の各々を取得する。例えば、取得部12は、Selenium WebDriverなどを用いて、
図2に示すようなHTML要素の親子関係を示す情報と、各HTML要素の画面上での位置及びサイズを示す情報とを含むDOM情報を、ブラウザA及びブラウザBのそれぞれについて取得する。なお、ブラウザA及びブラウザBのいずれで表示する場合も木構造は同様となるが、画面上での位置及びサイズは、ブラウザによってそれぞれ異なるHTML要素も存在する。取得部12は、取得した階層構造情報を比較部14へ受け渡す。
【0043】
次に、ステップS14で、比較部14が、取得部12から受け渡された階層構造情報が示すHTML文書を示す木構造において、処理対象ノードを設定する。最初に設定する処理対象ノードは、例えばルートノード(
図2の例では、ノード「HTML」)とすることができる。
【0044】
次に、ステップS16で、比較部14が、上記ステップS14で設定した処理対象ノードを親ノードとする部分構造を抽出する。
【0045】
次に、ステップS18で、比較部14が、上記ステップS16で抽出した部分構造が属する階層を、階層構造情報に基づいて特定し、特定した階層に応じた配置一致基準を、配置一致基準DB20から取得する。
【0046】
次に、ステップS20で、比較部14が、上記ステップS18で取得した配置一致基準に基づいて、部分構造に含まれる子ノードに相当するHTML要素間の配置関係を、ブラウザAで表示する場合と、ブラウザBで表示する場合とで比較する。
【0047】
次に、ステップS22で、比較部14が、部分構造に含まれる子ノードに相当するHTML要素間の配置が、配置一致基準を超えているか否か、すなわち、配置が異なるか否かを判定する。配置一致基準を超えている場合には、ステップS24へ移行し、超えていない場合には、ステップS26へ移行する。
【0048】
ステップS24では、出力部16が、上記ステップS16で抽出された部分構造に含まれる子ノードに相当するHTML要素に関する情報を非互換要素リストに記録する。
【0049】
次に、ステップS26で、比較部14が、階層構造情報に含まれるノードのうち、子ノードを持つノード、すなわち末端のノード以外のノードで、処理対象ノードに設定されていない未処理のノードが存在するか否かを判定する。未処理のノードが存在する場合には、ステップS14に戻り、未処理ノードが存在しない場合には、ステップS28へ移行する。
【0050】
ステップS28では、出力部16が、非互換要素リストを出力し、表示比較処理を終了する。
【0051】
上記の処理について、ブラウザAがデスクトップPC用のブラウザ、ブラウザBがタブレットPC用のブラウザの場合で、
図2に示す木構造で表されるHTML文書のHTML要素の配置を比較する場合について説明する。
【0052】
例えば、ノード「HTML」と、その子ノード「ヘッダ」、「本文」、及び「div」とを含む部分構造は、
図2に示すように上位階層に属するため、
図6に示すような配置一致基準DB20から、上位階層に対応付けて記憶されている配置一致基準が取得される。そして、
図13の上図に示すように、部分構造に含まれる子ノードに相当するHTML要素「ヘッダ」、「本文」、及び「div」間の配置関係が、上位階層用の配置一致基準に基づいて比較される。例えば、上位階層用の配置一致基準が、HTML要素間の上下左右の位置関係が一致するか否かを比較する基準であるとする。この場合、「ヘッダ」に対して「div」及び「本文」が下に位置するという関係が、ブラウザA及びB共に成り立つため、HTML要素間の配置は一致すると判定することができる。
【0053】
また、例えば、ノード「本文」と、その子ノード「項目1」及び「項目2」とを含む部分構造は、
図2に示すように下位階層に属するため、
図6に示すような配置一致基準DB20から、下位階層に対応付けて記憶されている配置一致基準が取得される。そして、
図13の下図に示すように、部分構造に含まれる子ノードに相当するHTML要素「項目1」と「項目2」間の配置関係が、下位階層用の配置一致基準に基づいて比較される。例えば、下位階層用の配置一致基準が、HTML要素間の角度の一致度を比較する基準であるとする。この場合、ブラウザAにおける「項目1」から見た「項目2」の角度θ
Aと、ブラウザBにおける「項目1」から見た「項目2」の角度θ
Bとには差がなく、HTML要素間の配置は一致すると判定することができる。
【0054】
以上説明したように、第1実施形態に係る表示比較装置によれば、表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書の階層構造情報における部分構造が属する階層に応じた配置一致基準を決定する。そして、決定した配置一致基準に基づいて、部分構造に含まれるHTML要素間の配置関係を、2つのブラウザの各々で表示する場合について比較する。これにより、マルチデバイス環境で表示されるHTML文書の非互換性を検出可能に、画面サイズが異なる複数のブラウザで表示される場合のHTML要素の配置を比較することができる。
【0055】
また、階層に応じた配置一致基準を、下位階層ほど、高い一致度を要求する基準とすることで、レスポンシブ・デザインで作成されたHTML文書などのように、ブラウザに応じて許容されるレイアウトの変更を考慮して、適切に配置の一致を判定することができる。
【0056】
<第2実施形態>
次に、第2実施形態について説明する。第1実施形態では、HTML文書が、上位階層と下位階層とで構成される場合について説明したが、第2実施形態では、上位階層と、下位階層と、上位階層と下位階層との間の中間階層とで構成される場合について説明する。
【0057】
なお、第2実施形態に係る表示比較装置において、第1実施形態に係る表示比較装置10と同様の構成については、同一符号を付して詳細な説明を省略する。
【0058】
図5に示すように、第2実施形態に係る表示比較装置210は、機能的には、取得部12と、比較部214と、出力部16とを含む。また、表示比較装置210の所定の記憶領域には、配置一致基準DB220が記憶される。
【0059】
図14に、配置一致基準DB220の一例を示す。
図14の例では、上位階層では、部分構造に含まれる子ノードに相当するHTML要素間の上下左右の位置関係が一致するか否かを比較する配置一致基準が定められている。また、中間階層では、部分構造に含まれる子ノードに相当するHTML要素の縦横並びを変換した上で、HTML要素間の距離及び角度の少なくとも一方の一致度を比較する配置一致基準が定められている。また、下位階層では、部分構造に含まれる子ノードに相当するHTML要素の縦横並びを変換することなく、HTML要素間の距離及び角度の少なくとも一方の一致度を比較する配置一致基準が定められている。
【0060】
比較部214は、第1実施形態における比較部14と同様に、部分構造が属する階層に応じた配置一致基準を決定する。そして、比較部214は、決定した配置一致基準に基づいて、処理対象の部分構造に含まれる子ノードに相当するHTML要素の各々について、2つのブラウザの各々で表示する場合の配置を比較する。
【0061】
上述したように、マルチデバイス環境に対応させて、レスポンシブ・デザインで作成されたHTML文書を表示する場合、同一の部分構造に属するHTML要素は、横並びから縦並び、又は縦並びから横並びへの変換が許容される場合がある。
【0062】
そこで、比較部214は、決定した配置一致基準において、縦横並びの変換が許容されている場合には、HTML要素の縦横並びを変換する場合と変換しない場合との両方の場合で、HTML要素の配置を比較する。HTML要素の縦横並びを変換する場合、具体的には、比較部214は、一方のブラウザで表示する場合のHTML要素の配置を、横並びから縦並びに、又は縦並びから横並びに変換し、他方のブラウザで表示する場合のHTML要素の配置との一致度を比較する。比較部214は、HTML要素の縦横並びを変換する場合と変換しない場合とのいずれかの場合で、配置一致基準を満たせば、ブラウザ間でHTML要素の配置が一致すると判定する。
【0063】
第2実施形態に係る表示比較装置10は、例えば
図11に示すコンピュータ40で実現することができる。コンピュータ40の記憶部43には、コンピュータ40を、表示比較装置210として機能させるための表示比較プログラム250が記憶される。表示比較プログラム250は、取得プロセス52と、比較プロセス254と、出力プロセス56とを有する。また、記憶部43は、配置一致基準DB220を構成する情報が記憶される情報記憶領域60を有する。
【0064】
CPU41は、表示比較プログラム250を記憶部43から読み出してメモリ42に展開し、表示比較プログラム250が有するプロセスを順次実行する。CPU41は、比較プロセス254を実行することで、
図5に示す比較部214として動作する。他のプロセスについては、第1実施形態に係る表示比較プログラム50と同様である。これにより、表示比較プログラム250を実行したコンピュータ40が、表示比較装置210として機能することになる。
【0065】
なお、表示比較プログラム250により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
【0066】
次に、第2実施形態に係る表示比較装置210の作用について説明する。表示比較装置210にHTML文書が入力されると、表示比較装置210において、
図15に示す表示比較処理が実行される。なお、第2実施形態における表示比較処理において、第1実施形態における表示比較処理と同一の処理については、同一符号を付して詳細な説明を省略する。また、表示比較処理は、開示の技術の表示比較方法の一例である。
【0067】
ステップS12~S18を経て、ステップS219へ移行する。ステップS219では、比較部214が、上記ステップS18で取得した配置一致基準において、縦横並びの変換が許容されている場合には、一方のブラウザで表示する場合のHTML要素の縦横並びを変換する。具体的には、比較部214が、
図3において丸印が併記されている両矢印が示す変換のように、HTML要素間の間隔の割合及び並び順を保持したまま、HTML要素の配置を、横並びから縦並びに、又は縦並びから横並びに変換する。
【0068】
次に、ステップS220で、比較部214が、上記ステップS18で取得した配置一致基準に基づいて、上記ステップS16で抽出した部分構造に含まれる子ノードに相当するHTML要素の各々について、2つのブラウザの各々で表示する場合の配置を比較する。この際、配置一致基準において、縦横並びの変換が許容されている場合、比較部214は、上記ステップS12で取得した階層構造情報が示すHTML要素の配置、すなわち縦横変換をしない場合の配置をブラウザ間で比較する。さらに、比較部214は、一方のブラウザで表示する場合のHTML要素の縦横並びを変換した配置と、他方のブラウザで表示する場合のHTML要素の配置とを比較する。
【0069】
次に、ステップS222で、比較部214が、部分構造に含まれる子ノードに相当するHTML要素間の配置が、配置一致基準を超えているか否か、すなわち、配置が異なるか否かを判定する。この際、比較部214は、HTML要素の縦横並びを変換する場合と変換しない場合とのいずれの場合も、配置一致基準を超えている場合に、ブラウザ間でHTML要素の配置が異なると判定する。
【0070】
以下、第1実施形態と同様に、ステップS24~S28が実行される。
【0071】
以上説明したように、第2実施形態に係る表示比較装置によれば、第1実施形態と同様に、表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書の階層構造情報における部分構造が属する階層に応じた配置一致基準を決定する。そして、決定した配置一致基準に基づいて、部分構造に含まれるHTML要素間の配置関係を、2つのブラウザの各々で表示する場合について比較する。決定した配置一致基準で、HTML要素の縦横並びの変換が許容されている場合には、一方のブラウザで表示する場合のHTML要素の縦横並びを変換した場合についても、他方のブラウザで表示する場合のHTML要素の配置と比較する。これにより、第1実施形態と同様の効果を奏することができると共に、レスポンシブ・デザインで作成されたHTML文書などのように、ブラウザに応じて許容されるレイアウトの変更を考慮して、適切に配置の一致を判定することができる。
【0072】
なお、配置一致基準DBに記憶される階層に応じた配置一致基準は、第1実施形態の
図6の例、及び第2実施形態の
図14の例に限定されず、下位階層ほど、一致とみなす条件が厳しくなるような配置一致基準であればよい。
【0073】
例えば、配置一致基準として、全階層で、部分構造に含まれる子ノードに相当するHTML要素間の距離及び角度の少なくとも一方の一致度を比較する配置一致基準を定めておくことができる。この場合、一致度を判定するための閾値を、上位階層の場合より下位階層の場合の方が、高い一致度を要求する値として定めておけばよい。
【0074】
また、例えば、上位階層では、HTML要素間の角度の一致度を比較する配置一致基準を定め、下位階層では、HTML要素間の距離及び角度の両方の一致度を比較する配置一致基準を定めてもよい。
【0075】
また、上記第1及び第2実施形態における、階層に応じた配置一致基準に加え、部分構造の子ノードに相当するHTML要素の種類に応じて、配置一致基準を異ならせてもよい。この場合の配置一致基準DB320の一例を
図16に示す。
図16の例では、上位階層と下位階層とで配置一致基準を異ならせると共に、HTML要素の種類がイメージかテキストかに応じても、配置一致基準を異ならせている。ここでは、イメージの場合よりテキストの場合の方が、配置の一致を厳しく判定する例を示している。なお、HTML要素の種類は、イメージ及びテキストに限定されず、他の種類を含んでいてもよい。
【0076】
また、上記実施形態では、部分構造が属する階層を、階層構造情報(木構造)から判定する場合について説明したが、これに限定されない。HTML文書に対する部分構造の占める割合が大きいほど、上記実施形態の上位階層と同様に、表示サイズが異なるブラウザ間でHTML要素のレイアウトが変化し易い特徴がある。そこで、部分構造のサイズや、HTML文書に対する部分構造の占める割合に応じて、配置一致基準を特定するようにしてもよい。
【0077】
また、上記実施形態では、表示比較プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【0078】
以上の各実施形態に関し、更に以下の付記を開示する。
【0079】
(付記1)
表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書に含まれる各要素を階層構造で表した階層構造情報の各々を取得し、
前記階層構造情報が示す前記HTML文書全体の階層構造における、前記階層構造情報に含まれる部分構造が属する階層に応じた基準に基づいて、前記部分構造に含まれる要素の各々について、前記2つのブラウザの各々で表示する場合の配置を比較する
ことを含む処理をコンピュータに実行させるための表示比較プログラム。
【0080】
(付記2)
前記基準を超えて前記2つのブラウザ間で配置が異なる要素を、前記HTML文書を前記2つのブラウザの各々で表示する場合における非互換要素として出力することをさらに含む処理を前記コンピュータに実行させるための付記1に記載の表示比較プログラム。
【0081】
(付記3)
前記基準として、前記部分構造が属する階層が下位階層であるほど、前記2つのブラウザ間で表示される要素の配置について、高い一致度を要求する基準を用いる付記1又は付記2に記載の表示比較プログラム。
【0082】
(付記4)
前記基準として、少なくとも、前記部分構造が前記HTML文書全体の構造に関連する上位階層に属する場合と、前記部分構造が前記HTML文書の局所構造となる下位階層に属する場合とで、異なる基準を用いる付記1~付記3のいずれか1項に記載の表示比較プログラム。
【0083】
(付記5)
前記基準として、前記上位階層では、前記部分構造に含まれる要素間の上下左右の位置関係の一致度、前記下位階層では、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度を用いる付記4に記載の表示比較プログラム。
【0084】
(付記6)
前記基準として、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度を用いる場合、前記一致度を判定するための閾値を、前記上位階層の場合より前記下位階層の場合の方が、高い一致度を要求する値にする付記5に記載の表示比較プログラム。
【0085】
(付記7)
前記要素間の距離及び角度の少なくとも一方の一致度を比較する際、前記2つのブラウザのいずれか一方で表示する場合の要素の配置を、横並びから縦並びに変換、又は、縦並びから横並びに変換して、前記一致度を比較する付記5又は付記6に記載の表示比較プログラム。
【0086】
(付記8)
前記階層構造を、前記上位階層と、前記下位階層と、前記上位階層と前記下位階層との間の中間階層とに分類する場合、
前記基準として、
前記上位階層では、前記部分構造に含まれる要素間の上下左右の位置関係の一致度、
前記中間階層では、前記2つのブラウザのいずれか一方で表示する場合の要素の配置を、横並びから縦並びに変換、又は、縦並びから横並びに変換することを許容した上での、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度、
前記下位階層では、前記2つのブラウザのいずれか一方で表示する場合の要素の配置を変換することなく、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度
を用いる
付記7に記載の表示比較プログラム。
【0087】
(付記9)
前記基準を、前記部分構造に含まれる要素の種類に応じて異ならせる付記1~付記8のいずれか1項に記載の表示比較プログラム。
【0088】
(付記10)
表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書に含まれる各要素を階層構造で表した階層構造情報の各々を取得する取得部と、
前記階層構造情報が示す前記HTML文書全体の階層構造における、前記階層構造情報に含まれる部分構造が属する階層に応じた基準に基づいて、前記部分構造に含まれる要素の各々について、前記2つのブラウザの各々で表示する場合の配置を比較する比較部と、
を含む表示比較装置。
【0089】
(付記11)
前記基準を超えて前記2つのブラウザ間で配置が異なる要素を、前記HTML文書を前記2つのブラウザの各々で表示する場合における非互換要素として出力する出力部をさらに含む付記10に記載の表示比較装置。
【0090】
(付記12)
前記比較部は、前記基準として、前記部分構造が属する階層が下位階層であるほど、前記2つのブラウザ間で表示される要素の配置について、高い一致度を要求する基準を用いる付記10又は付記11に記載の表示比較装置。
【0091】
(付記13)
前記比較部は、前記基準として、少なくとも、前記部分構造が前記HTML文書全体の構造に関連する上位階層に属する場合と、前記部分構造が前記HTML文書の局所構造となる下位階層に属する場合とで、異なる基準を用いる付記10~付記12のいずれか1項に記載の表示比較装置。
【0092】
(付記14)
前記比較部は、前記基準として、前記上位階層では、前記部分構造に含まれる要素間の上下左右の位置関係の一致度、前記下位階層では、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度を用いる付記13に記載の表示比較装置。
【0093】
(付記15)
前記比較部は、前記基準として、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度を用いる場合、前記一致度を判定するための閾値を、前記上位階層の場合より前記下位階層の場合の方が、高い一致度を要求する値にする付記14に記載の表示比較装置。
【0094】
(付記16)
前記比較部は、前記要素間の距離及び角度の少なくとも一方の一致度を比較する際、前記2つのブラウザのいずれか一方で表示する場合の要素の配置を、横並びから縦並びに変換、又は、縦並びから横並びに変換して、前記一致度を比較する付記14又は付記15に記載の表示比較装置。
【0095】
(付記17)
前記階層構造を、前記上位階層と、前記下位階層と、前記上位階層と前記下位階層との間の中間階層とに分類する場合、
前記比較部は、前記基準として、
前記上位階層では、前記部分構造に含まれる要素間の上下左右の位置関係の一致度、
前記中間階層では、前記2つのブラウザのいずれか一方で表示する場合の要素の配置を、横並びから縦並びに変換、又は、縦並びから横並びに変換することを許容した上での、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度、
前記下位階層では、前記2つのブラウザのいずれか一方で表示する場合の要素の配置を変換することなく、前記部分構造に含まれる要素間の距離及び角度の少なくとも一方の一致度
を用いる
付記16に記載の表示比較装置。
【0096】
(付記18)
前記比較部は、前記基準を、前記部分構造に含まれる要素の種類に応じて異ならせる付記10~付記17のいずれか1項に記載の表示比較装置。
【0097】
(付記19)
表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書に含まれる各要素を階層構造で表した階層構造情報の各々を取得し、
前記階層構造情報が示す前記HTML文書全体の階層構造における、前記階層構造情報に含まれる部分構造が属する階層に応じた基準に基づいて、前記部分構造に含まれる要素の各々について、前記2つのブラウザの各々で表示する場合の配置を比較する
ことを含む処理をコンピュータが実行する表示比較方法。
【0098】
(付記20)
表示する画面サイズが異なる2つのブラウザの各々で表示されるHTML文書に含まれる各要素を階層構造で表した階層構造情報の各々を取得し、
前記階層構造情報が示す前記HTML文書全体の階層構造における、前記階層構造情報に含まれる部分構造が属する階層に応じた基準に基づいて、前記部分構造に含まれる要素の各々について、前記2つのブラウザの各々で表示する場合の配置を比較する
ことを含む処理をコンピュータに実行させるための表示比較プログラムを記憶した記憶媒体。
【符号の説明】
【0099】
10、210 表示比較装置
12 取得部
14、214 比較部
16 出力部
20、220、320 配置一致基準DB
40 コンピュータ
41 CPU
42 メモリ
43 記憶部
49 記憶媒体
50、250 表示比較プログラム