110

I've been running into some (standard) issues with Microsoft Office injecting its nasty markup into some html after forwarding an email via Outlook.

I'm interested to know:

  • Is there a resource that explains what <o:p> elements actually do
  • What other MSO elements are commonly injected
zzzzBov
  • 174,988
  • 54
  • 320
  • 367

1 Answers1

130

Couldn't find any official documentation (no surprise there) but according to this interesting article, those elements are injected in order to enable Word to convert the HTML back to fully compatible Word document, with everything preserved.

The relevant paragraph:

Microsoft added the special tags to Word's HTML with an eye toward backward compatibility. Microsoft wanted you to be able to save files in HTML complete with all of the tracking, comments, formatting, and other special Word features found in traditional DOC files. If you save a file in HTML and then reload it in Word, theoretically you don't loose anything at all.

This makes lots of sense.

For your specific question.. the o in the <o:p> means "Office namespace" so anything following the o: in a tag means "I'm part of Office namespace" - in case of <o:p> it just means paragraph, the equivalent of the ordinary <p> tag.

I assume that every HTML tag has its Office "equivalent" and they have more.

Shadow The GPT Wizard
  • 66,030
  • 26
  • 140
  • 208
  • 1
    This is interesting. I just ran into this when posting a blog. Thanks for the info. – Millhorn Mar 27 '15 at 14:15
  • This appears to have changed. Word 365 does not generate markup like when saving a document in HTML format. Presumably, the bulky code that it generates in the `head` element serves the same purpose in a different way. – Jukka K. Korpela Jun 05 '22 at 17:40