Samuel Sjöberg's weblog

Skip to navigation

A case against custom markup

When I designed the commenting system on this weblog I had to decide whether or not to support markup. I for sure wanted my readers to be able to post links. The ability to quote, emphasis and make lists was also something I thought could be useful features.

How can visitors be allowed to post comments in an easily, straight-forward way without the loss of control? This problem is something every online commenting system has to deal with and the solutions to it are almost as many as there are systems.

The standard solution seems to be a custom markup system on top of good old fashion HTML. The examples are numerous, e.g. bbCode, Markdown or WikiCode. This approach makes it easy to parse and transform the markup into valid (X)HTML. Invalid markup will not be transformed and therefore not break the page. Even so, I think this is a bad solution and I will try to explain to you why.

If we switch angle and address the problem as a user, then how would you like to write your post? Would you like to learn a new markup to be able to add a link or emphasise a word? I think the answer, in most cases, is no.

In this entry I will try to explain why custom markup is a bad idea, from the user's point of view. I will also propose an alternative approach which I think solves the biggest problems caused by custom markup.

Why use custom markup?

The question why do we use custom markup has already been addressed earlier, but the question is of great importance and is worth repeating. The answer to the question is not that it is easier to learn or use. The answer is that it is easier to control. As I see it, the major flaw with every custom markup is that it only serves as a way to limit the users' markup abilities or options. If the user knows HTML, why should they not be allowed to practices those skills?

Most custom markups appear in a context where we can assume that the users have a basic knowledge of HTML. If you know how to write <strong>, why should you need to write [b]?

Assuming that the users have this basic knowledge, the following questions can be raised against custom markup solutions.

To learn or not to learn?

If we assume that the user does not have any previous knowledge about HTML, would it still be a bad idea to use custom markup? My answer is yes! If a novice user must learn a new language, why should it learn bbCode and Markdown instead of HTML?

Besides the fact that multiple markups must be mastered, what is the point with knowing bbCode? You can not apply your knowledge in any other domain that the web forum. HTML, on the contrary, can be applied in a numerous of domains ranging from personal homepages to XML databases.

What does it say?

When browsing a web forum, it is not unusual to see computer code posted as plain text, even though a code tag is present and the posting guidelines states that it should be used. I think this is a good indication of another problem with the custom markups; the loss of semantic value.

How could I possibly tell what * or [[weblog]] means?

A significant drawback with the additional layer of custom markup, which only exists to produce HTML in a secure way, is that the user knows HTML is the end result. When I learn a new markup I tend to map its tags to HTML-tags. That is the way I remember and I guess there is more people like me out there.

[b]How [i]did[/i] it come to [[this]][/b]?

So far, the problems I have mentioned could be managed without too large effort. The problem emerges from the combination of all markups in the head.

If you use a wiki, web forum and a blog-software you will most likely encounter two or three different kinds of markup. I believe keeping these markups in memory is an extreme waste of cognitive resources. Compared to a typewriter, it would be like moving the keys on the keyboard everything you use it...

The new deal

If we must support markup, let us support the only logical one, namely HTML. Stop using custom markup and use restricted tagsets of HTML instead. Instead of custom, the markup would be restricted.

Server-side XML validation can be used to ensure that the markup is valid. In combination with a list of allowed tags the skilled user can post a valid comment with acronyms and links. On the other hand, the novice user simply can skip the usage of markup, exactly like they already do today.

Reader comments

  1. Interesting post... However, there is one question that I find absent: Why did the custom markups emerge at all when there was always the option of offering a controlled subset of the standard HTML?

    8th March 2005, 21:13 CET. 
  2. The best way to format a text shuold be with wysiwyg, like bloggers interface for writing a post. But why don´t they use it for the comments? The best markup is no markuplanguage at all?!

    27th March 2005, 15:51 CET. 

Pages linking to this entry

Pingback is enabled on all archived entries. Read more about pingback in the Pingback 1.0 Specification.

About this post

Created 8th March 2005 19:21 CET. Filed under Interaction design.

0 Pingbacks