メインコンテンツへスキップ要素の検索領域は、Where to search セクションで設定された要素プロパティと、Search Conditions セクションで設定された条件によって形成されます。プロパティと条件が適用される前は、検索領域はページの矩形と一致しています。まずプログラムが領域に要素プロパティを適用し、続いて Search Conditions セクションで設定された追加の制約を適用します。
Search Conditions セクションでは、次の種類の制約を設定できます。
-
検索領域を矩形(
Rect 変数)、領域(すなわち矩形の連続配列 — Region 変数)、または一般には連続である必要のない矩形配列(RectArray 変数)に限定できます。この種の制約は、RestrictSearchArea 関数を使用し、対応する型のパラメータを指定して設定します。必要な型の値を返す任意の式をパラメータとして指定できます。
-
検索領域を、特定の点の左、右、上、または下に位置する半平面に限定できます。これらの制約は、Leftof、Rightof、Above、Below 関数を使用して設定します。
-
要素の境界に対して制約を設定したい場合があります。たとえば、要素の左境界は常に画像の左側にあり、右境界は右方向に無限に伸び得ることが事前に分かっている場合です。FlexiLayout 言語では、検索領域の計算段階でこのような制約を設定し、要素に関する仮説の範囲を絞り込むことができます。これらの制約は、
LeftBound、RightBound、topBound、BottomBound 関数と演算子 > および < を用いて設定します。LeftBound と RightBound 関数は検索領域の左境界と右境界にアクセスするために使用し、topBound と BottomBound 関数はそれぞれ上境界と下境界にアクセスするために使用します。
-
検索領域から矩形、矩形配列、仮説などを除外して検索の制約を設定できます。これは
Exclude、ExcludeRect、ExcludeSet 関数を使用して行います。
Search Conditions セクションでは、上記の種類の検索制約を任意の数だけ指定できます。各制約は画像上に領域を作成し、これらの領域はすべて相互に交差(積集合)されます。
さらに、要素の算出済み検索領域は、この要素が属する Group 要素の検索領域とも交差されます。