
James Edwards

In this post, James looks at tooltips, which all graphical user interfaces employ, and asks a simple question—why aren't they triggered by the keyboard? Read More

Do you ever wish that the life of a web developer could be simpler? That open standards really could make interoperable development as easy as writing for one browser? You're not alone!Read More

In a nostalgic mood, James looks back at when the DOMContentLoaded event first gained popularity, and notes how the problem it was intended to solve is starting to re-emerge from another source. Read More

Following on from a post he wrote back in 2008, James takes another look at using the throw statement within an API's validation mechanism, showing how stack trace information can be used to produce... Read More

This week, James discusses a coding technique common in PHP but less so in JavaScript, to the extent where it could easily be mistaken for a typo!Read More

In this post, James looks at a well-worn pattern for instantiating Ajax requests, and questions whether Internet Explorer's native implementation is really the one to prefer.Read More

In this post, James introduces a novel and flexible technique for improving the accessibility of dropdown menu content, when it's viewed without scripting and/or CSS.Read More
Designers are constantly challenging us with more complex and subtle designs, and developers are always looking for ways to better implement them. In this post, James looks at CSS drop shadows, and... Read More

CSS currently provides two sibling selectors, each of which fills a specific niche. But between those two there's a third possibility, which currently doesn't exist, but which would be a unique and... Read More

In the final post of this series, looking at ways for improving password-field usability, James steps back from full-blown solutions to a smaller idea that solves a smaller problem!Read More

In the second post in this short series, looking at ideas for improving the usability of password fields, James demonstrates a much-simpler solution for allowing users to see their password in... Read More

In the first of a series of three posts looking at ideas for improving the usability of password fields, James demonstrates a script for converting normal password fields into “masked”... Read More

Asynchronous timers in JavaScript are inherently inaccurate, and the more work they have to do, the worse they become. But there is a simple way of making timers that self-adjust to compensate for... Read More

In this short post, James demonstrates how CSS Counters' ability to create non-standard numbering can be used to make ordered-lists count backwards!Read More




