As I have been working on my new design, I have realized something: Doing web development sucks. Flat out, sucks. I have deep compassion for those of you who actually decided to do this for a living. As much of a perfectionist as I am, I could not do this job on a daily basis. I closed the doors of my web design business years ago for this reason, and this reason alone. If you thought dealing with your own tastes and perfectionist ways was difficult, try dealing with someone else’s.
Most people who design sites, who are not professionals, design it to look nice in whatever browser they are using at the time, with whatever settings they have turned on or off, at the time (see MySpace). This is a perfect example of the old saying ignorance is bliss. If I could develop websites all day to work on a Mac running Safari, design would be so much fun. This is the case for many professionals, at least those designing applications for in-house use, who only need their designs to work in whatever browser their company has deemed the standard. Most of us, though, are not so lucky. Us being the people, professional and amateur, who develop public facing websites where there is no remote way to predict what your audience will be using to view your website with. Us being those who are anal enough to care about how our website looks in almost every possible scenario.
What are these scenarios one must consider, well, here is how I usually think about it:
Will my site still look/work okay if…
- The user is using a non-mainstream browser (there are dozens)
- I try my best to consider all the ones I can.
- The user is using Internet Explorer older than version 7.0
- Usually relatively easy to contend with, avoid translucent png’s, deal with odd css bugs.
- The user has images turned off
- Use CSS text replacement techniques, this can degrade easily.
- The user has style sheets turned off
- Make use of conventional html tags as much as possible.
- The user has a very large/small screen resolution.
- Optimize your site for the lowest popular resolution, screw everyone else.
- The user is browsing from a cell phone or mobile device
- Use a mobile stylesheet.
- The user wants to print something on my site
- Use a print stylesheet.
- The user is on an operating system with different base fonts
- The user has their screen color settings low
- You can try to use web-safe color codes, I don’t.
- The user has their font size increased/decreased in their browser
- Try using EM based layouts instead of Pixel based, I don’t.
- The user is on a slow connection
- The user does not have something installed
- Such as Flash, Java, Shockwave, etc.
- A billion people hit it all at once because I’m just that popular.
- Minimize database hits, cache, have a good server.
As you can see, if you want your site to work well, across the board, it is no easy feat. In fact, it is very difficult. What you usually wind up with at the end, feels like some sort of hack. In the case of the new design I am working on, I made a couple of fundamental choices which have made the design incredibly more difficult to implement. Although, they shouldn’t be, as they were quite simple choices. Nothing too fancy: A fixed position footer, and the use of one translucent png image. Neither of these features are supported by any means in Internet Explorer 6 or below, without hacks.
Designer 2: I find it is best to not fight the web. If you find yourself coming up with all sorts of tricks to make your site behave the way you want, it is usually best to just change it around a bit to make it work the way the web wants it to work.
So what am I left with? A design which mostly works due to a system of hacks which I am quite uncomfortable with. It is as if the internets does not want you to be creative, because if you try to be, you will be punished by having to spend countless hours working on one tiny detail of your site. Which you can only hope will pay off when that one person who stumbles across your site on a 15 year old computer can actually enjoy reading it. The best part is, you are so good at what you do, that person wont even appreciate the hard work you did, because they have no concept of just how much work it took to make your site simply work as they expected it to under their very specific set of circumstances.
Users do not appreciate the amount of work it takes to make something work, the simply love to bitch about it when it doesn’t. I should just develop for the web on a highly standardized, proprietary, platform like Flash or Java. At least you know what your end result will look like, every time.