- From: Xaxio Brandish <xaxiobrandish@gmail.com>
- Date: Wed, 8 May 2013 10:41:29 -0700
- To: Ian Yang <ian@invigoreight.com>
- Cc: public-html-comments@w3.org
- Message-ID: <CABAoKZnKXPSrhWnCF8i0LZ0x3=sega3rWCrJZaX0+pjy-zhiUQ@mail.gmail.com>
Ian, Just to clarify -- the *p* element is separating the phrasing content in the *specific* example you pointed out, rather than grouping it. After all, the radio buttons in the example are related. Most of the time, the *p * element should be used for grouping, not separation. I do believe that the example would make more sense without the paragraph elements. Hopefully, the example will get modified in the next versions of the latest draft. --Xaxio On Wed, May 8, 2013 at 4:20 AM, Ian Yang <ian@invigoreight.com> wrote: > On Wed, May 8, 2013 at 6:41 PM, Xaxio Brandish <xaxiobrandish@gmail.com> > wrote: > > Ian, > > > > In your example, the text after the input element could simply exist > without > > the surrounding paragraph tags. However, I agree that using paragraph > > elements to thematically group form controls and sections is an odd > > decision. Let's try to trace it back. > > > > HTML 5.1 [1] states that: > > > >> Each part of a form is considered a paragraph, and is typically > separated > >> from other parts using p elements. > > > > > > Note that "part" in the above statement is not well-defined. The > section is > > non-normative, but it is the only guide we have for why <p> would be > used to > > separate "parts" of a form. Fieldsets are often part of a form, but > since > > fieldsets are not considered "phrasing content", they cannot be > paragraphs > > -- they can only contain paragraphs. A paragraph is defined as a "run" > of > > phrasing content, but at no point is there a clear definition of what > "run" > > means in this case. If a run is a continuous section of phrasing > content, > > meaning content that is not broken up by content other than phrasing > > content, then "each part" in the above statement could *only* refer to > the > > entire form if it does not contain one of the following elements (the > list > > of flow content minus the list of phrasing content): > > > > address > > article > > aside > > blockquote > > details > > dialog > > div > > dl > > fieldset > > figure > > footer > > form > > h1 > > h2 > > h3 > > h4 > > h5 > > h6 > > header > > hr > > main > > menu > > nav > > ol > > p > > pre > > section > > style (if the scoped attribute is present) > > table > > ul > > > > In HTML 4.01 [2], the examples given have the entire form content > wrapped in > > a paragraph element, which would seem to jive with the above postulation. > > Note that the p element is NOT allowed to contain flow content in HTML > 5.1, > > so it cannot contain a fieldset as some examples in HTML 4.01 do. > > > > HTML 3.0 [3] states that: > > > >> Forms are created by placing input fields within paragraphs, > preformatted > >> text, lists and tables. This gives considerable flexibility in > designing the > >> layout of forms. > > > > > > Ah ha! We can infer from this that the original purpose of using the > > paragraph element in a form is for layout purposes, which is now in the > > domain of CSS. > > > > HTML 2.0 [4] states that: > > > >> ...a FORM element may contain lists which contain INPUT elements. This > >> gives considerable flexibility in designing the layout of forms. > > > > > > Verified. An example given in HTML 2.0 [5] uses both paragraph elements > and > > list elements to help with form design. > > > > So there you have it. The reason paragraph elements are used in forms > goes > > back to being a design element. However, we now have CSS that clearly > > specifies how design applies to content, so it is no longer necessary to > use > > explicit p elements around related parts of a form when a label element > will > > suffice. Over time, the paragraph element has taken on a different > meaning. > > This means that the p elements in the examples located at the link you > gave > > [6] serve no purpose as they are used in those examples. The label > element > > alone would suffice. The p tags do not serve to group thematically > related > > content in the examples -- in fact, they actually separate it. > > > > Knowing what we do, using the p tag for a paragraph element will only > break > > up runs of phrasing content into separate paragraphs. It *may* not be > the > > best element to use for styling when it is necessary to contain certain > > other elements, as is often the case with forms. There is no way to know > > what a form "part" is; the author must decide what a form "part" is for > his > > or herself. To solve the dilemma of wanting to use a paragraph tag as a > > textual semantic instead of a structural element, you can use one of the > > tags in the list above that accept flow content as a grouping mechanism > for > > related fields and form data instead, such as fieldset, div, or section; > > each of these can contain p elements. > > > > References: > > [1] > > > http://www.w3.org/html/wg/drafts/html/master/forms.html#writing-a-form%27s-user-interface > > [2] http://www.w3.org/TR/html401/interact/forms.html#idx-label > > [3] http://www.w3.org/MarkUp/html3/forms.html > > [4] http://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8 > > [5] http://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2.3 > > [6] http://www.w3.org/TR/html5/forms.html#the-fieldset-element > > > > --Xaxio > > > > Hi Xaxio, > > I appreciate your deep research! > > It looks like using <p> to group form controls really is odd. And I > agree with you that what it does is actually separating runs of > phrasing content instead of grouping them. I guess I will just use > <div>. > > > Cheers, > Ian Yang >
Received on Wednesday, 8 May 2013 17:42:36 UTC