CSS3 for Web Designers
I am currently in the midst of reading CSS3 for Web Designers by Dan Cederholm. Even though I am only a few chapters in, I am already inspired to do as he suggests and implement what CSS3 elements are already available even if the standard is not yet complete. His suggestion that the only way to push the standard is to show these elements in the wild is something that I try to implement in my own work. The problem with trying to implement these elements is usually hit by client approval. As a web developer who has to implement the designs, the beauty of the designs are wonderful, however, the designers (creators of the designs) have a tendency to forget that the majority of the visitors to the sites are coming in various versions of Internet Explorer. Implementing these wonderful designs is easy for compliant browsers like Safari, Chrome, and Firefox. The client likes the wonderful look that is designed which is optimized for these compliant browsers, and when we try to implement for IE it undoubtedly gets criticism from the client saying it doesn't look like the design.
While Mr. Cederholm says that we should look at the places where we use CSS3 as part of the experience layer of the design, sometimes that is hard to do when the design comes with the experience layer as part of the functionality layer. I am not saying that some of the things are not worth implementing, but designers must start recognizing the difference between functionality and experience. In speaking with a colleague this afternoon, we were looking at a request from a designer demanding that we align certain items in the design. The issue with this is that the site has a multilingual aspect that the designer is not recognizing. The alignment of items we have provided is different from the design because when the site is toggled to the second language, the length of the copy changes the alignment and required us to build our functionality to accomplish this.
In the change request document provided by the designer we are having to give the response that Functionality must come before design. This isn't about the difference of priorities of programmers and designers. As someone who tries to implement the design as provided, it is about helping designers recognize the importance of flexibility of the design and that there should be a distinction between the functionality / usability of a site and the experience of a site. A design should provide the basic functionality / usability of the site. The experience level has to have some flexibility since not all browsers support "the cool stuff".
As a web developer (not a web designer) I would say that CSS3 for Web Designers should be recommended reading for all web designers and developers alike. It will help us understand each other better so that we web developers aren't always butting heads with designers over how to implement design items that should best be left to the user experience instead of the basic functionality.