Dojoは、いくつかの「通常の」入力要素をより複雑なノード構造に変換します。たとえば、Dojodijit/form/Select
は、<select>
要素ではなくテーブルで構成されるウィジェットになります。dojox.form.Uploader
idが要素でspan
はなくaにマップされるものに変換され<input id="myId" type="file"
ます。などなど。
アクセシビリティのために、ラベルを入力ウィジェットにマップする必要があります。ラベルの値が入力と一致しないため、Waveを介してWebサイトを実行すると、多くの危険信号が生成されfor
ますid
。
この問題を回避する最善の方法は何ですか?
ほとんどのウィジェットにid
プロパティを設定できます。これは、必要な内部ノードに配置する必要があります。例として、このフィドルを見てください。TextBoxウィジェットのHTMLインスペクターを開くと、外部ノードに「widget_ [myid]」とウィジェットに渡したIDが含まれていることがわかります。その外側のdivの内容を掘り下げると、実際の要素には、私が渡した目的のIDが実際に含まれていることがわかります。<input>
id
widgetid
<input>
ただし、hidden<input>
を使用して値を格納するより複雑なウィジェットの場合は、valueNode
プロパティのIDを明示的に設定する必要があるようです。このフィドルで例を見ることができます。
したがって、次のようにプログラムでウィジェットを作成できます。
var select = new Select({
... widget properties
});
select.valueNode.id = "my_id"; // probably best to use dom-attr to set this.
ウィジェットが宣言的に作成されている場合は、レジストリ、アタッチポイント、またはdijit#byIdを介してウィジェットにアクセスする必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加