Slashdot + CSS? Now we’re talking, Taco!
I hate being behind the news, but this one’s worth posting about. On the 27th of July, Rob Malda (creator of Slashdot) announced on his /. Journal that Slashdot itself was finally be CSS based in two weeks. The new approach to the site is already being used at Slashcode, the testbed for the Slashdot codebase, and it definitely looks 1) better and 2) more standards compliant.
Malda is also calling out the hordes of standards design to comment and send in feedback about both how it looks and how it behaves – in what seems to be a move that will finally put to rest some of the voices (including my own) that defended Slashdot definitely needed to stay ahead of times if it really is one of the best websites on the web. The old table-based layout was definitely old, troublesome and ugly. Off with the old, in with the new.
Thoughts about the design and code
You asked, Rob, here goes. Here are some comments on how the website looks and behaves. While this is undoubtedly a great step for slashdot, there’s still a lot to be done. Here’s a list of points:
- Why HTML 4.01 Transitional? If there’s a move (and a drastic one at that), why not make the jump now and avoid a second in a while? Make the page fit the XHTML 1.1 standard and avoid trouble later. There’s really not much to alter anyway, so there’s no point in not trying.
- Not validating yet: Even if you decide sticking with HTML 4.01 (which is a “bad” move), make the webpage validate. That’s even less work than making it XHTML.
- There are a couple of problems easy to solve:
- Top level list-item elements are not allowed in any doctype. They should be enclosed in either ordered lists (ol) or unordered lists (ul) – never by themselves. That makes for 5 out of 13 errors in validating Slashcode with W3C’s validator
- “NOBR” and “WBR” do not exist in the HTML 4.01 Transitional doctype – Some browsers deal with that just fine (nobr is used in order not to break text), others just ignore it (which is correct, because nobr doesn’t officially exist). Remove these tags, because they’re not needed.
- An img tag should always be inclosed in a block element like a div or a paragraph and never by itself. That’s quite easy to fix, and it happens a couple of times through the new codebase. This is the same error with the list-items above.
- Other mistakes are minor and involve the use of non-existant attributes like “language” in a script tag, or “border” in an image tag. The first doesn’t exist at all, and the second should be defined on CSS, nor hard-coded.
Overall, most of the work is done – there isn’t much to fix, even though I believe the templating engine of Slashcode produces way too much clutter – presenting that ammount of information should be way less than almost 2000 lines of code. My estimate is that there’s a whole lot of savings to be done – stop spending that much bandwidth, will you?
All things considered, this is a good move. Make the final adjustments (did I stress enough that you should change the doctype to XHTML 1.1?) and you’ll get yourself a new horde of standard-hippies happy about the new slashdot. I’ll love you a little more, too.


