End of year wishlist: Web Developer edition
Sunday, 31. December 2006, 19:20:51
It's the season for end of year lists. I thought I'd create my own wishlist for 2007, aimed towards the world's web developers and designers. I hope by this time next year, I can look back and see some of these issues resolved or improved across major and minor sites alike. Without further ado, here is my list:
-
Adopt Object detection, consign browser detection to history. Although browser detection can be useful when working around specific browser bugs, it is most often used in inappropriate ways, such as blocking a browser entirely or giving a browser a different path through the code, when the regular standards based path would work fine. A good example of where Object Detection would work better is with rich text editors. Opera has often been blocked from working with these, because Opera didn't support contentEditable or designMode -- the building blocks of many rich text editors -- until Opera 9. If these editors had used Object Detection to detect the presence of contentEditable or designMode, then Opera 9 would have suddenly started working with these editors, without any change on their part. also bare in mind that using browser sniffing to work around browser bugs can also be dangerous. I've seen many scripts that work around bugs in Opera 7 and below, that have long been fixed. Because they just detect Opera, then the old workarounds are still applied and break the modern versions. If browser sniffing has to be used then it should be versioned, so that later browsers are not affected. Make sure the browser vendor knows about the bug you've hit however, so that they have a chance to fix it. This of course runs the risk of the bug not being fixed in the next release, but if the browser vendor knows about the issue and it has been confirmed, then it is their issue that it hasn't been fixed. A good article on Object detection has been written by Hallvord at Dev.Opera.
One word of warning about Object Detection. Don't test one object and assume support for other objects, or that support for one object means that the user agent is a certain browser. Many compatibility issues are found where authors test for the existance of document.all, and either assume the browser is Internet Explorer (not always true) or that the browser will support other IE DOM extensions, or technologies such as Active-X or VBScript (also not always true).
Adopt Graded Browser Support. This is a technique that Yahoo!'s YUI team put into practice, and has been used by others, such as the BBC, for a long time. When was the last time you had a major browser issue on the BBC site, with a decently modern browser? The concept of Graded Browser Support, as published by Nate Koechley, is that their are a number of grades or tiers of browser support on a site. In the top grade, these browsers are given full support such as QA resources and bug fixes when issues are found. The next tier below that are untested browsers. These are browsers that are still under active development and are assumed to work, but not explicitly tested by the QA department (or yourself if you're a small team or solo developer). The key here is that even though the browser may not be tested, nothing is done to stop the browser from working, such as an
Upgrade your browser
page or broken code. If there are issues with these browsers then they will most likely be looked into, especially if a solution is presented. The final tier are the old browsers with known issues, such as Netscape 4. These will not be blocked, but will be given a reduced, but accessible experience. This could include not sending any CSS, or JavaScript, just raw HTML, with server side logic. If you have written good quality HTML, with accessibility in mind, then your site should work fine this way for old browsers and text based browsers such as Lynx. Linked with Object Detection, the adoption of this approach by major sites (such as AOL, Google, Microsoft and Yahoo!) would seriously reduce the amount of needless blocking of browsers and the potential customers that are using them. I wonder how much revenue is lost by blocking users that would have otherwise purchased something or used a service, but were blocked by browser sniffing. On sites that sell high ticket items, this potential loss is magnified.Use semantic markup. This is a well known area, and improving every year, but as always there is room to improve. Many new sites are still built with tables and presentational images inside the markup. I think that it is often a sign of if a developer/designer is a real craftman/woman or a cowboy by how clean their code is. We want more craftpeople in our industry. As well as the structure of the markup, I still often see class and ID names that are presentational and not structural. There is little point in removing a colour tag to set the colour in CSS, if one is going to use class="red" in the markup. Imagine the confusion when someone else looks at the code and the text has actually changed to green in a subsequent redesign, or the left-nav has been moved to the right. I was thinking of proposing a standard set of ID/Class names for common structural elements that could be defined in a Microformat, but I just noticed Andy Clarke has a similar idea minus the mention of Microformats, back in 2004. I still think this would be useful, especially for new developers, search engines and browsers. If a browser or search engine is aware of the semantic meaning of sections of the markup then it could lead to some interesting possibilities, especially with things like reformatting pages for mobile screens or for accessibility. More about this at a later date. Speaking of Microformats…
Make use of Microformats. The semantic web has becoming more popular this year. Not via RDF and OWL, but via tags on blogs and social networking sites, as well as RSS feeds and the adoption of Microformats. Microformats are very interesting as they give semantic meaning to markup without having to define a new standard that is supported by all the browser vendors. Being able to use hCard for contact details and hCal for calendars, enables interesting features such as the automatic detection and conversion from data on a web page to a form that can be downloaded and added to your address book and calendar software. If search engines start using this data, then finding information and aggregating it could become much easier. Some major sites have already started using Microformats on their sites to markup data. Yahoo! use hReview to markup reviews on Yahoo! Tech Upcoming.org etc, while Apple uses hCard in their new .mac webmail. I hope to see the use spread across many other sites and services, big and small.
Think beyond the desktop. The mobile web is taking off and will continue to do so in 2007. Opera Mini alone had over 1 billion page hits, well within its first year of release. The current run rate is much higher. The far eastern markets are particularly strong, as well as places, such as Africa and India, where people may only own a telephone and not have access to a computer. The successful launch of the Nintendo Wii, and the buzz surrounding the browser, has shown there is much interest in surfing on none traditional devices. To stay ahead of the game, designers have to stop thinking about just the desktop and high resolution displays, and take a look at a host of different opportunities. Many markets are saturated on the desktop by a number of big players, but there is little content out their that is ideal for the mobile and devices segment. Filling this gap could become very profitable. Making sites work great on a handheld needn't be a huge task. For those that have good structural mark-up, all that is often needed is a handheld stylesheet, that lays out the page to fit into the confines of a small screen, and hides the unwanted content. For more complex sites and mobile specific services, then a new mobile sister site may be more appropriate. Opera offers the handy Small-Screen rendering mode on the desktop browser, to make testing mobile designs much easier and cheaper.
That is all for now. I may add more as I think of them. It's new years eve, so I must rush out and celebrate. i hope everyone has a great new year. If I get a list of suggestions, I may publish a list of most requested features, standards and bug fixes that developers want Opera to add for the new year.


How to use Quote function: