Имеет ли использование HTML-тега fieldset смысл, выходящий за рамки группировки форм?

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


person Thomas Owens    schedule 24.11.2008    source источник


Ответы (6)


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

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

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

Представьте, что вы идете в местные парки и места отдыха, чтобы поиграть в софтбол с друзьями. Есть 3 доступных поля. Все они имеют таблички на заборе «ТОЛЬКО БЕЙСБОЛ».

Вы собираете свое снаряжение и идете домой?

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

Нигде в определении не упоминаются формы:

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

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

<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>
person William    schedule 29.11.2009
comment
Элементы управления и метки, то есть поля. Как говорит mmiika, использование наборов полей для обычного контента является злоупотреблением. Если вы ищете элементы семантической группировки, вам следует обратить внимание на элементы ‹section› ‹aside› ‹article› из html5. В таблицах уже есть элемент ‹summary›, который может дать вам метку, если вам это нужно. - person Jethro Larson; 14.12.2010

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

person mmiika    schedule 24.11.2008
comment
Элементы управления будут означать отдельные элементы формы, верно? Например, группа флажков, группа переключателей, а не вся форма? - person Thomas Owens; 24.11.2008

Бит «поле» в имени fieldset относится к <form> полям.

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

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

person Már Örlygsson    schedule 24.11.2008

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>
person VonC    schedule 24.11.2008
comment
Спасибо за ссылку, но я знал об использовании тегов для описания значения. Однако я не уверен в значении fieldset. - person Thomas Owens; 24.11.2008

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

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

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

И для записи, элемент fieldset не предназначен для использования вне форм. А в формах предполагается концептуально сгруппировать такие же поля ввода — такие вещи, как «личная информация» или «платежный адрес» и т. д.

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

person Andy Ford    schedule 24.11.2008

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

person Galwegian    schedule 24.11.2008