A handy little script from Aaron to improve the form validation experience.
The opening paragraphs of this article should be a mantra recited by every web developer before they begin their working day:
Fortunately, we as engineers can avoid, or at least mitigate the impact of breakages in the web apps we build. This however requires a conscious effort and mindset shift towards thinking about unhappy scenarios just as much as happy ones.
I love, love, love the emphasis on reducing assumptions:
Taking a more defensive approach when writing code helps reduce programmer errors arising from making assumptions. Pessimism over optimism favours resilience.
Accepting the fragility of the web is a necessary step towards building resilient systems. A more reliable user experience is synonymous with happy customers. Being equipped for the worst (proactive) is better than putting out fires (reactive) from a business, customer, and developer standpoint (less bugs!).
Another five pieces of sweet, sweet low-hanging fruit:
- Always label your inputs.
- Highlight input element on focus.
- Break long forms into smaller sections.
- Provide error messages.
- Avoid horizontal layout forms unless necessary.
This is a great walkthough of making a common form pattern accessible. No complex code here: some HTML is all that’s needed.
Bayesian analysis vs. statistical significance, clearly explained.
This might just be the most nerdily specific book I’ve read and enjoyed. Even if you’re not planning to build a web browser any time soon, it’s kind of fascinating to see how HTML is parsed—and how much of an achievement the HTML spec is, for specifying consistent error-handling, if nothing else.
The last few chapters are still in progress, but you can read the whole thing online or buy an ePub version.
Rebuttals to the most oft-asked requests for browsers to change the way they handle CSS.
Instead of being prescriptive about error messaging, we use what the browser natively gives us.
Usability Testing of Inline Form Validation: 40% Don’t Have It, 20% Get It Wrong - Articles - Baymard Institute
I saw Christian speak on this topic at Smashing Conference in Barcelona. Here, he takes a long hard look at some of the little things that sites get wrong when doing validating forms on the fly. It’s all good sensible stuff, although it sounds a bit medical when he takes about “Premature Inline Validation.”
The view that more information uncritically produces better decisions is visibly at odds with our contemporary situation.
A superb piece of research and writing by James, skewering the technological determinism that underlies the current faith in “big data.” At best, this misplaced trust is inaccurate; at worst, it is deadly.
To the algorithmic imagination, the practice of journalism and the practice of terrorism appear to be functionally identical.
This is really, really clever. You can’t use generated content (
:after) on replaced content. The
img element is replaced content …but only when the image actually loads. So if the image fails to load, you can apply specific fallback styles (using
How to think about drones—an in-depth and fairly balanced article by Mark Bowden on drone strikes and the politics behind them.
In the long run, careful adherence to the law matters more than eliminating another bad actor. Greater prudence and transparency are not just morally and legally essential, they are in our long-term interest, because the strikes themselves feed the anti-drone narrative, and inspire the kind of random, small-scale terror attacks that are bin Laden’s despicable legacy.
An excellent article that explodes the ludicrous myth that terrorists like to go around taking pictures of potential targets so therefore photographers are dangerous.
The police in the UK seem to have problems distinguishing between "tourists" and "terrorists". East mistake to make, I guess.
Friendlier HTTP errors.
I know it's childish but I think this may be my favourite 404 page ever.
No, this is not a joke. This really is the DCI Counterterrorist Center "Terrorist Buster" logo. Un. Be. Lievable.