Since I develop my blog, naturally i get interested around formatting its contents.
Problem being explicit
Explicit content differs in a way that impacts readers psyche. If not changing his world views, then changing subjective opinion. Not every reader is ready for this, not everyone wants to see it. Thats why warnings, discretion, content notices are needed.
Another problem is that rating should not depend on viewers age. Filtering if it exists, should be contextual, based on county legislation like COPPA. Ofcourse, if warnings are present, then automatic censorship by browser or search engines is possible. Editors should be ready for this, since this is totally voluntary.
Its clear that censorship of content is targeted for young audience, but "children" and "rate of violence" might greatly vary. You don't expect forbidding playing Mario games to everyone who is not yet 21 years old just because hero jumps on turtles, crushing them, still PETA may find that you do.
Existing standards
1. SafeSurf - dead
2. RTA - probably most used standard on modern adult-websites. It uses either header
header("Rating: RTA-5042-1996-1400-1577-RTA");
Or meta data on page:
<meta name="RATING" content="RTA-5042-1996-1400-1577-RTA" />
Or forcing headers for all resources through apache's .htaccess
<ifmodule mod_headers.c>
Header set Rating "RTA-5042-1996-1400-1577-RTA"
</ifmodule>3. ICRA - got old, used page context and used rather large table of ICRA and RSAC codes.
<meta http-equiv="pics-label" content='(PICS-1.1 entries)' />4. PICS - migrated into W3C POWDER. Last one is based on rdf, which means its hard to manage and understand
Thats it! Nothing real, no microformat for average webmaster. What we need is a level-based rating of any content on the web, like MPAA does for movies or ESRB and PEGI do for games.
New microformat / xrate 1.0
I see proper way to format this data very clearly - author just has to mark any html element with attribute, based on rating. HTML5 gives attribute data- in free use, so i suggest using namespace xrate with integer values (0-100) which represent danger to viewer (the higher - the bigger), which will also ease filtering. Note that its NOT VIEWER'S AGE.
For simplicity, you can use general param, let say data-xrate="20", but its more semantically proper to choose its area:
| data-xrate-lang | Obscene language |
| data-xrate-sex | Romantic, erotic, pornographic |
| data-xrate-nude | Level of nudity |
| data-xrate-disgust | Might cause disgust (shit, larvae, decomposition) |
| data-xrate-violence | Violence and its results - weapons, wounds, dead bodies, blood |
| data-xrate-asocial | Smoking, alcohol, drugs, gambling, prostitution |
| data-xrate-blink | Blinking animation that might cause eplilepsy |
| data-xrate-spoiler | Story is retold |
| data-xrate-camera | If application (flash/applet?) gains access to videocamera
|
| data-xrate-malware | If resource can cause infection (viruses, trojans etc.) on viewer's machine |
Sex(xrate-sex)
Obviously sex and nudity are separate things. Naturally they mostly do follow each other, but paintings or chilling nude old dudes mostly don't carry as much erotic energy.
| Romance. Kissing, wish | Erotica. Breasts, will | Porn. Genitals, action |
| 0-30 | 30-70 | 70-100 |
|
|
|
Nudity(xrate-nude)
| Dressed | Partially nude | Fully nude |
| 0-30 | 30-70 | 70-100
|
|
|
|
<img src="http://www.tema.ru/jjj/tits/renuar.jpg" data-xrate-nude="60" data-xrate-sex="0" />
Violence(xrate-violence)
Violence also differs
<a href="http://meatvideo.com/" data-xrate-violence="100">omg</a>
| fantasy heroes | fighting, wounds | blood, dead bodies, grevious wounds |
| 0-30 | 30-70 | 70-100 |
|
|
|
Antisocial behaviour (xrate-asocial)
What does scare most parents is not someone swearing, viewing erotic movies or violent games. Parents are afraid of spiritual fall of their kids which begins with misunderstanding and indifference. This attribute should fight against smoking, drinking, drugs, prostitution, so that it wouldn't be considered ok.
Obscene language (xrate-lang)
Language directly influences thinking. Obscene language cannot be limited with usual word filters, because its an emotion, which can take form of drawings or hand gestures.
Analysis
Filtering html if these attributes were added is easy. For example if i have paragraph with data-xrate-asocial=30.. then i can easily find it with jquery, and based on user's preferences either hide, replace, increase opacity or add warning to it.
$('#show_sensitive').click(function(){
$.each($('p[data-xrate-asocial]'), function(i,v){
if($(v).data('xrate-asocial')>10 )
$(v).show();
})
});
Styling is a bit more complex, since there is only comparison css selector. But you can use fixed values, like 30 and 70 - this way you have fixed diapasons:
p[data-xrate-asocial='30']:before{
content: "Warning - stupid behaviour detected";
}
Social rating
Obviously xrate- is subjective rating that author has decided upon. But if you have complex content and lots of viewers, then members can rate it themselves. Voting is like usual karma, except that you dont vote on agreeing/disagreeing with author, but on how dangerous content is.
Its a microformat. Its not complex enought to warn about scary part of the movie at some defined point, it also doesnt have any auditor or certificate of proof, and its not centralized - one user might think that bible has danger rating 10, another - that 100. Hope its enough.















