2

フォームの単体テストを行っていたところ、Orbeon が提供する自動タブ インデックスに深刻な問題があることがわかりました。

私の場合、図の番号で示されているように、タブ インデックス 1 ~ 7 をたどる必要があります。

モデル:

<xforms:model>
    <xforms:instance id="dropdown-values">
        <form>
           <yes-no>
             <options>Yes</options>
             <options>No</options>
          </yes-no>
       </form>
    </xforms:instance>
</xforms:model>

ラジオを次の形式で作成するロジック:

<xforms:itemset nodeset="instance('dropdown-values')/yes-no/options">
    <xforms:label ref="." />
    <xforms:value ref="." />
</xforms:itemset>

http://i.stack.imgur.com/9QvKq.jpg

上記の例では、[テキストを有効にする] オプションで [いいえ] を選択すると、次のテキスト ボックスが無効になるという機能があります。現在、Orbeon はデフォルトのタブインデックスを提供し、選択されたラジオ ボタンから次のフィールドに切り替えています。すなわち:

  • ラジオが「いいえ」として選択されている場合、タブを使用したナビゲーションは 2->6 と繰り返されます
  • ラジオが「はい」として選択されている場合、タブを使用したナビゲーションは 1->3->4->5->7 と繰り返されます

しかし、意図された機能は次のとおりです。

  • ラジオが「いいえ」として選択されている場合、タブを使用したナビゲーションは 1->2->5->6 となり、繰り返します。
  • ラジオが「はい」として選択されている場合、タブを使用したナビゲーションは 1->2->3->4->5->6->7 になります。
4

2 に答える 2

1

私がこれをよく理解していれば、コントロールがページにある順序でタブ移動を行う必要があります。問題は、ラジオ ボタンをタブで移動するときです。

  • 「カーソル」が各ラジオ ボタンに続いて移動することがわかります。
  • 次のフィールドに移動するようにします。

これを試してみると、ラジオボタンが常に選択されている場合、カーソルはすべてのラジオボタンを通過するのではなく、選択したラジオボタンだけを通過するため、使用しているブラウザーがわかりません。つまり、「あなたが観察するもの」の振る舞いではなく、「あなたが望むもの」を得ています。これを Firefox 4 と IE 7 でテストしました。

ところで、この動作は XForms とは何の関係もありません。これは、HTML コントロールでのタブ移動のしくみです。

Firefox 4 のタブ

于 2011-03-29T02:38:49.740 に答える
1

XForms は、セクション 8.1「XForms コア フォーム コントロール モジュール」navindexで定義されている、この目的のための属性を提供します。

...ナビゲーション シーケンスを定義するために使用される 0 ~ 32767 の範囲の負でない整数。これにより、作成者は、フォーム コントロールがトラバースされる順序を制御できます。

セクション 4.3.6 の xforms-next および xforms-previous イベント には、navindexナビゲーションに関連するいくつかのより細かい点についてのさらなる議論もあります。

于 2011-03-17T20:02:08.107 に答える