On my site and on Twitter, I try to exude positivity and pragmatism. I try to tone down my admittedly strong personality as a way to ensure that what I write is well received. Sometimes I succeed. For the most part I tend to frown upon random bitch sessions about how bad everything is on the web. Complaints do not equate to solutions and solutions are what matter, as I’ve fondly alluded to before:
New rule for a11y conferences: Every time someone complains about something, they also have to offer a proposed solution for that complaint.
— Karl Groves (@karlgroves) October 26, 2013
Today I’ve finally had enough and its time we all face the blunt and honest truth: your code sucks. Yes, yours. Stop looking around, I’m really talking about you. Oh, you’re a hotshot developer from a big company? You have 10,000 followers on Github? Good for you. That plus $3 will get you coffee at the nearest Starbucks while you contemplate how this blog post applies to you.
For the last decade my job has been, in one way or the other, to help make websites, web-based applications, SaaS products, desktop & mobile software, and mobile websites more usable and accessible for all. I love what I do because at the end of every day I feel like I’m making a tangible difference in the world. I get to work with big important clients all over the world and if each of them implements even a few of my recommendations, real users of their systems will find those systems easier to use. Hell yes! To paraphrase John Foliot, what I’m trying to do, ultimately, is put myself out of work. If those of us in the accessibility field are successful, we’ll eventually work ourselves out of a job. And every single one of us will jump for joy. The thing is this: so long as developers refuse to give a damn about the quality of their work we will have unbelievable strong job security.
Many developers, including those working for some of the biggest web agencies and biggest companies on earth, appear to have very little understanding of how HTML, CSS, and JavaScript contribute to how an object is created in the browser. They don’t really understand anything beyond the superficial appearance on screen and whether you can interact with it the way they would interact with it. Everything else is out of sight, out of mind. Most developers I’ve come across in my career are self-taught. They learn what they’re expected to learn for their specific role and that usually isn’t accessibility. That said, your ignorance doesn’t absolve you of the responsibility of doing a good job and accessibility – like security, SEO, cross-platform reliability, and meeting stated business requirements – is part of doing a good job. You don’t know how to do accessibility? Learn it. This is the same expectation people have of you when it comes time to introduce a new framework, new toolset, new library or whatever into your development environment. In fact, that’s probably how you’ve developed all of your skills, isn’t it? Somehow expecting developers to create a quality user experience is seen as an unreasonable extra effort. It isn’t. It is part of doing a good job. It is part of caring about what you do, because you care about how people interact with your work – and if you don’t care about the quality of your work, why bother doing it?