On 2011-09-07 5:17 AM, Benjamin Hawkes-Lewis wrote:
2011/9/6 Kornel Lesiński<kor...@geekhood.net>:
Browsing the web with user-submitted comments hidden sounds like a good use
case. There are extensions that do that in various browsers:

https://addons.mozilla.org/en-US/firefox/addon/commentblocker/
https://chrome.google.com/webstore/detail/ckdphbkdjpkpjabcnfogjmlddegeoenc
http://userscripts.org/scripts/show/74340
@class="comment" seems to solve this problem fairly well.

Of course! So does class="article", class="header", class="footer", etc. However, in my understanding the purpose of the new semantic elements in HTML5 is to provide a consistent mechanism for distinguishing different types of content in a web page, instead of everyone just using their own class names and ids. This empowers user agents to do things with the different types of content, such as skip navigation, transpose articles to different sites, or generate meaningful document outlines. Of course we can all just keep using class="comment", but then browsers can't do anything with comments, since HTML authors will not be consistent with class names and ids.

As it stands, there's no practical way for a user agent to distinguish between articles and comments. Even if they use the unappealing rule of "comments are articles within articles", this is hardly an elegant solution since user-submitted comments are often:
(a) not connected with articles, e.g. facebook status updates; or
(b) are not marked up inside the same region as the article or whatever is being commented on, e.g. youtube.

Why would we want to distinguish between articles and comments? Because they are different. Yes, it's possible for users to submit articles, but this doesn't make them comments!

- Articles are generally the main feature of a web page and the most important and valuable content on the page. It's true that user-submitted comments are occasionally valuable, but they're typically trivial (facebook and youtube again as examples) - An article can stand alone, without comments, even if those comments add content (e.g. PHP documentation). A comment, however, needs context, hence the addition of the 'for' attribute. You would not be able to take a comment such as "Yeah, I love that video!", post it on a page by itself, and have it make sense. This is what I understand "stand-alone" to mean. - It's unlikely that a user would want to hide an article, but it's quite possible that they might want to hide comments.

It's not practical to mark up everything that has comments attached to it with an <article> tag. As mentioned, comments can apply to links, images, videos, music, status updates - basically any kind of multimedia or content. Comments may be like articles in some ways, but they are not articles, and they shouldn't be bound only to articles. They should be a separate thing that can reference any other element.

Another useful feature of comments would be the ability to extract conversations from web pages. One comment could be "for" an article, video, link or whatever, but a /reply/ to that comment could be "for" the previous comment. With the current spec, this would require placing an article inside an article inside an article, and so on for however many replies there are (consider our current email thread, for instance). This is not beautiful or practical, in my opinion! It would make nested tables look elegant. But if conversations can be extracted from a web page, they can be archived, searched, syndicated, reorganised in different ways (linear vs. threaded views), etc.

As yet another use case, comments are often marked up differently. Consider this CSS:

/* this CSS applies to articles as well as comments */
article {
  background-color: white;
  font-size: 1em;
}

/* this CSS is for comments, and overrides the previous definition */
article article {
  background-color: silver;
  font-size: 0.8em;
}

vs. this:

article {
  background-color: white;
  font-size: 1em;
}

cmnt {
  background-color: silver;
  font-size: 0.8em;
}

Which would you prefer to code?



https://addons.mozilla.org/en-US/firefox/files/browse/130567/file/chrome/content/application.jsm#L28

An official bit of vocabulary might solve it a bit better, but
increase the complexity of the language.
I think that the web can bear the weight of one or two more tags :)


For this use case,<comments>  might be better than<cmnt>  so that one
could hide the chrome and widgets and cruft that form part of modern
comment lists.

Actually, we need both. I would suggest <cmnts> or <cmntgroup> for consistency.


I *like* the idea of this use case, but almost nobody uses the
CommentBlocker addon (870 users after 3 versions). So this use case
may be too narrow to support introducing core vocabulary.

--
Benjamin Hawkes-Lewis

Have a great day!
Shaun

Reply via email to