"テキストコンテンツ内の双方向テキストをチェックするためにコンピュータにインプリメントされた方法であって、該方法は、該テキストコンテンツ内の複数のテキスト部分の各テキスト部分に対して:該テキスト部分の固有のテキスト方向を決定することと、該テキスト部分と関連した宣言テキスト方向を決定することと、コンピューティングデバイスを使用して、該固有のテキスト方向と該宣言テキスト方向との間の不一致に基づいた双方向テキストエラーを生成することと、該双方向テキストエラーを報告することと、を含む、方法。前記テキストコンテンツを前記複数のテキスト部分へと分けることをさらに含む、請求項1に記載の方法。固有のテキスト方向を決定することが、テキスト部分が左から右スクリプトに属する少なくとも一つの文字を含むが右から左スクリプトに属する文字を含まない場合に左から右方向を識別することと、テキスト部分が右から左スクリプトに属する少なくとも一つの文字を含むが左から右スクリプトに属する文字を含まない場合に右から左方向を識別することと、を含む、請求項1に記載の方法。文字がユニコードbidiクラスLであると決定される場合に該文字が左から右スクリプトに属すると決定され、文字がユニコードbidiクラスRもしくはALであると決定される場合に該文字が右から左スクリプトに属すると決定される、請求項3に記載の方法。双方向テキストエラーを生成することが、前記固有のテキスト方向が左から右であり前記宣言テキスト方向が右から左である場合もしくは前記固有のテキスト方向が右から左であり前記宣言テキスト方向が左から右である場合に不一致を識別することを含む、請求項1に記載の方法。前記固有のテキスト方向もしくは前記宣言方向のいずれかがニュートラル、混合、不定または左から右もしくは右から左以外、のうちの少なくとも一つである場合に不一致が識別されない、請求項5に記載の方法。前記宣言テキスト方向を決定することが、ユニコード双方向アルゴリズムを前記テキスト部分に、習慣的にこのタイプのコンテンツに適用される任意のよりハイレベルなプロトコルと共に適用することと、該ユニコード双方向アルゴリズムにより該テキスト部分の任意の文字に割り当てられた最も低い明示埋め込みレベルと、該ユニコード双方向アルゴリズムが該最も低い明示埋め込みレベルを有する任意の文字にニュートラルオーバーライドステータスを割り当てたかどうかとを注意することと、を含み、該最も低い明示埋め込みレベルが偶数であってかつニュートラルオーバーライドステータスを有した場合に該宣言方向が左から右であり、該最も低いオーバーライドステータスが奇数であってかつニュートラルオーバーライドステータスを有した場合に該宣言方向が右から左であり、そうでなければ該宣言を不定と宣言する、請求項1に記載の方法。前記テキストコンテンツを前記複数のテキスト部分へと分けることにより、各テキスト部分において該テキスト部分のすべての文字が同一の明示埋め込みレベルおよびオーバーライドステータスを有するようにすることをさらに含む、請求項7に記載の方法。前記テキストコンテンツを前記複数のテキスト部分へと分けることにより、該テキストコンテンツにこのタイプのコンテンツに対応するよりハイレベルなプロトコルと共に前記ユニコード双方向アルゴリズムを適用することにより定義されるようにいずれのテキスト部分も異なるパラグラフに属する文字を有さないようにすることをさらに含む、請求項8に記載の方法。前記テキストコンテンツを前記複数のテキスト部分へと分けることにより、該テキスト部分がLREおよびRLE文字のような埋め込み方向宣言もしくはマークアップ指示方向を含むと予想されない該テキストコンテンツの一部分でない限りいずれのテキスト部分も混合の固有のテキスト方向を有さないようにすることをさらに含む、請求項9に記載の方法。前記テキストコンテンツを前記複数のテキスト部分へと分けることにより、該テキスト部分の数を該テキスト部分により覆われている該テキストコンテンツの部分を減らすことなく、可能な限り少なくするようにすることをさらに含む、請求項7に記載の方法。報告することがエラー特性のセットを有する双方向テキストエラーを報告することを含む、請求項1に記載の方法。報告することが前記双方向テキストエラーに、以下の一つ:a前記テキスト部分が一つもしくは複数の数字またはニュートラル文字、および0もしくは1つ以上の空白文字から成るストリングで開始もしくは終了する、b該テキスト部分が、同一のパラグラフに属しかつ前記ユニコード双方向アルゴリズムにより定義されているように同一の明示埋め込みレベルおよびオーバーライドステータスを有するテキスト部分により先行され、該先行のテキスト部分が一つもしくは複数の数字またはニュートラル文字、および0もしくは1つ以上の空白文字から成るストリングで終了する、c該テキスト部分に、同一のパラグラフに属しかつ該ユニコード双方向アルゴリズムにより定義されているように同一の明示埋め込みレベルおよびオーバーライドステータスを有するテキスト部分が後に続き、該後に続くテキスト部分が一つもしくは複数の数字またはニュートラル文字、および0もしくは1つ以上の空白文字から成るストリングで開始する、が適用する場合に重大度値を割り当てることを含む、請求項12に記載の方法。前記決定するステップを、チェックされる前記テキストコンテンツを含むウェブページ内へと挿入されている外部のスクリプト言語スクリプトから呼び出すことをさらに含む、請求項1に記載の方法。テキストコンテンツ内の双方向テキストをチェックするためのシステムであって、該システムは、ウォーカーであって、該ウォーカーは、該テキストコンテンツ内の複数のテキスト部分の各テキスト部分に対して該テキスト部分の固有のテキスト方向を決定することと、該テキスト部分の宣言テキスト方向を決定することと、を行うように構成されているウォーカーと、コンピューティングデバイスと共にインプリメントされた、該固有のテキスト方向と該宣言テキスト方向との間の不一致に基づいた双方向テキストエラーを生成するように構成された双方向テキストチェッカーと、該双方向テキストエラーを報告するように構成された双方向エラー報告器と、を含む、システム。前記ウォーカーが前記テキストコンテンツを前記複数のテキスト部分へと分けるようにさらに構成される、請求項15に記載のシステム。前記ウォーカーは、テキスト部分が左から右スクリプトに属する少なくとも一つの文字を含むが右から左スクリプトに属する文字を含まない場合に左から右方向を識別することと、テキスト部分が右から左スクリプトに属する少なくとも一つの文字を含むが左から右スクリプトに属する文字を含まない場合に右から左方向を識別することと、を行うようにさらに構成されている、請求項15に記載のシステム。文字がユニコードbidiクラスLであると決定される場合に該文字が左から右スクリプトに属すると決定され、文字がユニコードbidiクラスRもしくはALであると決定される場合に該文字が右から左スクリプトに属すると決定される、請求項15に記載のシステム。前記双方向テキストチェッカーが、前記固有のテキスト方向が左から右であってかつ前記宣言テキスト方向が右から左である場合、もしくは前記固有のテキスト方向が右から左であってかつ前記宣言テキスト方向が左から右である場合に不一致を識別するようにさらに構成される、請求項15に記載のシステム。前記固有のテキスト方向もしくは前記宣言方向のいずれかがニュートラル、混合、不定または左から右もしくは右から左以外、のうちの少なくとも一つである場合に不一致が識別されない、請求項19に記載のシステム。前記ウォーカーは、前記テキストコンテンツを前記複数の前記テキスト部分へと分けることにより、各テキスト部分において該テキスト部分のすべての文字が同一の明示埋め込みレベルおよびオーバーライドステータスを有するようにするようにさらに構成される、請求項15に記載のシステム。前記ウォーカーは、前記テキストコンテンツを前記複数のテキスト部分へと分けることにより、該テキスト部分にこのタイプのコンテンツに対応するよりハイレベルなプロトコルと共に前記ユニコード双方向アルゴリズムを適用することにより定義されるようにいずれのテキスト部分も異なるパラグラフに属する文字を有さないようにするようにさらに構成される、請求項21に記載のシステム。前記ウォーカーは、前記テキストコンテンツを前記複数のテキスト部分へと分けることにより、該テキスト部分がLREおよびRLE文字のような埋め込み方向宣言もしくはマークアップ指示方向を含むと予想されない該テキストコンテンツの一部分でない限りいずれのテキスト部分も混合の固有のテキスト方向を有さないようにするようにさらに構成される、請求項22に記載のシステム。テキストコンテンツ内の双方向テキストをチェックするためにコンピュータにインプリメントされた方法であって、該方法は、テキスト部分の固有のテキスト方向を決定することと、該テキスト部分と関連した宣言テキスト方向を決定することと、コンピューティングデバイスを使用して、該固有のテキスト方向と該宣言テキスト方向との間の不一致に基づいた双方向テキストエラーを生成することと、該双方向テキストエラーを報告することと、を含む、方法。簡単な概要実施形態はウェブページのコンテンツのようなテキストコンテンツ内の双方向テキストエラーをチェックすることに関する。テキストコンテンツはまた、任意のその他のドキュメントもしくはドキュメントの一部分を含み得る。一実施形態に従うと、双方向テキストをチェックするための方法は、テキスト部分の固有のテキスト方向を決定することを含む。テキスト部分は文字、単語、文、もしくはテキストの区分であり得る。テキスト部分はまた、ユーザー入力、ツールチップ例えば、吹き出しテキストとして、またはテキストの宣言方向もしくは固有の方向の変化により識別され得る。その他のテキスト部分は数字、日付、およびテキスト見出しを含み得る。本方法はさらに、テキスト部分と関連した宣言テキスト方向を決定することを含む。本方法はまた、固有のテキスト方向と宣言テキスト方向との間の不一致に基づいた双方向テキストエラーを生成することを含む。双方向テキストエラーが報告される。テキストコンテンツは、各テキスト部分がチェックされるテキスト部分へと分けられ得る。もう一つの実施形態に従うと、テキストコンテンツ内の双方向テキストをチェックするためのシステムはテキスト部分の固有のテキスト方向および宣言テキスト方向を決定するように構成されたウォーカーを含む。本システムはまた、固有のテキスト方向と宣言テキスト方向との間の不一致に基づいた双方向テキストエラーを生成するように構成された双方向テキストチェッカーを含む。本システムはさらに、双方向テキストエラーを報告するように構成された双方向エラー報告器を含む。本発明のさらなる実施形態、特徴、および利点は、本発明の種々の実施形態の構造および動作と同様に、添付の図面を参照して下に詳細に記述される。詳細な記述本発明は本明細書において具体的なアプリケーションの例示的な実施形態を参照して記述されるが、本発明はそれに限定されないことが理解されるべきである。本明細書で提供される教示にアクセスした当業者は、その範囲内で追加の改変、アプリケーション、および実施形態、そして本発明が有意に有益となり得る追加の分野を認識する。アプリケーションにとって、双方向テキストを正確に示すことは非常に難しくあり得る。適切なテキスト方向の宣言は、テキスト部分にとって不正確であるかもしくは欠如しているかのいずれかであり得る。その結果として、双方向テキストを含むテキストコンテンツは、双方向エラー付きで表示され得る。例えば、図1は、右から左に書かれているアラビア語のテキスト部分を含む探索ウェブページの表示ビュー100を示す。しかしながら、双方向テキストの不正確表示102が生じている。図2において、テキスト部分102は、ASpaceOdyssey部分202が2001部分204よりも前にあると示しており、それは不正確である。以下に記述される実施形態は、ウェブページ、マークアップファイル、XMLファイル、平文ストリング、もしくはエラーのためのテキストを含む他のドキュメントフォーマット内のエラーのために、双方向テキストをチェックする能力を提供する。例えば、ウェブページは、方向のマークアップもしくはフォーマッティング文字が欠如しているかもしくは不正確に使用されている箇所を捜すためにスキャンされ得る。双方向テキストエラーは、ウェブページコンテンツを適切に表示するために訂正が行われ得るように報告され得る。図3は、一実施形態に従った例示的な双方向テキストチェックシステム300のアーキテクチャ図である。双方向テキストチェックシステム300、もしくはその構成要素の任意の組み合わせは、コンピューティングデバイスの一部であり得るかもしくはコンピューティングデバイスにインプリメントされ得る。コンピューティングデバイスの例は、限定されることはないが、コンピュータ、ワークステーション、分散コンピューティングシステム、コンピュータクラスター、組み込みシステム、スタンドアロン電子デバイス、ネットワーク接続されたデバイス、モバイルデバイス例えば、モバイル電話、スマートフォン、ナビゲーションデバイス、タブレットもしくはモバイルコンピューティングデバイス、ラックサーバー、セットトップボックス、もしくは少なくとも一つのプロセッサおよびメモリを有するその他のタイプのコンピュータシステムを含む。そのようなコンピューティングデバイスは、ソフトウェア、ファームウェア、ハードウェア、もしくはこれらの組み合わせを含み得る。ソフトウェアは、一つもしくは複数のアプリケーションおよび一つのオペレーティングシステムを含み得る。ハードウェアは、限定されることはないが、プロセッサ、メモリ、およびユーザーインタフェースディスプレイを含み得る。双方向テキストチェックシステム300は、双方向テキストスキャナ310を含み得る。一部の場合において、スキャナ310は、表示のためにウェブページを表示もしくは準備するウェブページディスプレイデバイス320に結合され得る。ウェブページはウェブブラウザ内に表示され得る。一実施形態に従うと、スキャナ310はウォーカー312、双方向テキストチェッカー314、および双方向エラーレポーター316を含む。一実施形態に従うと、スキャナ310は、ウェブページに含まれるすべてのフレームに対して再帰的に行うことを含め、ウェブページの一つもしくは複数のDOMドキュメントオブジェクトモデルをスキャンするように構成され得る。ウェブページは複数のフレームで構成され得、各フレームは独自のDOMを有する。次にフレームは、他のフレームなどを含み得る。説明を目的として、DOMの各使用は単一のページもしくはフレームのDOMを表し得る。出会ったDOMごとに、スキャナ310はウォーカー312および双方向テキストチェッカー314を起動し得る。DOMコンテンツスキャニングは、事象駆動型アーキテクチャの内部に構成され得る。ウォーカー312は、一実施形態に従うと、DOMをトラバースし、事象のシリーズへと変換もしくは要約するように構成され得る。ウォーカー312は、DOMを異なる方法で要約し、そして異なるタイプの事象を実行するように構成され得る。双方向テキストチェッカー314は、図4で示されているように、複数の検出器を含むように構成され得る。検出器は関心のあるタイプの事象に注意を払い、双方向エラーのような、検出器が検出するように構成されている側面を記録する。ウォーカー312は、双方向テキストチェッカー314と協働するように構成され得る。ウォーカー312はまた、各DOM上で作動するように構成され得る。一実施形態に従うと、ウォーカー312は単一のDOMをトラバースし、そして次の4つのタイプの事象のシリーズをディスパッチするように構成され得る:マークアップタグの開始に出会うときのスタートタグ、マークアップタグの終了に出会うときのエンドタグ、テキストのブロックと出会うときのテキストノード、およびDOMの終わりに達するときのエンドオブドム。ウォーカー312は、DOM内の各ノードの現在の宣言テキスト方向性左から右もしくは右から左を追跡し得る。ウォーカー312はまた、DOMにより直接含まれる任意のフレームのリストを集め得る。一実施形態に従うと、ウォーカー312は宣言テキスト方向を決定するように構成され得る。宣言テキスト方向は、左から右ltr、右から左rtl、左から右オーバーライドlro、右から左オーバーライドrlo、および不明のうちの一つであり得る。オーバーライド値は、いずれの固有テキスト方向もオーバーライドされ、無頓着に左から右もしくは右から左のいずれかに宣言されることを意味する。そのようにして、lroおよびrloは不一致エラーの結果を生じず、そしてウォーカーは実際はlro、rlo、および不明の値の間を区別しない可能性がある。ウォーカー312はまた、宣言ページ方向コンテキストを決定するように構成され得る。さらなる実施形態に従うと、ウォーカー312は単一のDOMをトラバースし得、DOMの同一のブロックレベル要素内で、テキストの同一方向性順番を表す事象のシリーズDirChunkとして公知をディスパッチする。宣言方向性が変化する場合、もしくは新しいブロックレベル要素が現れる場合はいつでも、新しいDirChunkがディスパッチされる。一実施形態に従うと、システム300は、ドキュメントのテキストコンテンツを意味のあるテキスト部分へと分け、そして固有のテキスト方向がその宣言テキスト方向と矛盾する部分を報告するように構成され得る。宣言方向コンテキストは、テキスト部分の予想される方向を示す。テキストの一部分は、ドキュメントがそれを意味のあるユニットであると識別することによるか、もしくは単にその固有の方向特性によるかのいずれかにより、意味があり得る。例えば、HTMLドキュメント内の入力要素の値は、すべてHTML要素により識別された一テキスト部分である。固有のテキスト方向は、テキスト部分文字が左から右を示すユニコード値を有する場合に左から右方向を識別すること、およびテキスト部分文字が右から左を示すユニコード値を有する場合に右から左方向を識別することにより、決定され得る。文字のユニコードbidiクラスがENもしくはANである場合、その文字は数字である。文字のユニコードbidiクラスがES、ET、CS、もしくはONである場合、その文字はニュートラルである。文字のユニコードbidiクラスがWSである場合、その文字は空白である。もう一つの例においては、ドキュメントのテキストコンテンツはテキスト部分のセットへと分けられ得、上述のユニコード双方向アルゴリズムのアプリケーションは、テキスト部分内のすべての文字に偶数埋め込みレベル、もしくはテキスト部分内のすべての文字に奇数埋め込みレベルのいずれかを割り当て、上述のアルゴリズムのアプリケーションにより定義されているように、いずれのテキスト部分も異なるパラグラフに属する文字を有しないようにする。テキストコンテンツは可能な限り小さい数のテキスト部分に分けられ得、固有のテキスト方向と宣言テキスト方向との間に不一致を有するいずれのテキスト部分も、数字、ニュートラル、もしくは空白の文字で開始もしくは終了しない。テキスト部分は以下を含み得る:1.単一のLRE、RLE、LRO、RLO、もしくはPDF文字。2.すべての文字の双方向bidiクラスがLRE、RLE、LRO、RLO、PDF、R、AL、もしくはLでないストリング。3.すべての文字のbidiクラスがLRE、RLE、LRO、RLO、PDF、R、もしくはALでなく、およびbidiクラスがLの文字で開始および終了するストリング。4.すべての文字のbidiクラスがLRE、RLE、LRO、RLO、PDF、もしくはLでなく、およびbidiクラスがRもしくはALの文字で開始および終了するストリング。一部の実施形態においては、システム300もしくはウォーカー312はテキストコンテンツを複数のテキスト部分へと分けるように構成される。例えば、テキストコンテンツは複数のテキスト部分へと分けられ得、各テキスト部分において、テキスト部分のすべての文字は同一の明示埋め込みレベルおよびオーバーライドステータスを有する。もう一つの例においては、テキストコンテンツは複数のテキスト部分へと分けられ、ユニコード双方向アルゴリズムを、習慣的にこのタイプのコンテンツに適用される任意のよりハイレベルなプロトコルと共にチェックされるコンテンツに適用することにより定められるように、いずれのテキスト部分も異なるパラグラフに属する文字を有しないようにする。ユニコード双方向アルゴリズムUBAは、テキストをパラグラフへと分離すること、方向文字タイプを初期化すること、埋め込みレベルおよび方向文字タイプのリストにルールのシリーズを適用すること、そして表示のためにテキストを並び替えることを含む、標準のアルゴリズムである。もう一つの例においては,テキストコンテンツは複数のテキスト部分に分けられ、テキスト部分が、LREおよびRLE文字のような埋め込み方向宣言もしくはHTMLドキュメント内のテキスト入力要素のような方向を示すマークアップを含むことが予想されないもしくは適当に含むことができないテキストコンテンツの一部分でない限り、いずれのテキスト部分も混合した固有のテキスト方向を有さない。さらなる例においては、テキストコンテンツは複数のテキスト部分へと分けられ、テキスト部分の数はテキスト部分により覆われているテキストコンテンツの部分を減らすことなく、可能な限り少なくなる。一実施形態に従うと、双方向テキストチェッカー314は以下のようにテキストストリングの固有の方向を決定するように構成され得る。LRE、RLE、LRO、もしくはRLOで開始し、PDFもしくはストリングの終わりのいずれかで終了し、かつその間にLRE、RLE、LRO、RLO、もしくはPDFを含まないいずれの部分もストリングから取り除かれる。この除去は、結果として生じるストリングにおいて可能な限り何度も繰り返される。左から右スクリプトに属する文字はユニコードbidiクラスLであると決定され、そして右から左スクリプトに属する文字はユニコードbidiクラスRもしくはALであると決定される。例えば、テキストコンテンツにユニコード双方向アルゴリズムのバージョン6.0.0を、習慣的にこのタイプのコンテンツに適用される任意のよりハイレベルなプロトコルと共に適用する場合、文字は左から右スクリプトに属するように決定される。そしてこの適用において、次のルールではなく、アルゴリズムのルールをX8を含みX8まで完了させることは、文字方向文字タイプにLを割り当てる。テキストコンテンツにユニコード双方向アルゴリズムのバージョン6.0.0を、習慣的にこのタイプのコンテンツに適用される任意のよりハイレベルなプロトコルと共に適用する場合、文字は右から左スクリプトに属するように決定される。そしてこの適用において、次のルールではなく、アルゴリズムのルールをX8を含みX8まで完了させることは、文字方向文字タイプにRもしくはALを割り当てる。結果がL、R、もしくはAL文字を含まなければ、その方向はニュートラルである。句読点および空白はニュートラルとみなされる。そうでなければ、結果がL文字を含まなけば、方向はrtlである。そうでなければ、結果がRもしくはAL文字を含まなければ、方向はltrである。そうでなければ、右から左方向、左から右方向もしくはニュートラル方向が識別されない場合、方向は混合である。もう一つの実施形態に従うと、双方向テキストチェッカー314は、テキスト部分が左から右スクリプトに属する少なくとも一つの文字を含むが右から左スクリプトに属する文字を含まない場合に左から右方向を識別する。双方向テキストチェッカー314はまた、テキスト部分が右から左スクリプトに属する少なくとも一つの文字を含むが左から右スクリプトに属する文字を含まない場合に右から左方向を識別する。一実施形態に従うと、ウォーカー312は、いくつかのドキュメントタイプのためのドキュメントのテキストコンテンツ内にある任意の文字のための宣言テキスト方向を決定するように構成され得る:プレーンテキストユニコードストリングに関しては、ストリング内の文字の宣言テキスト方向は、ストリング内の文字の前にある最も近いLRE、RLE、LRO、およびRLO文字もしあればにより決定され、整合PDF文字はもしあればストリング内の文字の後ろにある。そのような文字がなければ、宣言テキスト方向もしくは方向コンテキストは不明である。そうでなければ、LREに関してはltr、RLEに関してはrtl、LROに関してはlro、およびRLOに関してはrloである。HTMLおよびXMLドキュメントに関しては、そのテキストノードもしくは属性内の任意の文字の宣言テキスト方向は、以下のように決定され得る:属性内の文字に関しては、属性値のためのプレーンテキスト方向コンテキストを計算する。不明であれば、そのテキスト方向は不明であるかニュートラルである。テキストノードのもしくは属性の宣言テキスト方向を、下で定義されているように見つける。XMLにおいて、宣言テキスト方向要素は、dir属性もしくは異なる態様でルート要素を有する最も近い先行要素である。コンテキスト要素の方向コンテキストは、そのdir属性値と、もしくはdir属性がなければltrと等しい。HTMLにおいて、方向コンテキストは、計算されたユニコード-bidiスタイル特性値が普通以外である最も近い先行要素である。これは通常は<bdo>要素、ブロック要素、もしくはdir属性を有する要素のいずれかである。なぜならこれらすべてのユニコード-bidiスタイル特性がデフォルトCSSルール<bdo>に関してはオーバーライド、およびその他には埋め込み、一方でユニコード-bidiスタイルはまたCSSルールもしくはインラインCSSにより直接セットされ得るによりセットされるからである。コンテキスト要素の方向コンテキストはその後要素の計算された方向スタイル特性値であり、それはコンテキスト要素の計算されたユニコード-bidiスタイル特性値がオーバーライドであればltrからlroへとおよびrtlからrloへとバンプされる。要素の計算された方向スタイル特性は通常はdir属性を経由してもしくは継承のいずれかによりセットされ、一方でこれもまたCSSルールもしくはインラインCSSにより直接セットされ得る。ルート要素がdir属性を有さず、かついずれのCSSルールもしくはインラインCSSもその方向スタイル特性をセットしなければ、その計算された基本方向はltrである。テキストノード内の文字に関しては、プレーンテキスト方向コンテキストは、コンテキスト要素の後続テキストノードの間順走査により構築されたテキストストリングのために決定され得る。それがニュートラルでなければ、それがその方向コンテキストである。そうでなければ、方向コンテキストはコンテキスト要素のものである。一実施形態に従うと、テキスト部分の宣言テキスト方向は、テキストコンテンツにユニコード双方向アルゴリズムのバージョン6.0.0を、習慣的にこのタイプのコンテンツに適用される任意のよりハイレベルなプロトコルと共に適用する場合、左から右であると決定される。そしてこの適用において、次のルールではなく、アルゴリズムのルールをX8を含みX8まで完了させることは、テキスト部分の文字に偶数であって最も低い埋め込みレベルを割り当てる。テキスト部分の宣言テキスト方向は、テキストコンテンツにユニコード双方向アルゴリズムのバージョン6.0.0を、習慣的にこのタイプのコンテンツに適用される任意のよりハイレベルなプロトコルと共に適用する場合、右から左であると決定される。そしてこの適用において、次のルールではなく、アルゴリズムのルールをX8を含みX8まで完了させることは、テキスト部分の文字に奇数であって最も低い埋め込みレベルを割り当てる。双方向テキストチェッカー314は、テキスト部分の固有のテキスト方向とその宣言テキスト方向との間の不一致に基づいた双方向テキストエラーを生成するように構成され得る。例えば、固有の方向およびその宣言テキスト方向は、一方がltrであって一方がrtlであれば不一致となる従って、lro、rlo、不明、ニュートラル、および混合はいずれの値とも矛盾しない。。さらなる実施形態に従うと、固有のテキスト方向もしくは宣言方向のいずれかが左から右もしくは右から左でない場合、不一致は識別されない。また、テキスト部分がニュートラル、混合、不定もしくはその他であると決定される場合、不一致は識別されない。双方向テキストチェッカー314は、一実施形態に従うと、テキスト方向を決定するように構成され得る。双方向テキストチェッカー314はまた、一実施形態に従うと、所与のタイプの双方向エラーを見つけることのような特定の目的のために、テキストの意味のある部分を識別するためにウォーカー312からの事象に注意を払うように構成され得る。一部の場合において、検出器インスタンスは特定のドキュメントDOMのコンテキスト内でスキャンのために使用され得、そして再び使用されることはない。それゆえに、フレームを含むページがスキャンされる場合、トップレベルページのためのものと同様に各フレームには別個の検出器がある。図4において説明されているように、一実施形態に従うと、双方向テキストチェッカー314は非宣言方向検出器402、ページ方向検出器404、およびスピルオーバー検出器406を含み得る。一実施形態に従うと、非宣言方向検出器402は非宣言反対方向性テキストエラーを決定するように構成され得る。非宣言方向検出器402は、テキスト方向と宣言テキスト方向との間の比較に基づいた双方向テキストエラーのような双方向テストメッセージを生成するように構成され得る。非宣言方向検出器402は、固有のテキスト方向が宣言テキスト方向と一致しない場合、双方向テキストエラーを生成し得る。例えば、宣言方向コンテキストが左から右である一方で固有のテキスト方向は右から左であり得、そしてこの逆もまた同様である。一部の実施形態に従うと、双方向テキストチェッカー314もしくは非宣言方向検出器402は以下のシナリオに基づいて双方向テキストエラーを決定するように構成され得る:1.左から右の、オーバーライドでない基本方向を有するコンテキスト内の、固有の右から左テキストコンテンツ文字RLM/RLE/RLO以外のラン。2.右から左の、オーバーライドでない基本方向を有するコンテキスト内の、固有の左から右テキストコンテンツ文字LRM/LRE/LRO以外のラン。3.左から右の、オーバーライドでない基本方向を有し、その値が強い方向性の右から左文字を含みかつ強い方向性の左から右文字を含まないテキスト<入力>。強い方向性のテキスト文字は、固定された方向を有するアルファベットの文字を含み得る。弱い方向性のテキスト文字は、それ自体は左から右であるがその方向性を自身のコンテキストに与えない、数字のような文字を含み得る。4.右から左の、オーバーライドでない基本方向を有し、その値が強もしくは弱い方向性の左から右文字を含みかつ強い方向性の右から左文字を含まないテキスト<入力>。ページ方向検出器404は、一実施形態に従うと、DOMのルート要素の全体の方向性が予想と異なった場合にエラーを生成するように構成され得る。例えば、ページテキスト方向宣言はウォーカー312により決定され得る。呼び出しコードにより指定された予想のページ方向が宣言ページ方向コンテキストと異なると、エラーが生成され得る。双方向テキストチェッカー314は、一実施形態に従うと、テキスト部分の強い方向性のテキスト文字を決定するように構成され得る。双方向テキストチェッカー314はさらに、テキスト要素の強い方向性のテキスト文字がテキスト部分の方向コンテキストとマッチしない場合に双方向テキストエラーを生成するように構成され得る。一実施形態に従うと、宣言テキスト方向と関連した、テキスト部分の終了テキスト方向コンテキストが決定され得る。終了テキスト方向コンテキストのすぐ後に続く数字テキスト部分はその後決定され得る。双方向テキストエラーは、終了テキスト方向コンテキストが数字テキスト部分より前にある場合に生成され得る。双方向テキストエラーは、開始テキスト方向コンテキストもしくはブロックレベル要素が終了テキスト方向コンテキストと数字テキスト部分との間で検出される場合、保留され得る。双方向テキストエラーはまた、終了テキスト方向コンテキストがテキスト方向の方向を変化させない場合、保留され得る。もう一つの実施形態に従うと、スピルオーバー検出器406は、テキスト部分の後にインラインで続く数字テキスト部分を決定するように構成され得る。宣言テキスト方向は、数字テキスト部分のコンテキストと反対の方向を、間に強い方向性のテキストコンテンツなしで宣言し得る。スピルオーバー検出器406は、周囲のコンテキストと反対の宣言方向性を有するテキストであって、別個の方向性宣言のない数字テキスト部分がインラインで後に続き、その間にはニュートラルのみがあるテキストを検出するように構成され得る。スピルオーバー検出器406はテキスト部分をスピルオーバー候補としてみなすように構成され得る。例えば、dir属性を有する要素が終了しこの終了が現在の方向性に変化を生じさせると、テキスト部分はスピルオーバー候補となる。ニュートラル文字のみが前にある数字を含むテキスト部分に出会うと、これもまた候補となり得る。スピルオーバー検出器406が、例えば強い方向性の文字、もしくはdir属性のような宣言テキスト方向コンテキストを有する要素の開始、もしくは現在の方向性を変化させないdir属性を有する要素の終了、もしくはブロックレベル要素の開始もしくは終了を含むテキスト部分と出会うと、スピルオーバー候補は保留されるかもしくはキャンセルされる。具体的な詳細が、検出器により識別された双方向テキストエラーと関連づけられ得る。例えば:双方向テキストエラーのページ上の構造位置、双方向テキストエラーが現れるページ上のテキスト、ページ上の隣接テキスト、エラータイプおよびその重大度のレベルの推定である。重大度値は一つもしくは複数の要因エラーの可能性を含むに基づいて割り当てられ得る。例えば、テキスト部分が句読点のようなニュートラル文字に隣接すると、エラーは終止符もしくは感嘆符がテキスト部分の異なる側にあるなど重大となり得る。エラーは検出器により生成され得、そして処理のために呼ぶ側へと返され得、そしてオプションで対話型グラフィカルインタフェースを使用してページ上に表示され得る。もう一つの例において、重大度値は、一つもしくは複数の数字もしくはニュートラル文字から成るストリングで開始する、終了する、そのようなストリングがインラインで前にくる、もしくはインラインで後に続く、これらのいずれかに基づいて双方向テキストエラーに割り当てられ得る。ストリングはまた空白文字を含み得る。スキャナ310はウォーカー312および双方向テキストチェッカー314を起動するように構成され得る。一部の場合において、スキャナ310は、JavaScript登録商標のようなウェブページの一つもしくは複数のDOMドキュメントオブジェクトモデルをウォークスルーするスクリプト言語スクリプトにインプリメントされ得る。双方向テキストチェッカー314はウェブアプリケーションによる双方向テキストハンドリングにおけるエラーの発生である可能性がある構造を識別するように構成され得る。ウォーカー312は、ページ上にあるようなテキストコンテンツ内のテキストノードの各セグメントもしくはテキストの一部分の現在の宣言方向性をたどり得る。双方向テキストチェッカー314は、1不正確に宣言された全体ページ方向コンテキスト、2テキストの一部分の宣言方向コンテキストとテキスト文字の実際のテキスト方向との間の不一致、そして3典型的に文字化けしたレンダリングを引き起こす、数字が後に続く反対方向性テキスト、を含む一つもしくは複数のタイプのエラーをチェックするように構成され得る。テキストメッセージエラーを含むは生成され得、そして双方向エラー報告器316によりユーザーもしくは双方向エラーを探索するようスキャナ310に命令した構成要素へと報告され得る。スキャナ310は種々の方法で起動され得る。例えば、スキャナ310はJavaScript登録商標に基づいた試験項目群から直接起動され得る。代替的に、スキャナ310はJava登録商標統合レイヤを経由してJava登録商標に基づいた試験項目群から起動され得る。このことは、呼ぶ側がJava登録商標内のウェブドライバライブラリのようなライブラリを使用してウェブページへとナビゲートされ、Java登録商標関数呼び出しを経由してスキャナ310を起動することを可能にする。内部構造において、Java登録商標コードはライブラリのJavaScript登録商標起動メカニズムを使用してスキャナ310をウェブページ内へと埋め込み得る。スキャナ310は起動され得、そして結果をJava登録商標APIへと報告し得る。例えば、スキャナ310はウェブページが有効になる前に、双方向エラーをチェックするために自動化された試験項目群から呼び出され得る。図1内のテキスト要素のためのサンプルテストは以下のようにインプリメントされ得る:publicvoidtestRightToLeftWebSearchHome{BidiCheckerbidiChecker=newBidiChecker;WebDriverdriver=newBuilder.build;Stringquery=q=2001:ASpaceOdyssey;//Englishsearchstring.driver.gethttp://www.google.com/searchhl=arquery;//ArabicUI.BidiChecker.ErrorsbidiErrors=bidiChecker.checkPagedriver,BidiChecker.Dir.RTL;//Arabicpageshouldhave<bodydir=rtl>.MoreAsserts.assertEmptybidiErrors;//NoBiDierrors}もう一つの実施形態において、URLを受け入れ、ブラウザを開始し、スキャナ310をランし、そしてメッセ―ジもしくはエラーをコンソールへと出力する、コマンドライン実行可能ファイル内へとJava登録商標APIをパッケージするコマンドラインツールが提供され得る。スキャナ310はまた、テスト下のウェブページを、エラーをページ上のそれぞれの位置で視覚的にハイライトするために修正するインブラウザGUIと関連付けられ得、ユーザーがそれらを一つずつブラウズすることもしくはそれらを同時に見ることを可能にする。このGUIはコマンドラインツール、JavaScript登録商標のようなスクリプト言語、もしくはJava登録商標APIのようなAPIを経由して起動され得る。さらなる実施形態に従うと、偽陽性はエラーの特性に基づいてフィルタリング、保留もしくは抑制され得る。検出器は不一致値、各発生が発生の近くのテキストコンテンツ文字のような種々の基準に基づいてどこまで疑わしいか、および発生の方向コンテキストがどれだけ遠くで最もすぐに宣言されるかのような重大度の指示を提供し得る。例えば、基準はブロック要素が発生の位置とその方向が宣言された先行要素の間との経路上に介在するかどうかを含み得る。報告器316は仕様を満たす疑わしい発生を、それらの疑わしさの度合、それらのテキストコンテンツ、およびそれらが発生する要素の特性ページ内のその位置を含むのような種々の特性に基づいて無視するメカニズムを提供し得る。これは、公知のバグと同様に実の問題を表さない偽陽性をフィルタリングで除くことに有用である。スキャナ310は、一実施形態に従うと、ページ内に直接疑わしい発生を表示するために、テストされているページを修正するための特徴を提供し得る。スキャナ310はブラウザにより露呈されるページのDOMをスキャンすることによりインプリメントされ得る。スキャナ310はまた、ブラウザ内をランするスクリプト内にインプリメントされ得る。スクリプトはウェブページの外部にあり得、しかしまた一方ではウェブページ内へと挿入され得る。これで、宣言テキスト方向を決定するためにブラウザのインフラストラクチャが利用可能となる。スキャナ310は、特定の自動化されたウェブアプリケーションテスティングフレームワークと共に使用される、ブラウザページ内にDOMスキャンをインプリメントするスクリプトの挿入を簡単にし、それを実行し、そして結果を回収する能力を提供する一つもしくは複数の構成要素を有し得る。スキャナ310は所与のURLでページをスキャンするスタンドアロンのコマンドラインユーティリティとしてパッケージされ得る。一部の場合において、コマンドラインアプリケーションは、そのページ自体でエラーの位置をハイライトするインブラウザGUIと協力してターミナルへとエラーを出力し得る。図5は、一実施形態に従った、テキストコンテンツ内の双方向テキストをチェックするための例示的な方法500のフロー図である。テキストコンテンツはドキュメントもしくはウェブページのコンテンツの全体もしくは一部分を含み得る。方法500は本発明の一実施形態に関係して記述されるが、方法500を限定する意味はなく、その他のアプリケーションにおいて使用され得る。例において、方法500は図3のスキャナ310を使用して、テキストコンテンツ内の双方向テキストをチェックするために使用され得る。しかしながら、方法500はスキャナ310に限定される意味はない。図5において示されているように、例示的な方法500はテキストコンテンツのテキスト部分の固有のテキスト方向が決定されるステップ502で始まる。このステップは、例えば、双方向テキストチェッカー314により実行され得る。ステップ504で、テキスト部分と関連した宣言テキスト方向が決定される。このステップは、例えば、ウォーカー312により実行され得る。一部の場合において、ステップ504はステップ502の前に実行され得る。ステップ506で、双方向テキストエラーは固有のテキスト方向と宣言テキスト方向との間の不一致に基づいて生成される。例えば、双方向エラーは固有のテキスト方向が宣言テキスト方向とマッチしない場合に生成され得る。例えば、固有の右から左テキスト部分は左から右の宣言テキスト方向とマッチしない可能性があり、そしてこの逆もまた同様である。ニュートラルもしくは混合テキスト部分は不一致とみなされない可能性がある。一部の場合において、宣言方向コンテキストもしくはインジケータが存在しない可能性がある。そのようなテキスト部分はその親の要素のテキスト方向もしくはそのウェブページのテキスト方向を継承する。ステップ508で、双方向テキストエラーが報告される。この報告は報告器316により実行され得る。エラーはそれらそれぞれの位置で強調もしくはハイライトされ得る。エラーはまた、エラータイプに基づいて報告のために選択される可能性も選択されない可能性もある。一部の場合において、特定のエラー特性のセットを有する双方向テキストエラーのみが報告され得る。そのような特性はエラー位置もしくはエラー重大度を含み得る。ステップ502-508はソフトウェア、ハードウェア、ファームウェア、もしくはこれらの任意の組み合わせでインプリメントされ得る。もう一つの実施形態に従うと、ウォーカー312はステップ502の前にテキストコンテンツを複数のテキスト部分へと分ける。一部の場合において、テキストコンテンツは複数のテキスト部分へと分けられ、各テキスト部分に対して、ルールX8を含みX8までのユニコード双方向アルゴリズムのアプリケーションはテキスト部分内のすべての文字に偶数埋め込みレベル、もしくはテキスト部分内のすべての文字に奇数埋め込みレベルのいずれかを割り当てる。ステップ502-508は各テキスト部分に対して実行される。その他の実施形態に従うと、スキャナ310がJavaScript登録商標でインプリメントされる代わりに、それはブラウザのDOM内へと統合された一部のその他のプログラミング言語でインプリメントされ得るか、もしくは任意のプログラミング言語でウェブページのソースHTMLファイルなどをスキャンするようにインプリメントされ得る。ソースをスキャンすることは、しかしながら、それが動的ウェブページAJAXと上手く相互運用しない可能性があるため多少限定的となる。JavaScript登録商標はまた、一部のその他のソフトウェアシステムによりエラーのためにスキャンされるために、動的ウェブページのDOMをテキストのフォーマットへとエクスポートするように使用され得る。JavaScript登録商標でスキャナ310をインプリメントすることは、それが任意の追加のモジュールとの統合を必要とすることなく任意のウェブブラウザから簡単に起動されることを可能にする。Java登録商標/ウェブドライバ、もしくはその他のシステムに任意選択のAPIを提供することは、それらのプラットフォームを既に使用しているソフトウェア試験項目群内へのスキャナ310の統合を促進する。スキャナ310、もしくはウォーカー312、双方向テキストチェッカー314もしくは双方向エラー報告器316は、チェックされるテキストコンテンツを含むウェブページ内へと挿入されているJavaScript登録商標のような外部のスクリプト言語スクリプトから呼び出され得る。一部の場合において、スキャナ310はユーザーがスキャンされるURLを提出することを含むオンラインサービスとして提供され得る。その他の場合において、スキャナ310はブラウザから対話方式で起動されるためにブラウザ拡張機能としてパッケージされ得る。一部の実施形態において、ページ上の双方向テキストエラーを識別するためのその他のアルゴリズムがあり得る。例えば、テキストをそれらの宣言方向性によりセグメントへと区切る代わりに、スキャナ310は方向性が変化するところの文字位置の別個のインデックスを生成し得、そして任意の所与の位置で方向性を探索するためにそれを使用し得る。エラー報告のための有用なインブラウザGUIもしくはフィルタリングメカニズムを設計する種々の方法があり得る。例示的なシステム300と400および/もしくは方法500もしくはその任意の一つもしくは複数の部分もしくは一つもしくは複数の機能のための実施形態の側面は、ハードウェア、ソフトウェア、モジュール、ファームウェア、命令が記憶されている実体のあるコンピュータ読み取り可能もしくはコンピュータ使用可能記憶媒体、もしくはこれらの組み合わせを使用してインプリメントされ得、かつ一つもしくは複数のコンピュータシステムもしくはその他の処理システム内にインプリメントされ得る。コンピュータ使用可能媒体の例は、限定されることはないが、一次記憶デバイス例えば、任意のタイプのランダムアクセスメモリ、二次記憶デバイス例えば、ハードドライブ、フロッピー登録商標ディスク、CDROM、ZIPディスク、テープ、磁気記憶デバイス、および光記憶デバイス、MEMS、ナノテクノロジー記憶デバイスなどを含む。コンピュータ命令は一つもしくは複数のプロセッサを使用して実行され、そして不揮発性記憶媒体もしくは記憶デバイス内に記憶され得る。不揮発性記憶はハードディスクドライブ、フラッシュメモリ、そしてコンピュータプログラム命令およびデータをコンピュータ読み取り可能媒体上に記憶し得る同様のデバイスのうちの一つもしくは複数を含み得る。一つもしくは複数の不揮発性記憶デバイスは取り外し可能な記憶デバイスであり得る。メモリデバイスは、ランダムアクセスメモリこれに限定されることはないがのような一つもしくは複数の揮発性記憶デバイスを含み得る。実施形態は具体的な機能のインプリメンテーションおよびその関連を説明する機能的なビルディングブロックを用いて上で記述されている。これらの機能的なビルディングブロックの境界は、記述の便宜性のために本明細書中で独断的に定められる。代替の境界は、具体的な機能およびその関連が適切に実行される限り定められ得る。具体的な実施形態の前述の記述は、本発明の一般的な本質を非常に十分に明瞭にし、他者は当該分野の知識を適用することにより、過度な実験をすることなくかつ本発明の一般的な概念から逸れることなく、そのような具体的な実施形態を容易に改変および/もしくは種々の適用に適合し得る。従って、そのような適合および改変は本明細書内に示される教示および手引きに基づく、開示される実施形態の均等物の意味および範囲内にあることが意図される。本明細書内の語法もしくは用語は限定する目的ではなく記述のための目的があることが理解され、本明細書の用語もしくは語法は本教示および手引きの観点から当業者により解釈される。本発明の広さおよび範囲は上述の例示的な実施形態のいずれによっても限定されることはなく、以下の特許請求の範囲およびその均等物に従ってのみ定義され得る。"