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

  1. Mangling XML as Text with PHP DOM

    Recently I had to do some mass-conversion of HTML files to DITA XML — material I’d written for the upcoming JavaScript Ultimate Reference (the third, and arguably most complicated, part of the SitePoint Reference). But a problem I came across several times was the sheer complexity of recursive element conversion — <code> becomes <jsvalue> (or […]

  2. Conditional Comments for HTML Email

    Did you know that you can use conditional comments in your HTML email to detect different Microsoft mail clients, in the same way that different versions of Internet Explorer can be detected on the Web? Well, you can!

  3. HTML or XHTML: Does it Really Matter?

    Eight years on, is HTML stuck in a rut? James looks at the underlying causes of its eight-year sleep, dispels some myths, and considers the XHTML options open to the standards-aware developer in the meantime.

  4. Top 5 Tips for Staying Awake

    It’s been my observation that we web developers are a fairly nocturnal bunch. We beaver away long into the night, building the next big web app, trying to meet client deadlines, or fiddling with some new technique or technology that has us all excited. Makes me wonder how much of the sum output of our […]

  5. BBC Rejects hCalendar Microformat Because Of Accessibility Concerns

    The BBC have announced that they’ll be removing hCalendar microformats from their online programme listings, because of the accessibility issues with the ABBR design pattern. To summarise the problem: some microformats use the title attribute of an <abbr> element to store ISO format dates, as machine-readable expansions of dates written in natural language, for example: […]

  6. Dust-Me Selectors: Now Compatible With Firefox 3!

    Today we released Dust-Me Selectors Version 2.1, the handy Firefox extension that trawls through your style sheets and cleans up unused selectors. The primary change with this version was to add support for Firefox 3. Making this change wasn’t a difficult task for me — all I had to was upgrade to Version 1.0 (beta […]

  7. Beyond CAPTCHA: No Bots Allowed!

    The popular CAPTCHA solution can help lock out robots and reduce spam, but it’s far from failsafe — and it causes major accessibility headaches. In this article, James looks at the problems, issues, and alternatives to requiring a human to prove that they’re not a bot.

  8. Thanks for what?

    With a bee in my bonnet, I did a Google site search of our forums today, to reveal more than 15,000 results containing the phrase thanks in advance. I hate that expression, it totally winds me up — because it isn’t really thanks at all. At best it’s an empty platitude; at worst it’s emotional […]

  9. Building The Matrix – Notes from The Architect

    Matt Magain’s recent blog post about constructing the new SitePoint Book Matrix raised a couple of interesting questions, which I’m going to try to answer, since it was me who built it. When is a table not a table? When its data isn’t really tabular; in other words, when the data it represents isn’t really […]

  10. You can stick your em-dash up your dot dot dot

    So once again I find myself intensely irritated by a growing wave of practice that is touted as correct when its correctness is entirely arbitrary. I’m talking about the finer points of typography. A recent post by Christopher Phin, called Top Ten Typographic Mistakes Everyone Makes really exemplified that for me (sorry Chris, nothing personal!) […]