A typing tutor for the visually impaired

I have just had a very interesting conversation with Kajarii where we discussed keyboards ergonomics, alternative keyboard layouts, and typing tutors.

Kajarii is blind and touch types on a QWERTY keyboard, having learned by trial and error from a young age. Kajarii would like to learn colemak keyboard layout, but made a really good point: how do you learn a new keyboard layout when you can’t even see what the layout should look like and you have no feedback from what you’ve typed?

Once i thought about it, i realised that every typing tutor i’ve ever seen has relied heavily on being able to see. You have to look at what you’re meant to type, there is usually some kind of layout diagram that highlights the key, and quite often the use of colour for feedback if you have typed correctly, and the cursor moves on to the next letter. They are no good at all for somebody without the privilege of sight.

I think i could quite easily teach a blind person to touch type if we sat down side by side. I’d start with the index fingers on the home row, tell them what the letters are, give instructions of short bursts of letters to type, and give verbal feedback on what they typed. Like most typing tutors do, i’d gradually introduce new letters and form words to type using the letters learned so far. I can see this working well with one-on-one human interaction.

So can that be translated to an accessible typing tutor program? I think it probably could be. I would like to try. What would it be like? A terminal based app? A web app? A native desktop app? Would it rely on screen reader technology, or use pre-recorded instructions? I need the input of visually impaired people to know what would be most useful.

Is there anyone out there who would like to help write an accessible typing tutor? Anybody who would like to help test one?

Could we do an open source effort? Something that is extensible to adding different keyboard layouts? There are accessible typing tutors and there are typing tutors that support colemak, but i don’t think there is an overlap.

Please leave a comment if you are interested in helping to create something, or have some ideas about how it could be.

I guess i will never understand just how privileged i am to be blessed with both sight and hearing, but i am interested to learn more about accessibility issues, and i at least *want* to care more about the kind of difficulties i hope i will never have to face.

Colemak roundup

I have written a few times about colemak keyboard layout, its benefits, how i switched, and advice for other people wishing to make the switch. This is not going to add anything new; i just want a place i can point people to, and they can find all the information.

When i add new colemak-related posts in the future, i’ll also add them here, use it like an index.

Ask aimee: When/why did you decide to switch to Colemak?
Includes the history of QWERTY, Dvorak and Colemak, and my own personal typing journey so far.

Colemak is easy to learn
An encouragement to newcomers that Colemak is not so different from QWERTY. Also highlights the advantages of Colemak as compared to Dvorak.

How to learn Colemak
If you’ve made the decision to switch, here are my tips for how you might go about it.

Colemak and vim: “But what about h/j/k/l?”
For vim users, a common question is how you deal with the direction keys when switching to Colemak. Here is my answer.

QIDO for Colemak please!
A campaign to get a Colemak version of the QWERTY-In-Dvorak-Out USB keyboard adapter.

I love to help people make the switch to Colemak. So if i can encourage you, talk to me on twitter! @sermoa

How to learn Colemak

A few days ago Javier emailed me asking how to get started learning Colemak. I wrote quite a long reply (uncharacteristically long for me who likes short emails) and i thought it might be worth turning it into a blog post.

Let me assume that you’ve already made the decision to switch to Colemak. If you need convincing, may i refer you to my previous post: Colemak is easy to learn.

This is roughly how it worked for me. Feel free to try it out, let me know how it goes for you, tell me if i need to tweak anything.


Step 1: print out the keyboard layout. No really. Do this! You’ll thank me when your computer locks and you can’t figure out how to type your password!

If you’re on an Apple or TypeMatrix keyboard, you can use one of these that i made:

Colemak keyboard layout

TypeMatrix 2030 Colemak layout

You can also find some generic layout diagrams on colemak.com

You’ll be tempted to put stickers on your keyboard, or pop the keys off and remap them. Most people discourage this, as do i. The reason is, you’ll be tempted to look at your keyboard, which is counterproductive. You’re trying to train your fingers. So look at the diagram until your fingers know their way. Also, if you move keys around they won’t fit quite right, and the useful bumps for your index fingers will be moved.

Unless you have a TypeMatrix or another hardware keymapper, you’ll need to change some software settings. On Linux and OSX Lion this is easy as the layout comes built-in. On Windows and OSX Snow Leopard you need to install something. Follow instructions from the colemak.com download page

Day 1

Find a typing tutor that knows Colemak. On Linux i recommend ktouch, and on OSX i like aTypeTrainer4Mac. Other suggestions are on the colemak.com learn page.

