6

label 要素を legend 要素の中に入れる理由はありませんでした (実際にそれについて考えたことも、見たこともありませんでした)。しかし、私が実装している設計では、そうするのは魅力的です。

これが私がやりたいと思っていることです:

<fieldset>
<legend><label for="formInfo">I would like information on</label></legend>
<select id="formInfo">
    <option value="Cats">Cats</option>
    <option value="Dogs">Dogs</option>
    <option value="Lolz">Lolz</option>
</select>
</fieldset>

Firefox3、Safari、Opera、および IE6/7 で期待どおりに動作し (ラベルをクリックすると、対応する入力がフォーカスされます)、検証に合格しますが、既知の理由 (アクセシビリティ? セマンティクス? ブラウザーの問題) があるかどうか疑問に思っています。これはすべきではありません

4

2 に答える 2

13

あなたのはどこ</fieldset>ですか?

意味的に、単一のフィールドを説明legendするのfieldsetと同じように、 を説明します。label

フィールドセットは、意味的に関連するフィールドをグループ化するために使用されることになっています (たとえば、「住所」フィールドセットには、通り、都市、および国の入力フィールドがある場合があります)。

フィールドセットに複数のフィールドがあると仮定すると、提案したことを実行しても意味がありません。フィールドセットを説明する個別の凡例テキストを作成してから、各フィールドのラベルを作成する必要があります。

フィールドが 1 つしかない場合は、フィールドセットや凡例はまったく必要ありません。

したがって、基本的に、自分がしていることを行うべきではありません。

CSS ルールや Javascript イベントを追加する要素を追加するためにこれを行っている場合は、テキスト読み上げやその他の非視覚的なユーザー エージェントを混乱させないdivような一般的な要素を使用することをお勧めします。span

つまり、divorを配置するspanことは、アクセシビリティ/セマンティクス (何も意味しない) の点で効果的にニュートラルであり、セマンティック要素の誤用 (この場合のようにほんの少しでも) に対して、誤解を招く可能性があります。テキスト読み上げブラウザでのレイアウトの最良のシナリオを想像してみてください: テキストは 2 回読み上げられます。1 回は凡例として、もう 1 回はラベルとして読み上げられます。彼らに二度?特に、selectコントロールの選択肢のコンテキストでのみ意味があるためです。

于 2008-10-27T06:05:00.557 に答える
0

まあ、label 要素自体は問題ないようです。それは「formInfo」要素の記述なので、心配する必要はありません。legendしかし意味的には、これは要素について何を言っているのでしょうか? フィールドセット全体のキャプションになるはずです....

于 2008-10-27T03:33:12.673 に答える