Back to blog

Affordances matter

This isn’t news, but the shift key in iOS 7 is broken. That is to say, it is functional, it just doesn’t work. Most of the people who will read this have thought it, read about it, or wrote about it themselves.

The problem comes down to one simple problem: Visual affordance. It needs to be clear what something does, and when it’s doing it. I won’t go into to detail about visual affordances—A simple Google search will show that people, a heck of a lot smarter than me, have written about this in great detail.

Apple’s iOS 7 keyboard gets the first part right, but it completely fails at the second. It’s clear where the shift key is, but it isn’t clear when the shift key is active. In other words, there is an affordance, it’s just not strong enough.

A simple fix

Android deals with this by making the characters on the keyboard change case, when the shift key is active. Simple, and I love it.

Current iOS 7 Keyboard


Can you tell when it is active? The only affordance given here, is a that the colors change to match the those of the letter keys. The two-pixel drop shadow remains the same, as does every other element on the screen. There are certain scenarios that automatically enable the shift key (beginning of sentence). If you make a mistake and go back it gets unclear in a hurry whether or not it’s active. This breaks down further when typing the proper name of something that requires a cap, mid-sentence. Again, if you make a typo, or need to correct something, you find yourself in a recursive loop of pressing the shift key, followed by the letter you require to see what case it is in. You could literally stare at the shift key for ten seconds or more and have no idea if it is active or not.

Alternative iOS 7 Keyboard


Here’s what an Android-style shift affordance would look like. There is also a subtle change in the design of the active shift key to add a secondary affordance.

This isn’t the perfect solution, but it does solve the problem, and, it makes the point that affordances matter. I’m not entirely sure how I’d feel about having the characters change all the time—I do find it a bit jarring on Android. I also do appreciate the uniformity of the all-caps by default in iOS 7. I’d be curious to know how Android users feel about the constant shift (no pun intended) in character case.