I often face a problem when I need to encapsulate some far apart fields in one form, and the fields in between them in other forms. Or encapsulating first two rows of a table in form and other two in other forms and so on. But of-course this is not allowed in standard practice. My question is why such tags like form (and other non displaying tags) have to be treated as “displaying” tags, and they also are restricted to be used at some places. Is there any genuine reason.
PS: what I was thinking about form in particular, that I define as many forms as I want at a single place, and give their references (eg ids or names) to the corresponding fields. That way form tag does not have to interfere somehow with the location of fields?
Asking “why” questions of HTML behaviour is not normally a useful activity. Very often the answer is “because one of the browsers originally did it that way and we’re stuck with it for backward-compatibility reasons”.
Note also what @DanMan says about the displayability of
<form>.However, your description of declaring forms in one place and then having the controls associate with the forms by id, is very similar to what has been done with the HTML5
formattribute. The only difference is that the controls reference the forms, rather than the forms referencing the controls. All we need to do now is wait for implementations in the browsers.