Ответ 1
Да, это семантически правильно.
РЕДАКТИРОВАТЬ: Головокружения заставили меня переформулировать вопрос.
Является ли он семантически корректным представлять подразделы с использованием полей?
= Basic Info =
First Name: ________
Last Name: ________
= Address =
Business Name: ________
Streeet: ________
City: ________
Как вы работаете с вложенными формами? Разве нет лучшего способа, который по умолчанию выглядел бы нормально?
Да, это семантически правильно.
В основном вы задали два вопроса:
Если это семантически исправляет ваш пример и если вы можете вставлять элементы fielset.
Некоторые приведенные здесь ответы неверны.
Синтаксически корректно, но не семантически корректно, и вы можете вставлять элементы набора полей.
Это не семантически правильно по той причине, что форма это не элемент представления. Таблицы используются для отображения информации в строках и столбцах, где вы явно этого не делаете. Стол не является опорой для создания хорошей формы, и именно так вы ее использовали.
Ниже вы можете найти несколько советов.
Обращаясь к стандарту HTML5, я цитирую из документа заявки: "Каждая часть формы считается абзацем и обычно отделена от других частей с помощью p элементов".
http://dev.w3.org/html5/spec/single-page.htm раздел 4.10
http://dev.w3.org/html5/spec-LC/forms.html
Также должен отвечать на вопрос о вложенности.
Вопрос, я думаю, возникает из желания узнать, как разделать контент. Ответ - с полями. Сама форма имеет смысл, поэтому "да", это будет набор полей, который будет содержать все элементы формы (и может быть отключен).
Возвращаясь к вашему примеру, у вас будет набор полей для "регистрации" и разделов регистрации, сгруппированных по вложенным полям, так как один из таких разделов в вашем примере - это "адрес".
"Лучший" способ сделать форму... это зависит, и я думаю, что это еще один вопрос, который останется открытым для обсуждения, пока HTML5 не будет готов и не будет корректно реализован во всех браузерах.
Да, есть пример вложенности в спецификациях.
<fieldset name="clubfields" disabled> <legend> <label> <input type=checkbox name=club onchange="form.clubfields.disabled = !checked"> Use Club Card </label> </legend> <p><label>Name on card: <input name=clubname required></label></p> <fieldset name="numfields"> <legend> <label> <input type=radio checked name=clubtype onchange="form.numfields.disabled = !checked"> My card has numbers on it </label> </legend> <p><label>Card number: <input name=clubnum required pattern="[-0-9]+"></label></p> </fieldset> <fieldset name="letfields" disabled> <legend> <label> <input type=radio name=clubtype onchange="form.letfields.disabled = !checked"> My card has letters on it </label> </legend> <p><label>Card code: <input name=clublet required pattern="[A-Za-z]+"></label></p> </fieldset> </fieldset>