September 16, 2005
After Java 5 was released some people speculated it would take Javaland years to digest the new language features. Quite clearly this worry isn't shared by the C# development team. We already heard that C# 2.0 will have closures. This week the C# 3.0 specification surfaced (Word document only) and it's full of syntactic goodness:
- Open classes! Extend any existing class with additional methods!
- Lambda expressions (OMG!)
- Construct objects with named parameters!
- Query collections with SQL-ish closure thingies!
September 15, 2005
When I try to sell The Right Thing™ to a client in need of a website, the feeling of fighting the uphill battle is so overwhelming it's not funny. Whenever some not particularely web-savvy business owner thinks of his dream website, he thinks Flash, PERIOD. Of course there are a million reasons why your client is better off without Flash, but all of them pale compared to the 450KB rotating logo splash page.
This is the point where it gets nasty: Because "better user experience" makes for such a fuzzy and unsexy argument, we start throwing more easily digestable bullshit in order to sell The Right Thing™. Here are some of my favourites:
- Bullshit: Clean markup looks good on mobile devices
I just finished a new site with clean, beautiful and semantic markup. It looks like shit on my very popular Nokia phone.
The vision was that there is a style sheet for computer screens, and handhelds could show unstyled HTML and optimally use styles for
media="handheld". This would be a terrific idea if a single hardware manufacturer went along with it. What browsers on PDAs and cellphone do instead is interpret the CSS intended for
media="screen", which is lingo for "looks like crap on 128×128 pixels".
- Bullshit: Google loves semantic markup
Is that so? I doubt you could even test that. From Google's point of view it doesn't make a lot of sense to trust the importance of
<h1>, given half their index is search engine spam. I'd rather say Google loves text. It looks if, where and how often a word appears on a page, but probably doesn't give a flying fuck if it's marked up with
<font size="+9" color="#f31242">, buried in ten nested tables or anything else.
By the way: Search engine spam totally works. Even if semantic markup got you a tiny bit of Google juice, paying $100 to a search engine
optimizerspammer buys you ten times that. Sucks to hear, but that's how it is.
- Bullshit: Accessibility = Usability = Semantic markup = Validation
Mark Pilgrim said it so well:
Anyone who tells you that validation buys you semantics is selling you snake oil. You can have an entire page full of DIV and SPAN tags and be perfectly valid, and it may look perfectly good to the human eye, but it doesn't mean anything, and any tool that relies on semantic markup won't be able to make heads or tails of it.
Anyone who tells you that CSS guarantees you accessibility is selling you snake oil. Most accessibility techniques have nothing to do with CSS (...). And where accessibility and CSS do overlap, it's still easy to screw up if you don't know what you're doing, or simply go through a lot of pain for no real-world gain.
- Bullshit: Tutorials can teach you accessibility
Earlier this year I wrote about the cargo cult that is web accessibility. Basically every web designer on the planet thinks they can offer accessible sites because they read a tutorial and dig semantic markup (see above), but few have profound knowledge of the matter, not to mention having worked with disabled people.
So after you read "Accessible websites in five minutes" and added Accessible web design to your resumé, head over to Observing Users Who Listen to Web Sites and cry:
Some ranted to us about the problem of having to listen to the same "stuff" on each page. Some jumped to the bottom and scanned the pages backwards to avoid the navigation at the top. But only half knew what "Skip Navigation" means.
Think about it. "Navigation" is web jargon. It's not common language. Some developers have used the phrase "Skip to Content" instead of "Skip Navigation." Good idea. But it does not work because "content" in English can be a noun or an adjective. JAWS reads it here as an adjective with the accent on the second syllable. So it does not make sense to users.
Bullshit aside, what does semanticesque markup and CSS really get you?
- Consistent design without a CMS
- Easy design changes
- Pretty printing
- Very basic screen reader support
That's it. I'm afraid these points alone won't always beat the 450KB rotating logo splash page in the heads of my clients, but I can't continue to sling bullshit and still watch myself in the mirror every morning. I also wished the discussion would move away from "how to sell web standards" over to "how to make 'publishing lots of text' look sexy", but I'll save that for another rant.