Вопрос

У меня никогда не было причины помещать элемент label внутри элемента легенды (никогда не думал об этом и не видел, как это было сделано). Но с дизайном, который я реализую, это заманчиво.

Вот что мне хочется сделать:

<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 он работает должным образом (нажатие на метку фокусирует соответствующий ввод) и проходит проверку, но мне просто интересно, есть ли какие-либо известные причины (доступность? семантика? браузер) вопросы) почему это не должно быть сделано

Это было полезно?

Решение

Где твой </fieldset>?

Семантически legend описывает fieldset так же, как label описывает одно поле.

Полевые наборы должны использоваться для группировки семантически связанных полей (например, " address " fieldset может иметь поля ввода для улицы, города и страны).

Если у вас есть более одного поля в наборе полей, то делать то, что вы предлагаете, семантически не имеет смысла - вам нужно создать отдельный текст легенды, который описывает набор полей, а затем метку для каждого поля.

Если у вас есть только одно поле, то вам вообще не нужен набор полей или легенда.

Так что, в принципе, вы не должны делать то, что делаете.

Если вы делаете это, чтобы иметь дополнительные элементы для присоединения правил CSS или событий Javascript, вам лучше использовать общие элементы, такие как div и span, которые не будут путать преобразование текста в речь и другие. невизуальные агенты пользователя.

т. е. вставка select или <=> фактически нейтральна с точки зрения доступности / семантики (она ничего не подразумевает) по сравнению с неправильным использованием семантического элемента (хотя бы незначительно, как в этом случае), что потенциально вводит в заблуждение , Представьте себе даже сценарий лучший случай для вашего макета в браузере преобразования текста в речь: текст читается вслух дважды, один раз как легенда, а второй как метка - зачем кому-то эта фраза quot; хотелось бы получить информацию о " читать им вслух дважды? Тем более, что это имеет смысл только в контексте выбора в <=> элементе управления.

Другие советы

Ну, сам элемент label выглядит нормально - это описание " formInfo " элемент, так что не беспокойтесь. Семантически, однако, что это говорит об элементе legend? Это должен быть заголовок для всего набора полей ....

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top