What it is inclusive design, why do we need it, and how can it make computers more accessible...
For many of us, when we think of computers or programming we feel like running away. And yet we (have to) interact with them every day in one form or another. Your mobile phone, your bank’s ATM, the supermarket checkout machine, or your office desktop, these are all computers. And with computers permeating every aspect of our lives, it’s becoming more and more important to make them accessible to everybody.
Inclusive design is a way of going about creating something, anything, whether it's buildings or software, so that people with different abilities or impariments are able to use them.
Usually, when technologists go about creating a new software or application, they design it for a “representative” user, or perhaps a couple of "representative" users, which are supposed to represent the majority of people who will interact with the application. Unfortunately, this strategy is excluding people who are not like the majority. For example, a mobile phone touchscreen, on its own, is not very helpful for people who are blind or low vision.
To account for this, other technologists design even more software that aims to make existing software accessible to a certain group of people with a certain type of disability. Screen readers for blind people, or speech-to-text applications for people who are deaf, or eye-based keyboards for people with mobility impairments.
And so far, this strategy has indeed been very useful. The push for accessibility in technology in the past decade has given people with disabilities more independence and confidence in being able to do things on their own.
But because of the way software is being built right now, this approach is unfortunately quite limited. As Colin Clark from the Inclusive Design Research Centre at OCAD University, points out, “a lot of software development is about boxing and hiding away the internals of the software.” To create a screen reader application for example, the screen reader needs first to be able to access the insides of other applications in order to get the text that is shown on the screen. And this only works if the other applications allow it because they have been designed to allow it. But how about supporting other types of disabilities?
Inclusive design offers a way of considering the diversity of human experience from the beginning of the design process, rather than at the end.
Instead of designing for a “representative” user, inclusive design proposes to design with different users, and instead of generalizing over the different user experiences and abilities, inclusive design considers the full range of human diversity, where computer applications can easily be customized and accessible through different means.
“Instead of taking all the responsibility on yourself as a designer, or as a technologist, bring in people with diverse backgrounds and lived experience of disability into the design process, so they can help make those decisions with you,” summarises Colin.
While inclusive design can be applied to others domains such as architecture and product design, let's look now at an example of how it has been used to design a more inclusive programming language.
Code Jumper: an example of inclusive design in practice
If computers are somewhat scary, then programming can be even scarier!
However, just like maths and physics, it is now part of the school curricula in many countries. Students, regardless of ability or disability, need to learn computer programming.
The problem I mentioned above of needing to use screen readers to be able to read and change a program on the computer is made even harder by the students needing to learn what a program is at the same time!
"It would be like reading a book one letter at a time," says Cecily Morrison, a researcher at Microsoft Research Cambridge, who, along with a team of other researchers and designers, set out to create a programming language that is inclusive of kids with visual impairments.
“We soon realised that blind and low vision kids have the real expertise in how we can bring a tactile experience for a programming language to the world. So we involved 4 blind and low vision children in our design team, they were full members of our design team for two years, and they made some critical contributions to the work that we’ve done," says Cecily.
Through multiple iterations with craft materials such as playdough, 3D printing and experimenting with the intermediate results, the children helped find shapes and textures that excite the hand, and identified the importance of immediate feedback from the system.
The final result is a physical programming language consisting of physical "pods" - fist-sized oval shaped balls, with knobs on top, which the children can connect through wires to create music and stories. As soon as you connect one pod to the main hub, a little computer that represents the start of the program, the computer plays the sound that the pod currently encodes. By rotating one of the knobs on the top you can modify what the knob is doing; for example, you can select a different sound to be played, or change the duration, or the number of times that the next pod should be repeated.
There are different types of pods, and each corresponds to a certain type of coding instruction, for example play a sound, pause, or create a loop between multiple pods, so that they get played repeatedly.
Each type of pod can be identified both through tactile sense by feeling their different knobs, ridges and textures, as well as visually, as each type of pod also has a different colour.
"We've specifically designed it to be inclusive of children who are blind and low vision but not exclusive to them" says Cecily. “We know that most blind and low vision children are in mainstream schools and they don't want to sit in a different room with their own separate technology. They want to code with their friends. So this was something that they could all do together.”
After using Code Jumper through the primary curriculum, the students will continue their programming lessons by using textual programming languages and screen readers, which is also the technology used by professional programmers who are blind. But by using Code Jumper to learn the basics and the concepts of programming, the process is much easier, more enjoyable, and more inclusive.
This is one of the success stories of using inclusive design to create better and more accessible computer interfaces and software, and hopefully many others will follow soon.