In October, energized by having just attended Accessibility Camp Toronto I quickly threw together a post titled Your computer school sucks. Looking back at a handful of my previous posts, they reminds me a bit of reading Nietzsche – not in terms of content, but in terms of consisting of a lot of criticism and not a lot of solutions. Today, I’d like to follow “Your computer school sucks” with some actual guidance for web developer training schools and bootcamps.
Do not treat accessibility as its own topic
A few years ago, I wrote a series of blog posts under the theme Selling Accessibility. The content for many of those posts was driven by interviews I did with a number of people in the accessibility field, one of whom was Cher Travis-Ellis from CSU Fresno. Higher Education has some unique challenges when it comes to online accessibility, especially when it comes to the amount of content being created and the large numbers of non-technical people who create that content. During our discussions, Cher shared with me a neat trick she used when training CSU Fresno staff on accessible content creation: add the accessibility training to all the other training. Unless there’s a really specific technique that deals only with accessibility, nobody really needs to know that you’re teaching them how to make something accessible. For instance, if you’re teaching someone how to use MS Word and you talk about using actual headings instead of bolded text, the accessibility aspect of that practice doesn’t really matter. In other words, you’re teaching people how to do a good job, anyway. The same thing goes for web development. Many accessibility best practices are also just quality best practices. Teach people how to do a good job and, when it comes to techniques that are specific to accessibility, that should be in the core curriculum too.
Discuss the role of “markup” in Hypertext markup language
One of the most important things that developers should learn about front-end development is the etymology of the term “HTML” and especially of what “markup” means. The act of “marking up” a document goes back to the early days of the letterpress. Back then, the publisher of the document would annotate a document’s content to give instructions for the press operator regarding how to lay out the document on the press. In other words, the markup gives meaning to the content. In HTML this also has important ramifications for not only the visual presentation of the website but also the meaning of the content when rendered in user-agents.
Discuss the Document Object Model, including Object-Oriented Principles like Abstraction, Inheritance, and Encapsulation
Your students aren’t going to your school to learn just HTML and CSS, but even if they were they need to know that their HTML, CSS, and JS is just a polite request to the browser and that ultimately the browser forms a DOM to represent the response to that request. By giving them a strong understanding of the DOM you will make them better developers overall.
Discuss user input devices
As part of a discussion on the DOM and JavaScript, it is important to discuss how events are fired. Students should know, for instance, that certain objects listen to both ‘click’ and various ‘key*’ events and they should understand that many DOM objects have native events they can respond to. As part of this discussion they should know the role that the user’s input device plays in these events.
Discuss quality
Similarly, it is crucial to impress upon your students the importance of quality. I don’t think that anyone actually wants to do a bad job, but I think developer training needs to focus more on specific approaches to ensuring quality. This includes obvious things like checking your work in different browsers, but hopefully also things like unit testing. Additionally it should include things like keyboard testing and other accessibility-specific tests.
Discuss basic user expectations, including predictability of the interface
One of the biggest frustrations people in the usability field often express is that even in college-level Computer Science programs, students aren’t taught anything about usability even when their assignments include a user interface. For instance, students learning to program a Java application using Swing Components are typically not given any instruction relating to design of the application at all. They’re given basic requirements on what the UI must do in order to make the program work, but that’s it. The same often goes for web developer training. During JavaScript training, students are often taught about creating things that are neat and flashy without actually considering how the user will expect the interface to work. A fair portion of time should be spent specifically talking about user interaction and there should be a general focus on usability throughout the entire training.
Expect More
Finally, we should expect more from our students, especially if they’re learning front-end development. Students should learn, understand, and internalize the notion that they’re ultimately creating something that people will use. In the long run, both the end user and their future employers will benefit.