Display a voting mechanism attached to each candidate item in the community pool. Clicking this mechanism counts as a vote in favor of promoting that item. The user gets only one vote per item. Display a user's vote back to them and allow users to change their vote after it is cast.
Prominently display the number of votes that an item has received.
Provide a stand-alone voting mechanism that third-party publishers can include on destination sites.
What Problem Does This Solve?
The user wants to promote a particular piece of content in a community pool of submissions. This promotion takes the form of a vote
for that item, and items with more votes rise in the rankings to be displayed with more prominence.
When to Use This Pattern
Use this solution when
- Users in the community have the ability to submit content to a 'pool' of resources.
- Some democratic form of judgment is needed, to allow the community to compare the subjective quality of one submission to another.
- A sizeable-enough community is required. Ideally, popular submissions in the pool should receive significantly more (dozens, hundreds?) votes than non-popular ones, in order to make comparisons meaningful.
What's the Solution?
- Provide a voting mechanism, attached to each candidate item in the community pool. Clicking this mechanism counts as a vote in favor of that item's promotion.
- User gets only one vote per item.
- Display a user's vote back to them, so they can tell what they've voted for.
- Users may change their vote after it is cast.
- Highlight popular items
- Display them on the property's Main Page
- Display them first in Search results
- Prominently display the number of votes that an item has received
- Try to ensure that users are voting on items that they have actually consumed (read, watched, listened to.)
- On article pages, place vote controls after the article.
- Consider withholding the vote mechanism on high-level listing pages. Make readers click down to an article page before voting.
- Provide a stand-alone voting mechanism that third-party publishers can include on destination sites.
Items with fewer votes are not punished for their lack of popularity - they merely fall into obscurity, and disappear into the long-tail of the popularity-ranked pool.
You may want to consider a moderation control that let's the community decide to remove an item altogether, but don't make this control prominent. The emphasis for this pattern is on promoting the good, not punishing the bad. You should downplay the down-vote.
Why Use This Pattern?
This pattern has come to popularity recently (most notably on link-popularity sites Digg, Reddit, Newsvine, among others). Such systems for collective choice are a good way to promote community participation, and provide a low-cost means for surfacing popular content. Note, however, that popular content does not necessarily equate to quality content, so no promises of content quality should be made.
Community voting systems do present a number of challenges. Particularly the possibility that members of the community may try to game the system, out of any number of motivations:
- malice - perhaps against another member of the community and that member's contributions.
- gain - to realize some reward, monetary or otherwise, from influencing the placement of certain items in the pool)
- or an overarching agenda - always promoting certain viewpoints or political statements, with little regard for the actual quality of the content being voted for.
There are a number of ways to attempt to safeguard against this type of abuse. Though nothing can stop gaming altogether. Here are some ways to minimize or hinder abusers in their efforts:
- Vote for things, not people. In keeping with Yahoo's general strategy, don't offer users the ability to directly vote on another user: their looks, their likeability, intelligence, or anything else. It's OK for the community to vote on a person's contributions, but not on the quality of their character.
- Consider rate-limiting of votes.
- Only allow the user a certain number of votes within a given time-period.
- Limit the number of times (or the rate at which) a user votes down a particular user's content. (To prevent ad-hominem attacks.)
- Weigh other factors besides just the number of votes. Digg, for instance, does not calculate their Digg-score solely on the number of votes a submission receives. Their algorithm also considers: "story source (is it a blog repost, or the original story), user history, traffic levels of the category the story falls under, and user reports." They update this algorithm frequently. Consider keeping the exact algorithm a secret from the community, or only discuss the factored inputs in general terms.
- If relationship information is available consider weighting user votes accordingly. Perhaps prohibit users with formal relationships from voting for each other's submissions.
While this is currently a popular pattern on the Web, it is important to consider the contexts in which we use it. Very active and popular communities (Digg is an excellent example) that enable community-voting can also engender a certain negativity of spirit (mean comments, opinionated cliques, group attacks on 'outlier' viewpoints).
See the Vote to Promote pattern gallery on Flickr.