One of the most longstanding complaints that WordPress gets is related to HTML formatting:

switching from HTML to Visual editor, wordpress changes things. Not everything, but enough to make it very annoying – if I’ve gone into HTML and coded things a certain way, I do not want wordpress to second-guess me.

The first thing we have to realise is that there are 2 types of users:

  • regular folks that just want to write the damn post and publish it
  • power users that need s embedded in <div>s that form an unordered list of tag soup

So how do we please both?

First, let’s take into consideration regular word processors. Does Microsoft Word or even OpenOffice have a noticeable button that allows you to edit the underlying XML of a document? Of course not!

So why should an average user see it in WordPress?

Part 1 of my proposal:

Hide the HTML tab by default, but allow users to enable it from their profile.

This eliminates clutter for normal users, but what about the power users?

Well, since the HTML tab is hidden by default, they will have to consciously enable it. In doing so, they have signed the disclaimer that says “I know what I’m doing”.

This brings us to the second part:

When the HTML tab is enabled, don’t change anything in the HTML, even when using the visual editor.

  • This is what the interface would look like:

Editing modes:

[x] Visual editor
[  ] Raw HTML