02 December 2003

On Comment Systems

What good is an opinion without someone to tell you why you’re wrong? The rise in popularity of weblogs has given voice to over a million people across the internet. If the best thing about them is their ability to provide an open channel for individuals to say what they want, then their most crucial feature must be the comment systems that allow the rest of the world to respond. A good-sized group of my friends stays in touch daily by posting and commenting on each other’s LiveJournal pages. Comments move fluidly from serious discussion to inside jokes to event planning because the system that manages those comments is robust enough to proctor such conversations. Still, though online discussion boards predate the visual World Wide Web, I’ve yet to see a comment system that does it all.

In “It’s all about Context,” Mena Trott remarks that in developing TypePad, “we learned that commenting methods evolve […] and we hope we never claim that anything we do can’t be improved.”

While the behavior of discussion modules in weblogs allows for an amazing amount of interaction between people all over the world, there are a number of areas that still need to be honed. I’d like to lay out below a number of features that I think would improve that ability to have online discussions.

It’s All About Context

As discussed in the above-mentioned article, comments should always appear on the same page as the post they’re talking about. They should never collapse into “headers-only” mode if their number soars above a magic threshold, and should also not continue onto a second page even if their number continues to soar. It’s important that the full context for a discussion is always available on the page, and discussion tends to stop when comments spill over to a second page.

WYSIWYG HTML

While maintaining a webpage requires some knowledge of HTML, leaving a comment on one should not. All comment fields should have WYSIWYG formatting buttons above them. The set of WYSIWYG, or “What You See Is What You Get,” buttons would work just like those in MS Word. Highlighting text and clicking the “Bold” button would make the text appear bold, while under the hood remembering to put <b> […] </b> (or strong) around the text when the user clicks the submit button. A “link” button would launch a little dialogue box asking for the link destination and link text, and would inset a working link into the text field. Colors, text-alignment, and fonts would be marked-up using in-line styles. The person leaving the comment would always see the text as it will appear, and would never see the underlying, valid, XHTML. And, of course, the user would be free to type out his own code if he’d prefer.

A spell-check button would also be nice.

eMail Addresses Should Never Be Displayed

Spam is a big problem these days. Even the best encryption can eventually be broken or foiled by people with the patience to hand-copy addresses. People leaving comments on your page don’t want their email addresses harvested by spam-bots so that they can get more ads for male enhancement. The only reason someone leaves their email address is because they don’t know any better (which you shouldn’t penalize them for), you make them do it because you don’t allow anonymous comments (which doesn’t mean you have to display their address on the page), they know you might want to write them about their comment (which, again, doesn’t mean that you have to display their address), or they want to receive emails containing future comments so they can follow the discussion long after they’ve forgotten your URL (bingo: why else are they giving you their address?).

Notification

What LiveJournal does pretty well and MovableType/TypePad doesn’t do at all is notification. There’s little point in making comments on a weblog entry if no one ever checks the entry again to respond to you. Every discussion should be available via email and RSS. ScriptyGoddess write a nice plug-in for MovableType that gets this feature mostly right. Here’s how I think it should work: every comment form should have a checkbox labeled “Subscribe to This Post.” If a reader enters his email address and leaves this box checked, he’ll get an email every time someone leaves a comment on that entry. Below the comment form is a separate form in which he can enter his email address to subscribe to comments without having to leave one of his own. Each email should contain the text of the newest comment, a link to the full post, and a link to unsubscribe to the mailing list for that discussion.

I have the vague understanding that RSS 2 has a feature that accommodates comment notification. This would be useful as long as readers are given the option of a comment-free feed as well. It’s downright annoying when every post gets marked as new whenever someone comments on it. If I care about a particular post, I should be able to subscribe to it individually.

Referring to Previous Comments

Having the entire text of a conversation readily available is a strong advantage that online discussions have over verbal conversations. If I want to directly refer to something that someone else has said, I can simply copy and paste the quote and respond directly to it. This works fine for instances in which I want to talk about a specific part of a specific comment, but what if I just want to agree or disagree with the entire comment? I could say, “I agree with Sally,” but it’s very possible that Sally’s said four different things already in this thread.

Comments should be numbered. The weblog system should automatically number and label each comment as it gets added to the page. This way, I can say, “I agree with 5,” referring without question to the fifth comment left on the page.

Each Comment Should Have Its Own Permalink

Weblogs thrive because of their interconnectivity. As they continue to mature, they have to grow to allow for themselves. Picture a future student writing a research paper for a webpage. Just as he uses parenthetical citations to refer to the page number of a book, he should be able to use them to cite a particular comment on a weblog.

Threaded Comments are a Bad Idea

I admit, the way that LiveJournal allows people to respond to individual comments adds an interesting dynamic to conversations, but I think it hurts the discussions as a whole.

Conversations in real life happen in real time. Even though you can go back and address a previous point directly, you still have to listen to everything that’s said before you get a chance to speak. Many times in an LJ discussion, there will be five or six good points that get left behind because people are too busy bickering over a previous one. Sure, they’re still there, but they’re sitting at the bottom of the page. The a-temporal grouping of comments commenting on an earlier comment disrupts the natural flow of the discussion, oftentimes neglecting or undermining comments that were made before everyone started ganging up on the earlier point.

It’s in the nature of discussions to twist and go off on tangents, but this should happen, er, naturally. If you line up twenty comments in a row, it’s very easy to follow the conversation from where it started to where it has led. This is because you’re reading the posts in one dimension (moving temporally in a straight line from the time of the original entry to the time of the most-recent comment.) But if you jumble them up so that the threaded view shows the discussion in 2-D, you add an unnatural grouping that often falsely attempts to model the flow of the tangents.

Say there’s a comment with three responses followed by another comment, each of which makes a new point about that comment. Now say that three people want to talk about the second comment. Now we have eight comments. In what order should they be read? In a threaded discussion, they would appear in the following order:

  1. First Comment (10:00AM)
    1. Response One (10:10AM)
    2. Response Two (10:15AM)
      1. Response 1 to Response Two (10:18AM)
      2. Response 2 to Response Two (10:25AM)
      3. Response 3 to Response Two (11:55AM)
    3. Response Three (10:21AM)
  2. Second Comment (10:02AM)

The two comments made the closest to each other chronologically are actually the farthest apart in the above example. Response Three was made before any of the responses to Response Two, but appears after them. By the time you’ve read all of those responses, you may have have forgotten enough about the original context to understand Response Three.

While I appreciate the utility of being able to comment directly on a comment, for the above reasons and more, I think that threaded comments are a bad idea. And since our weblogging system is already labeling each comment with a number, we can just refer to a comment’s label when talking about it. Should a tangent get so off-topic that the proctor (weblog owner) decides it merits its own forum, he can always start a new entry about it. (Or it could move via TrackBack to another location.)

Thoughts?

So that’s what I have to say on the subject. Please discuss. (I realize that my TypePad comment system doesn’t do it all, bear with it.)