I am proud to be able to announce the new currency converter on Yahoo finance. Why? Because it is a perfect example of how a complex rich user interface can be built in an accessible manner. As the main developer, Dirk Ginader explains: About 9 months ago my fellow co-worker, the User Experience Designer Graham Read the rest…

By now, most developers have (or should have) come to realize how important it is to build unobtrusive JavaScript code. Apart from ensuring a better user experience, today’s tools and libraries make it extremely easier to embrace this practice. Continuing down the path of providing developers good tools, Robert Nyman of DOMAssistant fame has updated Read the rest…

I’ve been talking about progressive enhancement here before and got a lot of flak in comments about it. It seemed that there was a general misunderstanding of progressive enhancement and unobtrusive scripting as a “passing fad” or “backward facing rather than being innovative”. I was asked by a design agency in London to go there Read the rest…

Over at Quirksmode.org, Peter-Paul Koch is researching if Event Delegation which works splendidly with click events is also possible for blur and focus. Event Delegation means that you piggy-back on the behaviour of browsers to report events on child nodes up the tree to their parents. Instead of applying event handlers to each element you Read the rest…

I’ve just come across a solution for badges on web sites that makes it terribly easy for implementers. The idea is that the implementer could add a badge wherever they want in an HTML document, choose the look and feel and add a message to be shown. The implementation code is the following: < View Read the rest…

I love it when a plan comes together (removes cigar): After I played with Google charts and porting the idea of generating charts from accessible table data over to YUI charts Stoyan Stevanof had to use the same idea to generate his own, home-made Canvas-driven charts: His solution shows in a few lines not only Read the rest…

One of my main annoyances with writing code tutorials is that you need to maintain code in several locations: the code itself and the examples in the tutorial document. This is not really a problem when you can use a scripting language or print out the tutorials from a CMS, but when you just want Read the rest…

From what I’ve seen, it appears that many developers, especially those new to the JS space are somewhat confused by the reasons for developing JS in an unobtrusive fashion. Typical arguments that I’ve heard are: It takes too long to develop If they don’t have JavasScript, then they’re out of luck We shouldn’t have to Read the rest…

OpensIFRr is a new tool that enables you to create sIFR flash files that represent fonts that you need. Ben and I demonstrated sIFR at JavaOne last week. We took the typography of ajaxian.com and spruced it up in an unobtrusive way. Here is a simple hello world recap of how to use sIFR: < Read the rest…

Over on my personal blog I discussed Unobtrusive JavaScript, Microformats, and the Google AJAX Feed API. The posting discusses an example that creates a Feed Billboard using the Google AJAX Feed API released the other day. Here is the outcome: The fun part was creating a microformat that would degrade nicely: < View plain text Read the rest…

Christian Effenberger was inspired by the reflection code and decided to implement Corner.js. The library uses unobtrusive JavaScript and microformats to allow users to simply add class names to an img tag to render them with corner effects, all via Canvas. If you wanted to add a shaded corner you would say: < View plain Read the rest…

Dan Yoder has created the Cruiser Behaviors Library, extensible stylesheets for decorating DOM elements with interfaces and event handlers. Cruiser uses Prototype, and is inspired by the Behaviour library itself. A simple example shows the library in action. A new behaviour of “strike out a link with the special class of ‘demo’” is added to Read the rest…

Ara Pehlivanian talked about the graceful degradation myth awhile back, and since then has come up with a simple solution to his problem. The key is setting CSS styles aimed at JS enabled browsers that overwrite the initial state in the document that does the right thing for someone who isn’t coming in via a Read the rest…