# The “o:p” element is a completely-unknown element that is not allowed anywhere in any HTML content.

> Canonical HTML version: https://rocketvalidator.com/html-validation/the-o-p-element-is-a-completely-unknown-element-that-is-not-allowed-anywhere-in-any-html-content
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

The `<o:p>` element is a Microsoft Office namespace tag that has no meaning in HTML and is not part of any HTML specification.

When content is copied from Microsoft Word, Outlook, or other Office applications and pasted into an HTML document, the source often includes proprietary XML namespace elements like `<o:p>`, `<o:OfficeDocumentSettings>`, and similar tags. These belong to the `urn:schemas-microsoft-com:office:office` namespace and are only understood by Office applications. Browsers ignore them, but the W3C validator flags them as errors because they are not valid HTML elements.

The `<o:p>` tag specifically is used by Word to wrap paragraph content. It typically appears inside `<p>` elements and most often contains nothing or just a non-breaking space (`&nbsp;`). Removing it entirely has no effect on the rendered page.

If the `<o:p>` element wraps actual text content, replace it with a standard HTML element like `<span>` or simply keep the text without any wrapper. If it is empty or contains only `&nbsp;`, delete it.

## HTML examples

### Invalid: Office namespace element in HTML

```html
<p>This is a paragraph.<o:p></o:p></p>
<p>
  <o:p>&nbsp;</o:p>
</p>
```

### Valid: Office elements removed

```html
<p>This is a paragraph.</p>
```

When cleaning up Office-generated HTML, also look for other common namespace prefixes like `<w:`, `<m:`, and `<v:`, along with `mso-` prefixed CSS properties in `style` attributes. These are all Office artifacts and should be removed. Many text editors and CMS platforms have a "Paste as plain text" option that strips this markup automatically.
