0

Dojo は、いくつかの「通常の」入力要素をより複雑なノード構造に変換します。例えば、Dojoは要素dijit/form/Selectではなくテーブルで構成されるウィジェットになります。id が要素ではなくa にマップされるものに変換されます。などなど<select>dojox.form.Uploaderspan<input id="myId" type="file"

アクセシビリティのために、ラベルを入力ウィジェットにマップする必要があります。Waveforを介して Web サイトを実行すると、ラベルの値が入力と一致しないため、多くの危険信号が生成されますid

この問題を回避する最善の方法は何ですか?

4

1 に答える 1

1

ほとんどのidウィジェットでプロパティを設定できます。これは、必要な内部ノードに配置する必要があります。例として、このフィドルを見てください。TextBox ウィジェットの HTML インスペクタを開くと、外側のノードに「widget_[my id]」とウィジェットに渡した ID があることがわかります。その外側の div の内容を掘り下げると、実際の要素に、渡した目的の ID が実際に含まれていることがわかります。<input>idwidgetid<input>

ただし、hidden を使用して値を格納するより複雑なウィジェットの場合は、プロパティ<input>の ID を明示的に設定する必要があるようです。このフィドルvalueNodeで例を見ることができます。

したがって、次のようにプログラムでウィジェットを作成できます。

var select = new Select({
  ... widget properties
});
select.valueNode.id = "my_id"; // probably best to use dom-attr to set this.

ウィジェットが宣言的に作成されている場合は、レジストリ、アタッチ ポイント、または dijit#byId を介してウィジェットにアクセスする必要があります。

于 2013-07-24T14:39:33.437 に答える