This is aTypeTrainer4Mac. It’s puke green and Comic Sans, but it’s really clever at how it progresses you through the levels at a sensible pace. It also provides nice reports and charts showing your progress.

You’ll need to practise little and often for the next several weeks. Grab five minutes here and there, every chance you get. Consider screencasting yourself, as a way of recording your progress. If you know someone else who is learning, it can be good fun to practise together, taking turns. Don’t do too much at once: when you get tired and feel your mistakes increasing, it’s time for a rest.

Day 2

The nice thing about Colemak is that after the first day of training you should already know the home row, which can be up to 70% of what you’ll type! So get your print-out diagram, and have a go, whenever you need to type an email, or tweet, or whatever. Go very slowly! Focus on using the correct fingers. Try not to hunt and peck. If you make a mistake, delete the whole word and try again.

This will soon become unbearably frustrating, at which point, switch back to your familiar keyboard layout. When you feel ready for another try, take a deep breath, and get your brain into that hyper concentrated mode where you focus really carefully, thinking about every letter before you type it.

For some reason, i found it helped if somebody dictated an email to me, and i typed it. Perhaps because then all i had to think about was typing.

This will keep you going for the next few weeks, along with your training which you should still be doing every moment you get.

Week 2

As you enter your second week you’ll probably be gaining a little bit of confidence. It’s a good time to measure your progress. Sign up for an account at TypeRacer and either practise by yourself or even better, get some other people to race against. A good way is to select “Race your friends” and put the URL on twitter, inviting people to join in. I always like a couple of races, if i have time! :)

The more you type real text, you’ll start to feel new pathways forming in your brain and in your finger movements. It’s an amazing feeling; i’ve never felt neurons moving so tangibly as when i’m learning a new keyboard layout. Common letter patterns like “and”, “the”, “you”, and “ing” become familiar and you start to think of them as a single unit rather than individual letters. It’s as if you give your fingers the “ing” command and they do it!

Week 4

At some point, maybe in your third, fourth or fifth week, you’ll be typing Colemak more and more, and feeling less of a need to revert back to your old keyboard layout. In fact, you’ll probably feel yourself forgetting it altogether. This is the pivot point. There’s no going back now. So this is the moment to switch full time over to Colemak.

You’ll still be slow, or at least you’ll think you are slow. In fact, by now you’ll probably be around 40 words per minute, which is about the average speed for someone who never makes a conscious effort to learn how to type well. Remind yourself that you’re getting better all the time.

If you happen to use Vim, you may want to print out a Colemak Vim cheatsheet. I’ve done a standard layout and a TypeMatrix version:

vi / vim graphical cheat sheet - Colemak version

vi / vim graphical cheat sheet - Colemak TypeMatrix version

Keep up the practise with your typing tutor for as long as you feel the need. Now that you’re full-time Colemak, you’re getting a lot of real-world experience of course, but the tutor can help you to build up the speed.

Week 8

By now, your fingers and your brain should be really comfortable in Colemak. You’ll be able to type without really thinking hard about it. From now on, and for the rest of your life, it’s all about minimising mistakes and increasing accuracy and speed.

For typing, i really embrace the sentiment “Take your time and go fast”. TypeRacer tells you your accuracy as well as words per minute. I’ve found that every mistake costs me about 5 words per minute. Don’t rush, don’t try to go faster than you’re able. You will trip up. If you want to increase your words per minute, focus on minimising your mistakes per minute.

If you find yourself forming bad habits, correct them. For years i had a dreadful habit of only ever using the left shift key, no matter which letter i was typing. That habit gave me bad RSI in my left hand. The same thing goes for the Cmd+C / Cmd+V pattern on a mac. I frequently see people making painful contortions with their left hand. You have another Cmd key on the right! Use it!

Unfortunately, the mac keyboard doesn’t give you a Ctrl key on the right. TypeMatrix does, but it has no right Cmd key. Swings and roundabouts, hey!

Other thoughts

While you’re learning, you’ll probably want to put Colemak on your other devices, for additional practice. I believe iPhone and iPad have Colemak available since iOS 5 … can anyone confirm? It’s easy to get Colemak for Android, using AnySoftKeyboard or my preferred one: MultiLing Keyboard.

Colemak is easy to learn!

If you touch-type QWERTY you already half-know Colemak.

Many of the keys stay the same, which means many of your shortcuts remain the same. On a Mac, these shortcuts are Undo, Cut, Copy, Paste, Bold, Minimize, Hide, Quit and Close.

