James is a freelance web developer based in the UK, specialising in JavaScript application development and building accessible websites. With more than a decade's professional experience, he is a published author, a frequent blogger and speaker, and an outspoken advocate of standards-based development.
James's articles
This article teaches readers how they can perform instant form validation using JavaScript. The article also explains how a validation polyfill can be made.
When you tick the 'show password' box on a site you expect to be able to see your password. But what happens for users with screenreaders? James knows.
James Edwards shows you how to extend the capabilities of the HTML5 drag and drop API, so it can handle multiple elements, and support keyboard interaction.
It's getting more common for sign-up forms to enforce a specific password format. But is this good password UX? And is it even good security?
This article is about when JavaScript feature detection fails, by the author James Edwards.
Read We Can't Rely on Color and learn with SitePoint. Our web development and design tutorials, courses, and books will teach you HTML, CSS, JavaScript, PHP, Python, and more.
Read The Dark Shadow of The DOM and learn with SitePoint. Our web development and design tutorials, courses, and books will teach you HTML, CSS, JavaScript, PHP, Python, and more.
James takes a hard look at code examples and the common problems they have, to try to establish some best practice for how they should be done.
James discovers how focus behavior is not as simple as he thought, and that modern browsers have been changing the rules.
James looks at some of the most important media events, examining what they mean and how they behave in current browsers.
When handling keyboard events, most scripts stick to a core accessible set, but there are other keystrokes you might consider to improve usability.
James looks at examples of how CSS generated content is used, as well as practical details of how it's implemented in browsers and assistive technologies, to draw the broad conclusion that generated content isn't content at all.
James describes a simple but surprisingly effective technique, for synchronising multiple media sources, in order to add accessible audio descriptions to an existing video.
James looks at three cunning things you can do with regular expressions, that provide neat solutions to some very sticky problems.
James Edwards looks at some DOM3 properties that simplify node relationships, by focusing only on element nodes and ignoring other types.
James Edwards gets excited about the new MutationObserver API, and talks about how and why it's come to replace Mutation Events.
Looking at two JavaScript shorthand expressions that rely on automatic type conversion, and discusses when they are - and are not - a good idea.
This article introduces a short function which, given a DOM node as input, finds an ancestor node in the DOM tree.
This article explores the concept of an entire game based on CSS animations.
This article introduces a function for string abbreviation.
This article presents a function that creates a layer of abstraction on top of the Web Storage API.
This article focuses on improving the accessibility of the HTML details element.
This article presents a function that parses an ISO datestamp into a Unix timestamp.
This article explores techniques for introducing accessibility in modern interfaces.
This article introduces a function named datestamp, which translates dates into the ISO 8601 format.
This article explores the practical side of JavaScript accessibility.
This article presents a simple, but powerful function which cleans up the DOM. The cleaning process removes extraneous DOM nodes such as comments.
This article introduces the theory behind JavaScript accessibility.
Read Why Would You Write Your Own CMS? and learn with SitePoint. Our web development and design tutorials, courses, and books will teach you HTML, CSS, JavaScript, PHP, Python, and more.
This article is a follow up to a previous article on modular design patterns. This article focuses on micro-constructors as part of modular design.