So, things went sort of dark on this blog, didn't they? It's for a good cause, I assure you. I'm writing a book.
Okay, you've probably heard that before. I know I have. I've had to sit through the elevator pitches for someone's cyber-steam-anti-punk novel-no-wait-graphic-novel opus many a time. This is a real book, though, with a contract and EVERYTHING.
Sadly, it's not about a cyber-steam-anti-punk heroine with pluck and nerve and awesome boots. I'll get around to that book, one day. What my book is about is accessibility and 508 compliance. Long story short, '508' refers to a US Federal law mandating that all applications and websites created for the Federal government be accessible to all people, in spite of their disability. Short story even shorter: All the stuff for all the people.
It's a topic that I was dropped into when I started working on a government contract, and found that meeting 508 was causing our applications to be delayed over and over. It was easier just to learn it and do it right the first time. The more I learned about it, the more fascinating I found it to be, though, and I found myself picking over other open source projects and getting irritated that more people couldn't make accessible websites.
I don't plan on letting the blog go fallow until May, when the book is due, but I will be racheting down the posting to a comfortable "When I can get to it" pace. On the upside, I do plan on writing about writing, to hopefully encourage more of you out there to join me in writing tech books. The world needs more tech books that focus on teaching (a blog post is coming up about how we learn), because we do the next generation of developers a disservice when we insist that they can just bounce around on the Internet to pick up what they need. We also do ourselves a disservice, because you know we'll end up having to fix their crap code.
Anyone who follows the rest of my passions knows that I spend quite a bit of time advocating for accessibility on websites. I've given talks, done posters, and I'm even working on a book about it for O'Reilly. Recently, however, I've been thinking more and more about accessibility in video games.
Within the past year, two games made a special effort make their games more accessible. Dungeons of Dredmor added a mode especially for colorblind people. Legend of Grimrock added an on-screen movement pad for a disabled gamer who used a mouth stick to use his computer. I admit it: I still get a bit choked up when I read those stories. I just wish there were more of them.
Without a doubt, video games have made some strides in accessibility in the past few years. Audio is now almost always captioned, and inversely, dialog is almost nearly spoken. Controls are customizable. Controllers specifically for the disabled are being marketed more. But as long as we're making games, it's something that developers and designers will have to keep thinking about. It's not a problem that can be 'solved'. That would be like saying we solved the 'usability' problem, or the 'fun' problem. It's something that's going to keep growing and changing as technology and the way we interact with it keeps changing.
This is the first question I get from people. Why add to your development time and overhead, when you could be putting that money towards another level, or slightly better art? Many people see the time and effort put towards accessibility as wasted.
First, the number of people that need accessibility is not as small as most people think. Seven percent of all males are colorblind, to some extent. Twenty-one million people in the US suffer from arthritic issues that can affect how well they can hold a controller, or how quickly they can use a keyboard. This year, a million people will break their arm in the US, while 300,000 more will be treated for repetitive stress injuries. Approximately 10% of the world's population is left-handed.
Second, a side benefit of designing for accessibility is that the usability for everyone often goes up. The things that made a game impossible for one person are often still annoying for someone with no issues. No one likes a bad font choice, or all caps, and most people want a choice when it comes to subtitles, or listening to the voice acting.
There's one rule for accessibility:
For every player, all the data, and all the functionality
It's up to you how many groups you want to cover, but for everyone you've decided to include, they should be able to not only do everything that everyone else can do in your game, but they should be able to access all the information you're exposing. If a player has to mouse over something figure out what its stats are, but they can't use their mouse, your game isn't really accessible. If you force users to use their arrow keys to move, but a player needs to use WASD, once again, your game isn't accessible. All the stuffs for everyone.
It's not just blind people
I've already alluded to this, but accessibility isn't just about blind people. There's generally four groups:
- Visually disabled
- Hearing disabled
- Physically disabled
- Cognitively disabled
Unlike a website, you aren't going to be able to make your game accessible for all the people in all of those groups. By knowing what annoys them, however, you can start considering what you can add to your game to make it more accessible.
Being visually disabled is more than being blind. If someone is color blind, or needs glasses, they fit into this category as well. Yes, most games cannot be tweaked for someone who's completely blind (though they may surprise you), but that's no reason not to consider the other sub-categories.
This is the group that should never be ignored. One, it's a huge group, no matter what your age range (7% of males). Two, it's one of the easiest groups to test and make adjustments for.
Your goal, when adjusting for color blindness, should be making sure that your interface doesn't get muddled or ambiguous if someone can't differentiate certain colors. If you're developing on a Mac, Color Oracle makes this dead simple. Start up Color Oracle, start up your game, then select the type of color blindness you want to emulate.
Things you should look for:
- If you change color schemes on your models, can you still tell the difference between them? Do your mana potions look like your health potions?
- Do things that are important still stand out? That red book on the bookshelf that's vital to moving the plot along: does it still look different?
- Is your text still readable? Would you want to look at that color combination for several hours, or would you rage quit after fifteen minutes?
- Is something that should be subtle now really obvious? Some colors are actually more intense for certain types of color blindness.
If you find you have an issue, you don't need to choose a drastically different color: usually, a minor tweak is enough. Normally, I nudge the colors around the color wheel until I find two that seem different. Adjusting the darkness or lightness of the colors usually has the most impact, and has the least impact on the feel of the game.
And if it's really impossible? Steal Dredmor's solution, and have a theme just for the color blind.
As someone with a rather strong astigmatism can tell you, suffering through bad interface choices can be painful. Sure, I can see pretty well (my vision is close to perfect, otherwise), but after a while, I'll start to get headaches and teary eyes, even with my glasses on.
This happened to me a few years back with a game called Eternal Sonata. I downloaded the demo... and discovered that the font / color / text size combo made it impossible to play. Sure, there was voice acting for most of the dialog... but not for the menus! The crazy fancy font plus the brilliant blue background and teeny size were just too much. I didn't buy the game.
Unlike the color-blind group, this group doesn't have any nifty tools to use for testing. Instead, it's better to follow some guidelines:
- Dark text on a light background is easier to read. Period. If you must, for aesthetic reasons, have a dark background with light text, at least offer an option for the user to change it.
- Some people prefer dark backgrounds with light text (migraine sufferers often ask for this). If you have a light background and dark text, give them the option to swap.
- Use a sans-serif font for screens. No mono-space. No serifs. No cursive. No... whatever the hell Eternal Sonata was using. Don't be afraid to be bland, and choose a common font that is well-known for being highly legible. No one ever played a game, logged forty hours, beat the big bad, and said "Dude! Did you SEE that awesome font they picked?!"
- Make the font size big. On a computer screen, this would be around 12px. On a TV, it might be bigger. Some people play with their noses pressed against the screen, while others are on a couch across the room. If you want to cover all your bases, you make this customizable as well.
And there's more!
In the next article, I'll discuss the hearing disabled, which ranges from the completely deaf to those who have to wear hearing aids, and people who forgot their headphones.
This group is more than just the Deaf. It includes people who use hearing aids as well, since most hearing aids do not work well with headphones and commercial electronics. Sometimes, there's feedback. Sometimes, they pick up too much. Some people that wear hearing aids are still deaf to certain pitches, no matter how much they crank them up.
As a side benefit, it includes anyone who forgets their headphones at home at least once a week, like yours truly.
Your cut scenes and dialog should always, always have subtitles. Many developers like to simply put the text at the bottom of the screen, with no background. This can be an issue if your text is light, but you have a scene where it happens to be snowing. You can either test every single scene to make sure your contrast remains high, or you can use banding.
If you use banding, you put a band of color at the bottom of the screen that's used exclusively for captioning. Ideally, it would be placed below your screen, not covering part of the screen, so that the user isn't missing out on any of the action.
A few notes about styling: If you can, let people customize this. Me, I'm a white-background-dark-text person, but I know others who hate that combination. Also, ALL CAPS ARE BAD. DO NOT USE THEM.
Another side-benefit of using subtitles: If your voice acting is cringe-worthy, I can mute it. I've had to do this with so many triple-A titles, it's not funny.
Good captioning is not transcribing. Usually, in games, since there's a script, this isn't an issue. When people speak off the cuff, they pepper their language with mis-fires, um's, er's, and restarts. An actor probably isn't going to do this unless someone's trying to be super edgy.
However, there is one place where I've seen captioning go off the rails: wordiness. People can only read so fast, so try to keep the words on screen down around ten to twelve. After all, they need time to read and watch the action. This might mean cutting words out of a particularly verbose scene.
Also, make it clear who's speaking. Adding their name to the text can get a bit bulky, so a common solution is to use a slightly different font color for the different speakers. Just remember to keep an eye on color contrast. Does that dark green look different enough from that dark red? Just because someone has issues with hearing doesn't mean that can't be color blind, too!
Also, dialog isn't the only important thing going on in your game. Off-screen cues are incredibly important. True story: the first time I played Plants vs. Zombies, I played it on my Touch with the sound off. I thought it was a pretty easy game until the stage where they introduced balloon zombies. I felt like it jumped several levels in difficulty. What the hell?! It wasn't until I put my headphones on that I realized how important the off-screen sounds were. Hearing the balloon fill up with air was a cue for me to start laying down cacti. Without it, I was suddenly stunned when I was being bombed with zombies behind my lines of defense.
If you have an off-screen cue, make sure you caption it, or at least add a visual bell that can be turned off and on. With PvZ, I would have added an icon that would flash with the a zombie icon whenever a zombie made a noise off-screen. If the balloon icon flashed, then I would know to start adjusting my strategy.
Live transcription is a long way off, so if your game features voice chat, a deaf user is probably going to miss out on that. We can live with that for now (though do keep an eye on that technology).
If you offer voice chat, though, make sure to offer text chat as well. Yes, they'll still be missing out on some of the game content, but at least there'll be a way for them to talk to others, and have them talk to others.
Remember how I said that hearing aids pick up everything? That's one of the biggest complaints I've heard from those that depend on them, and it's one of the main reason why they get turned off. My grandmother only wore hers if she absolutely had to, and my father-in-law switches his off whenever he's out of the house. All sounds are blasted at equal volume, whether it's the person sitting across from you, or someone dropping a glass from the other side of the restaurant.
Someone wearing a hearing aid may want to turn off your ambient sounds. Most games include a slider for sound effects, but that includes important sounds, like the sound of a creeper walking up behind you. Consider adding a slider for environmental sounds, like water, wind, or merchants chattering, and then another slider for important ambient clues, like monster growls, clues for quests, or signs that you're running out of life.
The physically disabled!
Overnight, my book on making accessible websites was released. It's my first book, and I'm completely over the moon. Not only do I get my own animal, but I get to put a book out on something I'm passionate about. I get to help break the paradigm that accessibility is too expensive, just about the blind, or only benefits a small portion of the population.
Even better is the timing: I'm teaching a tutorial at DjangoCon on making accessible websites. I've been super jazzed about being able to do more than drive-by conversations with people about accessibility. It's one of those topics that many people approach with skeptisism, but leave with a budding interest. This time, I'll be able to take that interest and mold it into a deeper understanding in what it means to be accessible.
We also get to improve a really bad restaurant site, which I think will be cathartic for most of us.
There's space at the tutorial, so if you're at DjangoCon or in the DC area, you can still sign up! And heck, you can say you took a class on accessibility from the woman who wrote a book on it.
Since Accessibility Handbook was released, I've had a lot of people asking me about what it was like to write a book. My response is somewhat disjointed. It's awesome! It's the most pain I've willingly inflicted on myself! It made me more confident! It made me think I was a nobody!
So, here's the long of it.
You would think this is the hard part. I was nervous as hell before I made my pitch. All I could think of was every article I ever read about the elevator pitch. You have thirty seconds to share your awesome idea! GO!
Pitching a book isn't like that, though (at least, not in my experience). My first editor, Julie Steele, approached me about writing after I snarked about a poorly written technical book on Twitter. I had no ideas at our first meeting. I just knew what I could write about. Happily, she knew the potential interest in those markets and helped me focus on one of the topics.
After our talk, I wrote up an outline and sent that to her. Not long after, I had contracts in my hand to sign and a book to write.
Writing: the easy stuff
Starting a book was incredibly easy for me. I love writing. I already had an outline, so all I had to do was follow my original plan. I sat down every day, and for an hour or so, I wrote, spilling out everything I had learned about accessibility onto the page.
This part of the process is energizing. The words flow. You can write when tired, when tipsy, when distracted, and still, they come out. Writers block is a myth! You watch your page count go up, and you start wondering if maybe you can submit the book early.
Then, you trip over a section where your knowledge is a bit sketchier...
The first hurdle (I'm learning SO MUCH!)
The first time I hit this, it was a minor thing. I ran into a few sites dedicated to Dyslexia and web design, and realized I'd left them out. No big. I researched a bit, and the recommendations were consistent across the board.
I found it fascinating, and burbled to anyone who would listen about how much you learn while writing a book. It's awesome! I love learning, and I love writing, and now omigod I could do BOTH at the SAME TIME. Life is good.
The second hurdle (The reality check)
After writing for a while, I came across a topic that I was completely unschooled in: WAI-ARIA. I knew about it, of course, but I'd never used it. How hard could it be, though? I'd just read up on it and include it in a section again!
Wrong. Oh, so wrong.
I freaked the hell out.
Impostor syndrome (I'M A HACK!!!)
This hit me hard. Who was I to write a book about 508 and accessibility? There were people who had been doing this since 508c was written!
I re-read my old chapters. They were terrible. Was English my second language or something? Did I have a stroke that wiped out my ability to write coherently? What the hell was wrong with me?!
I couldn't touch the book for a while. I didn't like to think about it. I was going to fail. I just knew it.
What kicked me in my rear was an email from my second editor, asking if we needed to put the book on hold. It took all my strength to write back: No. I am finishing this book if it kills me.
Who was I to write a book on accessibility? I was one of the few people that would put her butt in a chair and get it done, that's who.
The final stretch (All side projects go to hell)
I didn't intentionally drop my side-projects. I just didn't have the energy to even consider them. My Roguelike languished. My blog stopped. A few projects that I had just started outlining never made it to the next stage. I dropped out of social circles.
My weekends were often reduced to me writing on the book all weekend, with breaks for food and forced socialization. I did it, though. I finished the book and handed it over to my editor.
Tech readers (I'm a hack, redux)
My editor handed the book over to my tech readers. I had found them through a call-to-arms on Twitter and G+, so they were all friends, and I already knew they were all highly competent.
That was the longest wait of my life. I knew they were going to return the book with scathing remarks. Gah! She's a hack! I can't believe O'Reilly is considering publishing this pile! Un-followed!
That didn't happen.
They read it, and came back with corrections... and praise. Lots of it. I was stunned. Maybe I'm not a hack after all! I probably read their comments at least once every few days when I started to get nervous and backslide.
With my next book, I swear, I'm considering hiring someone to make all the changes from the tech readers. Oh, I should review each change? Yeah, I thought that the first week. Oh, is that the rule for commas? Hm. I don't think so. I'm going to go look that one up.
By week two, had one of them asked me to replace all occurrences of 'accessibility' with 'elephant', I would have done it. Editing is mind-numbing.
Finally, it was done. I was done! I could stop looking at the manuscript and have a life again!
That was when the production editors get a hold of you. You have one last chance to review your book before it goes to print. They go over it with a fine tooth comb. Figures are redrawn for different formats. This took me about two weeks of back and forth. Not as bad as the editing phase, but don't think that you're free just because they have your manuscript.
The long wait
And then, silence. Your book moves through the wyrding ways of your publishing house. I had a page on O'Reilly, but all it said was that the book was available for pre-order.
I didn't learn my book was for sale through my editor. No, this is where being part of an international social group comes in handy. A friend in Israel alerted me through Twitter, congratulating me on the book being published. I figured he'd found the pre-order page... And imagine my shock when I saw that it was now for sale.
I squealed, then spent the rest of the day in a highly manic state. It was out! It was published! I was an Author now! If you had bad news to deliver (and I did get some that day), that was the day that it didn't phase me for a second.
Next time, I'm going to learn to shut down projects gracefully by scheduling my crunch time. The next book is in the works, and I've already decided to go quiet from December to January. That's where all my wiggle room is built in, and chances are I'll be body-slamming the walls of said room.
Also, I know to look for the crisis of faith. It's apparently rather common with writers. Agatha Christie had them for each book, and she wrote approximately a million books. Each time, she got through it and finished the book. My husband knows to look for it, and I know to drop the 'everything is fine' act and actually speak up about what I'm going through. The book probably would have been out in June, had I not spent so long freaking out.
Outlines are awesome. I'd love to see if I could use one for a fiction book.
And the last lesson learned? I really, really love writing. Being published only makes me love it more.
There's nothing like losing use of your dominant hand for a year to give you empathy for the physically disabled.
The Iguana Saga
It was my sophomore year in college, and I was bitten by my five-and-a-half foot iguana. Four tendons were completely severed. Twelve hours in the ER, three in the OR, and a year of physical therapy later, I had most of my use back, though I would never regain full feeling, and my right hand tires quickly.
This was a few months after I got my PlayStation. AUGH. TIMING.
Once I was off the meds that made me think that British people were speaking Spanish, I broke out my PlayStation again. I couldn't go to school since I couldn't take notes, and the meds I was on tired me out if I did anything more strenuous than go out to eat. Might as well game.
I discovered that there were some games that were impossible to play, but some were doable. I beat Final Fantasy 8 thanks to being able access all the functionality of the game with one hand. I could also set the fight system to one that waited for me to enter what I wanted to do rather than beat on me constantly.
The people at my work did some research, and one of them found a one-handed keyboard for me to use. Another installed Dragoon Natural Speaking. I played around with both, and ended up with a grab-bag of successes and failures. I could poke around on my computer, but anything more complex than surfing was painful. Games? Hah. No. I couldn't hit the keys fast enough, even with my nifty one-handed keyboard. Mousing with my off-hand was shaky, and it didn't get much steadier as time went on.
I have all of my functionality back, but I still have time limits when it comes to how long I can do things on the computer or on a console. If I game more than an hour or two at a time, I pay for it the next day. My hand wears out quickly, so if I have to hold down a button for a long time, I'm going to eventually get pains shooting up my arm.
Not every physically disabled gamer is in a wheel chair (though some are). We may not even appear to have a disability. Most people don't know about my hand until I stick it in their face and start rattling off my story ("I know what my hand looks like without any skin on it!"). It may be incredibly subtle, and it may take time to kick in.
Who does it include:
- Those with limited movement
- Those with spastic disorders (their muscles might move too much, or move unexpectedly)
- Those with arthritic disorders or RSI
- The temporarily disabled (broken arm, etc)
- The elderly (Your grandparents may not game, but you're going to be old one day. Sonny.)
The physically disabled have a huge variety of tools, some of them made especially for gaming.
- One-handed keyboards
- On-screen keyboards
- Touch screens
- Specialized controllers
- Mice with many buttons
They also might use a standard keyboard and mouse, albeit slower than normal, or less steadily.
What can a game developer do?
Since games are so heavily reliant on input (and often, quick input), this can feel like an impossible task. It isn't, though! Ask yourself a few questions...
Does input need to be realtime?
With Final Fantasy 7 and 8, I was able to configure battles so that the game waited for my input before continuing. Without this, the game would have been impossible for me to play. Did it take longer? Oh, sure. A replay a few years later proved I could beat the game pretty quickly if I could use both hands. I was still able to beat it, however. Tetris wouldn't work if it wasn't real time, but many RPGs have room to add this in. Even Fallout 3 had this, in a way, with their TADS system. Hit a key, and you can choose where you want to plug enemies.
Can you have on-screen controls?
Take a look at your game screen. Could you add an optional pad for movement or input onto the screen? Legend of Grimrock has one of these, added back in at the request of a disabled developer who uses a touch-screen to play games. If you do decide to add this, just remember to add all functionality a user would need: Pausing, movement, spell casting, and combat should all be represented.
If this seems impossible to add, go look at a few RPGs on Android or iOS. If they're an import from another system, they will almost always have a set of translucent controls.
One advantage to designing some on-screen controls: You're already primed for deploying to a tablet market.
Can you lose the mouse? Or the keyboard?
Many PC games are a hybrid: they insist on using both the mouse and keyboard. For some games, this would probably be impossible to work around. I can't image playing a FPS without the ability to look around with my mouse. For others, though, there's a bit more leeway. I have a feeling that Blackwell Legacy could have worked with just the keyboard
Can the user customize controls?
Many specialized controllers depend on the ability for the user to customize their controls. Maybe they want to remap everything to work on their mouse. Maybe they're left handed and really don't want to use the arrow keys.
What do StickyKeys do?
If you've ever worked with Windows, I'll bet you know about StickyKeys. In many versions, if you hold down the shift key too long, you'll turn them on. They'll then proceed to drive you up the damn wall until you get them turned off.
With StickyKeys enabled, if you hold a key for a bit, you can release it, but Windows will pretend that you're still holding it down until you hit another key. If you're someone with joint issues, this can be a god-send. Holding down one key, whether on the keyboard or on the mouse, can cause quite a bit of pain if you have any hand issues.
I discovered the glory of StickyKeys and games when I played The Witcher. In The Witcher, you generally walk by left-clicking and holding somewhere away from your character. You walk all over the damn place in that game, so I was getting horrible pains up my arm.
I turned on StickyKeys so that I'd only have to hold down the mouse button for a few seconds. After that, I guided my character by moving my mouse around. He followed my cursor until I clicked again, at which point he stopped.
Most games work with StickyKeys without any interference, but it's worth revving up your game and seeing how the two interact.
The cognitively disabled!
When people talk about accessibility, they often forget the cognitively disabled. This is a group that's become increasingly vocal in the web accessibility arena, especially as the Internet has become a fancier, busier place.
Most people think of the cognitively disabled as the ones that are labeled 'Severe and Profound': Someone with no (or little) language, with the mind of a toddler.
The truth is, you probably know someone who's cognitively disabled. Having a cognitive impairment isn't the same as not being smart. It means that the act of taking in information or actively thinking is somehow different for an individual. Some take in too much information, and need either training or medication to help them filter the world. Others might have issues taking in information visually, so either have to take their time or
Most of the people who are issues with cognition really have issues with information processing. They might need more time with information, or they might have issues parsing a specific kind of information. They may also get information overload quickly.
- The groups I normally worry about:
- People with dyslexia
- People with ADD/ADHD (Collectively known as AD/HD)
- People with early on-set dementia or Alzheimer's
- Some subgroups that also benefit:
- People on mind-numbing medication (remember my iguana story?)
- Non-native speakers
So, what can you do, as a game developer?
Subtitles and voice-over
It's hard to tell what someone with a cognitive disability will find easier: Text they can read through, or subtitles they can listen to. My uncle, who's dyslexic, had to have his school books read to him. My son, who has Aspergers, has issues following verbal instructions, but does extremely well with written ones.
Since you don't know, if you have dialog, try to offer both a captions and voice. This is a nice benefit for people who can't stand voice acting, or are in an environment where they can't have their sound on.
In general, sans-serif fonts are easier for someone with dyslexia to read. Why? Because many people with dyslexia recognize word shapes. Serifs mess with word shapes, making them more complicated to decipher.
You know what else is hard to decipher? All caps. Don't use them.
If your designer is absolutely married to some fancy font, at least add an option for the player to switch to another font.
Most people assume (wrongly) that pure white against pure black is the most accessible contrast. It's actually one of the worst. People with dyslexia report preferring colors that are closer together in hue and value (that's color and lightness/darkness for you non-art people).
Picking the colors can be tricky. I usually go with a very dark grey and a slightly off white. This may not work for every dyslexic gamer, though. I knew one who could only read when the text was a medium blue on a deep blue background.
For these users, allowing them to set the background and foreground for their text areas is a huge help. It also helps users who prefer a lighter background, or users who prefer light text on a dark background.
Busy busy busy
In theory, everything is better with particle effects. They add interest, they make your game seem more real, they give a polished glean to your interface. Particle effects are great for most of the population.
They're not so great for the people who have issues with taking in too much information, and not being able to filter it. If you can, add an option to kill particle effects. The people with crap CPUs will thank you as well.
Quest logs and maps
There was a time, back in the glory days of the CRPG, when you had to write down everything worth remembering. Get a quest? Better get out your pencil and paper. Have a dungeon? Graph paper time!
While there is a certain charm to this, if you're someone who has trouble processing information the first go around, it can be problematic. Important details might be left behind as notes are made. And if you have trouble with spacial reasoning, making a map is no trivial task.
So, include a map and a quest log. Hell, give someone the ability to search through the quest log (I haven't seen that, yet), so they can quickly find out what the heck they were supposed to be doing with these raptor heads.
Some final thoughts and some resources.