108
votes

I am trying to figure all the valid HTML5 elements that can be nested inside paragraph elements such that w3 validator doesn't show any errors. I mean I am trying to figure all tags that can replace the dots in the following code such that w3 validator doesn't show any errors:

<p>...</p>

Is there such a list available? I tried searching on Google without any luck.

Even if the converse list is available, i.e. elements that can not be nested inside paragraph elements, it is good enough for me.

1
possible duplicate of: stackoverflow.com/questions/4967976/… (unflagged): any decent answer to that will answer how to read the HTML spec and thus also answer this. - Ciro Santilli 新疆再教育营六四事件法轮功郝海东
The above link is NOT a duplicate. - SherylHohman

1 Answers

149
votes

The HTML5 spec tells us that the <p> element's content model is phrasing content. Phrasing content is defined by the spec:

3.2.5.1.5 Phrasing content

Phrasing content is the text of the document, as well as elements that mark up that text at the intra-paragraph level. Runs of phrasing content form paragraphs.

  • a (if it contains only phrasing content)
  • abbr
  • area (if it is a descendant of a map element)
  • audio
  • b
  • bdi
  • bdo
  • br
  • button
  • canvas
  • cite
  • code
  • command
  • datalist
  • del (if it contains only phrasing content)
  • dfn
  • em
  • embed
  • i
  • iframe
  • img
  • input
  • ins (if it contains only phrasing content)
  • kbd
  • keygen
  • label
  • map (if it contains only phrasing content)
  • mark
  • math
  • meter
  • noscript
  • object
  • output
  • progress
  • q
  • ruby
  • s
  • samp
  • script
  • select
  • small
  • span
  • strong
  • sub
  • sup
  • svg
  • textarea
  • time
  • u
  • var
  • video
  • wbr
  • text