Имеет ли использование HTML-тега fieldset значение помимо группирования форм?

обычно я видел это с формами, но я нашел полезным группировать связанные наборы данных (например, когда у вас есть несколько таблиц на странице, используя набор полей вокруг каждой таблицы или группы связанных таблиц для определения видимого значения и имени группы (легенда)). Это злоупотребление тегом fieldset до такой степени, что в моем использовании он больше не имеет семантического значения?

6 ответов


Я вижу семантические преимущества блокировки контента в наборы полей с легендами.

хотя W3C связал использование наборов полей и легенд с формами, разрешение использования вне тега формы открывает новые границы для экспериментов. Потенциально похож на используемый список определений.

Я лично не думаю, что" поле " в fieldset специфично для поля формы. Он просто унаследовал отношения от его использования в теге формы. поле относится к группировка.

представьте себе, идя в местные парки и отдыха, чтобы играть в софтбол с друзьями. Есть 3 доступных полей. Все они имеют знаки на заборе "только бейсбол"

вы собираете свои вещи и идете домой?

маркировка использование наборов полей и легенд вне злоупотребления тегом формы является узким.

нет, где в определении сказано, формы:

элемент FIELDSET позволяет авторам группировать тематически связанные элементы управления и этикетки. Группировка элементов управления делает это проще для пользователей, чтобы понять их цель одновременно облегчения перехода навигации визуальные агенты пользователей и речь навигация для речевого пользователя агенты. Правильное использование этого элемента делает документы более доступными.

Я рассматриваю управление форматированием тегов xhtml. div p blockquote etc.

<h1>The Big Book about Everything</h1>
<fieldset>
    <legend>Jokes</legend>
    <h2>30 pages of humorous Jokes</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    <p>Cras nec diam eu lectus condimentum faucibus in et odio.</p>
</fieldset>
<fieldset>
    <legend>Poems</legend>
    <h2>20 pages of well written poems</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    <p>Cras nec diam eu lectus condimentum faucibus in et odio.</p>
</fieldset>
<fieldset>
    <legend>Horror</legend>
    <h2>3 Short and scary stories</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    <p>Cras nec diam eu lectus condimentum faucibus in et odio.</p>
</fieldset>
<fieldset>
    <legend>Mystery</legend>
    <h2>3 Short and mysterious stories</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    <p>Cras nec diam eu lectus condimentum faucibus in et odio.</p>
</fieldset>

Я считаю, что это будет злоупотреблением. http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.10 состояния " элемент FIELDSET позволяет авторам группировать тематически связанные управления и этикетки".


бит "поле" в имени fieldset относится к <form> поля.

используя fieldset за пределами formS для группировки данных aribtrary явно семантическое злоупотребление.

тем не менее, ваш HTML будет проверять и Бог не будет убить котенка.


полей о сформировать контрольную группу. Группируя связанные элементы управления формами, авторы могут разделить форму на более мелкие, более управляемые части, улучшая проблему удобства использования, которая может возникнуть при столкновении пользователей со слишком большим количеством элементов управления формами.

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

таким образом," злоупотребление " может исходить из того, что спецификации HTML 4 и XHTML не требуют, чтобы набор полей и легенда содержались в элементах формы. FIELDSET может быть даже дочерним элементом элемента BODY. Это допустимый синтаксис для размещения наборов полей вне форм.

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

лучше всего думать о тегах HTML / XHTML как описывающих значение элемента, а не как это будет выглядеть. Затем вы можете использовать CSS, чтобы сделать элемент похожим на то, что вы хотите.

Если вы группируете данные для целей презентации, вы можете найти здесь хорошая альтернатива CSS.

Для справки:

.fieldset {
border-right: 1px solid #75736E;
border-bottom: 1px solid #75736E;
border-left: 1px solid #F2F0EE;
border-top: 1px solid #F2F0EE;
padding: 10px 3px 3px 3px;

}

.outer {
border-left: 1px solid #75736E;
border-top: 1px solid #75736E;
border-right: 1px solid #F2F0EE;
border-bottom: 1px solid #F2F0EE;
width: 200px; /* CHANGE THIS FOR BOX SIZE */
} 

.legend {
float: left;
margin-left: 15px;
margin-top: -8px;
padding-left: 5px;
padding-right: 5px;
font-weight: bold;
background: #FFF;
} 

<div class="legend">Lipsum.com Is The Best</div>
<div class="outer">
<div class="fieldset">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 
Donec congue fermentum metus. Quisque vel ante. 
Cras purus metus, dignissim at, luctus et, sollicitudin eget, urna. 
Maecenas eget lacus. Aenean bibendum risus non erat mattis semper. 
Aliquam placerat nibh eget lacus. Sed blandit eleifend justo. Nam elit. 
Fusce feugiat orci id eros facilisis laoreet. 
Integer vestibulum condimentum purus. 
Proin vehicula congue lacus. Quisque placerat diam nec enim. 
Nunc lorem. Maecenas nec sem sed nulla tristique faucibus.</div></div>

Если вы хотите сгруппировать таблицы, рассмотрите возможность использования соответствующего элемента заголовка (h1-h6) для каждой группы. Отдельные таблицы можно описать с помощью'заголовок'. Атрибут "сводка" также доступен для каждой таблицы.

спецификации:

каждая таблица может иметь связанный заголовок (см. элемент caption), предоставляет краткое описание назначение стола. Длинное описание также могут быть предоставлены (через резюме атрибут) на благо людей использование речи или пользователя на основе Брайля агенты.

и для записи элемент 'fieldset' не предназначен для использования вне форм. И внутри форм он предназначен для концептуально группирования таких полей ввода, как "личная информация" или "адрес выставления счетов" и т. д.

вот интересная статья, в которой обсуждается, что пользователи Screen-reader слышат при навигации по наборам полей. http://www.rnib.org.uk/wacblog/articles/too-much-accessibility/too-much-accessibility-fieldset-legends/


тег fieldset также используется для чтения с экрана и некоторых других вспомогательных технологий.