The keys that do move don’t go far, usually one or two keys away. Mostly we’re trying to get the common letters on to the home row and move the uncommon ones away. Many keys that move stay on the same finger, or at least in the same hand. Only E and P swap hands. In Dvorak, 22 keys swap hands.

The punctuation keys don’t move, except for the colon/semicolon (no way that gets to stay on the home row!) In the Dvorak layout, all of these punctuation characters move: fullstop, comma, question mark, single quote, double quotes, square brackets, curly braces, angle brackets, dash, underscore, plus and equals. It’s a nightmare for programmers!

If you were to scratch off the keys that have moved, look how many you’d have to remove for Colemak compared to Dvorak:

Learning Colemak vs Dvorak keyboard layout

As if you didn’t know, QWERTY is inefficient. Dvorak is a lot better, but Colemak is by far the best. To prove this point, here is the heat map of typing this very blog post on QWERTY, Dvorak and Colemak:

Why Colemak is best

Row usage compared between QWERTY, Dvorak and Colemak

There are other reasons here to explain why Colemak is easy to learn.

With the holidays coming up, do your future self a favour and learn Colemak!

Update: so you’ve decided you want to learn Colemak and want to know how to go about it? AWESOME! I have just the post for you: How to learn Colemak.

Colemak and vim: “But what about h/j/k/l?”

I have my phone set to alert me when anyone mentions Colemak on twitter. It’s a fun one to follow, you get new people trying out Colemak at least once a week, and i love to encourage people.

One thing i see a lot is programmers talking about vim, and asking what you do about the h/j/k/l keys. Do you remap them or relearn them?

There is at least one person who has made a colemak-vim remapping plugin (see this discussion in the Colemak forum), but i can’t imagine it working well. If you try to put h/j/k/l back where you’re used to them then you have to find new homes for n, e and i. (h actually stays in the same place) As you may well know, if you’re reading this, n is next search match, e is end of word, and i gets you to insert mode.

So if you move those keys, where would you put them? Almost every letter in vim has some sort of significance, and many of them are chosen for the action they stand for, which is part of the power of vim.

My answer is to relearn them. Maybe it’s easy for me because i was on Dvorak when i learned vim, so i was never attached to the position of h/j/k/l in the first place. Curiously enough, in Colemak h/j/k/l all end up on the same finger: the index finger of the right hand. Some people complain that j and k feel upside down, and they do at first, but then you realise that Apple is busy rewiring our brains with “natural scrolling” (which i think is just awesome, by the way) and before you know it, Colemak and vim feel perfectly wonderful together!

So my advice: print out one of these Colemak/vim cheat sheets and just get used to it!

vi / vim graphical cheat sheet - Colemak version

Look! i’ve even done a typematrix version for all you Colemak people who pair program and need a keyboard with a hard wired Colemak switch!

vi / vim graphical cheat sheet - Colemak TypeMatrix version

Of course, the other great thing to note about Colemak is one of its big advantages over Dvorak: that punctuation characters remain in their QWERTY positions. Which is very useful for vim users! :)

QIDO for Colemak please!

As most of my followers are probably well aware, i’m a bit of a nerd on the matter of keyboard ergonomics and keyboard layouts.

For any Dvorak typists, the QIDO (QWERTY In, Dvorak Out) is a very useful device that converts any USB keyboard into a Dvorak one. It is a spin-off product of KeyGhost, a hardware keylogger, but in this case put to a completely different use.

They QIDO plugs between the keyboard cable and the USB port on the computer, and it translates all keyboard input signals into the Dvorak letters. Reminds me somehow of a Babel fish! :) Having a QIDO means you don’t have to switch keyboard input at the operating system, especially useful if you’re pair programming with someone who types on QWERTY.

A few months ago i wrote to KeyGhost, the makers of the QIDO, to ask for a Colemak version (or even better, a programmable version) of the QIDO. Theo Kerdemelidis gave this reply:

We have had a few requests for Colemak support, so we will look into it as soon as we have a chance.

I know they also sent the same response to someone else who asked for a Colemak QIDO at the same time. As far as i’m aware they are still sending out the same reply to people who ask.

So i have a task for you! If you could use a Colemak QIDO (or QICO as they might call it!) please email helpdesk@keyghost.com to let them know your interest. If you get any reply, please let me know here.

Dvorak might be more popular at the moment, but that’s only because it’s been around for a lot longer than Colemak. We know that Colemak has the edge, and it’s getting more popular all the time. Let’s give KeyGhost all the encouragement we can to get a Colemak version of the QIDO made soon! :)