List of HTML5 elements that can be nested inside P element?

Lone Learner picture Lone Learner · Mar 24, 2012 · Viewed 59.7k times · Source

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.

Answer

Matt Ball picture Matt Ball · Mar 24, 2012

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