2016-03-31 6 views
3

私は現在CMS用のフォームモジュールを作成していますので、ユーザーは自分のフォームを作成して自分のWebサイトに表示することができます。あなたが入力の[id]にリンクする[for]属性で<input>ため<label>を持っている場合、ラベルなどラベル "for"と入力 "id"

は、私の質問は、[id]は実際に何かを意味する必要はないのですか?それは読まれていますか?それとも、リンクするだけですか?

例:

<label for="input1">Name</label> 
<input id="input1" /> 

または

<label for="name">Name</label> 
<input id="name" /> 

これらはスクリーンリーダーで同じまたは異なる結果を持っていますか?

+3

それが何を意味する必要はありませんが、それを論理的に何かにラベルを付けることをお勧めだようにあなたの未来の自己を含む他のものは混乱しません – Pixelomo

+3

他のものとは全く別に、あなた自身の*正気のために名前を意味のあるものにしようとします。 –

+1

私自身のhtmlを使っているときは、私のIDは意味がありますが、データベースをループしているので、IDはinput1、input2 input3などとなります。 –

答えて

6

あなたが入力の[id]にリンクする[for]属性で<input>ため<label>を持っている場合は、[id]は、実際に何かを意味するのでしょうか?

ブラウザセマンティクス*ブラウザがDOMノードを識別する方法と、ブラウザが補助ナビゲーションを使用するユーザーにどのような情報を読み取るかを参照してください。

[id]および[class]属性は、にはセマンティクスを追加しません。できるだけ記述的なIDとクラスを使用することが重要ですが、開発を容易にするために限ります。

読み込まれていますか?

いいえ私の知る限り、[id]属性は、Webサイトの通常の操作でユーザーに直接読み取られることはありません。ドキュメントのフラグメント識別子については、私の注記を参照してください。

または、それをリンクするだけですか?

それは<input>ラベル指示、ラベルがラベル付けされ、また、そのような標識は、クリックされたタップ、または他の方法でトリガーされたとき、関連する入力にフォーカスを移動させるなど、いくつかのUI機能を提供(または<select>又は<textarea>&hellip)を。

ラベル要素にフォーカスが当てられている場合、ブラウザは要素に関連付けられたラベルを読み取るように画面リーダーに指示します。


[name]属性はどうなりますか?それはセマンティック何かを示すものではありませんので、<form>スクリーンリーダーで

しかし[name]属性は、クエリ文字列でのキーとして使用されますGET要求に対して、[name]属性を読むことはありません。クエリ文字列をユーザーに読めるので、自動生成されたものではなく人間が読める[name]を使用することを検討する価値があります。


ドキュメントフラグメント識別子はどうですか?

[id]<a>を使用する場合は、URLのハッシュになると[id]属性の値が読み取られることがあります。 [name]属性の場合と同様に、これらの場合には人間が読める[id]を使用することを検討する価値があります。


独自の意味&hellipを議論しますその定義を意味している言葉、*;困難とかなりのメタは

+0

@Liam、終わり近くのことについてこの回答はまだ進行中です。私が追加しなければならないことに気が付いたら私に知らせてください。 – zzzzBov

+0

ええ、申し訳ありませんが、あなたはすでにこれに対処していたことに気付きました – Liam

+1

よろしくお願いいたします。それは理にかなっている。私は通常、記述的なIDを使用しますが、ループの中では、それらはinput1、input2、input3などと呼ばれます。 –

0

いいえ、そうではありません。

idまたはclassのいずれかがユーザーに表示されている場合は、おそらく間違ったことが起こっている可能性があります。または、不自然なレベルのコード透過性を持つようにしようとしています。例えば、クラスルームの状況に適している可能性があります。

classidの属性は、プログラミング目的でのみ使用できます。彼らは自分で設定した命名規則に従い、プログラマーの観点からできるだけ多くの意味を持たなければなりません。

関連する問題