Archive for September, 2007

The Awful State of Web Accessibility

Saturday, September 29th, 2007

This past week, my company has been promoting web accessibility through a series of seminars that explain its importance for business and some techniques that we can use to make our web sites more accessible. On Friday, I attended a seminar hosted by the Cincinnati Association for the Blind and Visually Impaired (CABVI), in which they demonstrated how web sites appear to users with poor or no vision.

For those with poor vision…

For users with poor vision, they have applications that can zoom in so close that the icon for one application basically takes up the entire screen. These users work more slowly, since they have to pan around the screen a lot, but they can still use most web sites. Mainly, you just want to provide ALT tags for your pictures, since it’s hard to tell what something is at that close range.

For those who are blind…

For users who are blind, they have applications such as JAWS or Window Eyes, which read the screen for you. This is a totally crappy experience on the web. Really, I can’t exaggerate how bad it was. They guy who demonstrated these tools is an instructor at CABVI, and he seemed about as savvy as you can get with the software — and it was still awful. The software provides a lot of keyboard shortcuts, such as a key to move down to the next heading in the text, or a key to open a list of all the hyperlinks on the page. These keys helped a little bit, but you still have no sense of context for what you’re hearing. The screen reader tells you the name of a link, but you don’t know if you’re in the main nav, somewhere in the body (left column, right column, a call out), or in the footer.

Filling out a form is next to impossible. Screen readers operate by reading the HTML behind the page, not the page you would normally see.  So when the user tabs to a field, it often just says “edit field” without providing the name of the field. Who knows if it wants your name or your phone number or what. Unless the name of the field is directly before the field itself in the HTML, the screen reader doesn’t give you any context. (And although it seems like it would be easy to write HTML with the name of a field next to the field itself, it’s not. A lot of forms are built with ASP.NET or JSP, and it seems like those languages sometimes separate HTML and forms automatically.)

What can be done about it? - Part 1

In the meeting, my friend Ian asked if the people at CABVI have ever heard of Quicksilver. For those who don’t know, Quicksilver is an amazing program for the Mac. It’s like Spotlight, except much much cooler. You can find any file (let’s say a song) and do almost anything with it (e.g. open it with any application, play it in iTunes, show it in Finder, etc.) all with keystrokes. I think this would be especially cool for the blind because it’s very intelligent. For example, you could type “ffox” to find Firefox. The first time you do that, Firefox might not be the first result, but then next time you type “ffox”, Quicksilver is smart enough to know that “ffox” means “Firefox” to you. The developer, Nicholas Jitkoff, explains the theory behind his application in a Google video (warning: Nicholas is brilliant and worth listening to, but he’s not the most engaging speaker). In fact, his philosophy was a partial inspiration for my Google Social application.

So Quicksilver might be a good solution for the visually impaired on the Mac desktop (has anyone tried this before? can anyone confirm it?), but it doesn’t help too much for browsing web sites.

What can be done about it? - Part 2

My initial impression is that the people who develop screen readers are going to be constantly at odds with the legions of people who make web sites. Web developers are always finding new ways to do things, and web designers are interested in whatever technology helps websites look better (even though those advances generally seem to hurt accessibility), but almost nobody is thinking about accessibility. So these people developing screen readers are working as hard as they can to keep up with technologies that weren’t build with them in mind.

That reminded me of an important idea (that nobody talks about anymore) called the Semantic Web. According to the guy who invented the current world wide web, this is the future of the internet. Basically, it’s a new form of markup that allows machines to really understand what’s on the web.

Imagine, if we has semantically accessible web sites, your computer would know if a link is part of the main nav or part of the body. It would know the name of every form field. The computer would know what’s inside a picture. In the short term, this means your screen reader could actually be useful. In the long run, it means you could give your computer a command like “order me a medium pepperoni pizza from Pizza Hut” and it would do everything for you (like the Star Trek computer!)

Bottom Line

Those of us who are shaping the direction of the web need to support accessibility. My feeling is that making the web more accessible for the disabled will ultimately make it more accessible for everyone.

Web Prototyping - Tools and Techniques

Tuesday, September 25th, 2007

I’ve been thinking about picking up some additional skills, specifically around rich prototyping. So I’ve done a little reading, and I have a short list of options for creating Web 2.0 interactions in prototypes. Fair warning up front… I have only questions about these tools, no answers. If you have answers, please share!

First, there’s a new resource called Protoscript that claims it can help me easily add AJAX interactions to my websites. It looks fairly promising, but my immediate question is: why is this only for prototyping? If I’m adding rich interactions to my website, why can’t I go live using the same scripts?

From what I can tell, Protoscript isn’t substantially different from script.aculo.us, except script.aculo.us looks to be better documented.

But my feeling is that, in terms of time commitment, diving into all those javascripts is only one step down from learning Ruby on Rails.

I’ll confess to something up front… I can code, but I don’t like to. There’s nothing worse, for me, than trying to express an interaction I want, but being unable to because I can’t get some dumb script to work. That’s like asking a graphic designer to figure out how to get CSS floats to work at the same time as he’s coming up with a design concept. You don’t want to be struggling with a language that has its own quirks while you’re still working out the ideas in your head. So I know that the instant I have trouble getting a technology to work, I’ll go back to my trusty old copy of Visio, or OmniGraffle, or a paper and pencil.

This leads me to a product from Adobe called the Spry framework. Like Protoscript and script.aculo.us, it’s a javascript library that you can plug into existing web pages. However, it sounds like Adobe has gone to great lengths to simplify the process. They claim that using Spry is akin to using HTML, so you shouldn’t have to learn a lot of new tags. This sounds promising, but I’m still expecting something better. I’m expecting deep integration with Dreamweaver, so I can just click a few buttons and set a few options to add rich interactions to my web pages. When Adobe builds that, I’ll be on board.

In the mean time, I’ll probably stick with low fidelity methods of showing rich interactions (e.g. sketches, verbal descriptions, and a little hand waving). I wish I could find a link to a PDF I read recently. I’m almost positive the article was from Adaptive Path, and specifically from Jesse James Garrett. The document describes three non-rich methods for expressing rich interactions. My favorite of the three methods was just a sequence of static wireframes. So, for example, if you’re showing drag-and-drop behavior, you would have three frames — one for the object being grabbed, one to show it being dragged, and one to show the object dropped. I can wireframe that up in a minute, rather than taking an hour to fiddle with scripts.

But, admittedly, non-rich prototypes of rich applications fall a little flat when it comes time to demo. Which is why I’m still on the lookout for a tool that will fit my needs. If Adobe doesn’t rush to fill this need with Dreamweaver, I’m sure Microsoft will with Expression Web. (Hint, hint, Adobe!)

Introducing Keiko

Monday, September 24th, 2007

I’d like to introduce you all to my puppy, Keiko (pronounced kay-co). Sarah and I are pretty sure she’s some kind of Border Collie mix, although there’s a chance she is a McNab, which is specific kind of Border Collie mix. She has loads of energy and a great personality. Here are some fun pictures we took recently:

Keiko and I Are Pals

Keiko is my little pal.

Keiko Has Me By the Neck

Keiko has me by the neck.

Keiko and I look alike

Do you see the family resemblance?

Observations on Customer Experience

Saturday, September 22nd, 2007

Recently, I’ve observed some interesting customer service behavior from Apple and Google that suggests an approach to customer service I would not have thought about on my own. Consider these two cases:

Case #1 - Google Cancels Its Video Download Service

On August 10, I received an email from Google informing me that they decided to cancel their video download service. Since Google’s video download service works by streaming videos to you every time you watch them (unlike Apple’s iTunes store, in which you download videos permanently), canceling the service means the videos I bought will not be playable.

To make up for canceling the service, Google gave me (and everyone else who bought videos) a credit for the cost of the videos that I can use at any Google Checkout store. To me, this seemed okay. I buy a lot of stuff online, so I was pretty sure I could find something I wanted. Even so, I never feel great about the “store credit” approach to refunds.

Lo and behold, on August 21 (11 days later), Google sent me another email saying that they’re sorry for only giving store credit, and they’re now also refunding everyone’s money. This made me very happy! I got $15 to spend online, and I got $15 refunded to my credit card. (And, to be honest, I never watched those videos much anyway.)

Case #2 - Apple Reduces the iPhone Price by $200

Only 2 months after the release of the iPhone, Apple slashed the price of the 8 GB model from $599 to $399, ostensibly to make the phone more appealing for holiday buyers. At the time, Steve Jobs basically just said “too bad” to all the early adopters. The technology world changes quickly, and prices change too. There was an outcry of angry bloggers.

A day later, Apply announced that it would be offering a $100 Apple Store credit to everyone who bought an iPhone before the price drop. Generally, people still aren’t thrilled, but they feel better.

Conclusion

Perhaps the lesson to be drawn from all this is that, in customer service, it’s sometimes better to disappoint, and then over-compensate, than it is to simply satisfy the customer. Satisfactory service is good, but it generally goes unnoticed. In contrast, bad service that gets quickly remedied is very memorable. Honestly, Google did a much better job of this than Apple did. The disappointment (store credit) was more mild and the over-compensation (full refund) was much more satisfying.

But consider what would have happened if Apple announced the $100 rebate at the same time as the price drop. There still would have been an outcry of unfairness, but Apple would have had nothing left to offer. By letting people complain first, and then satisfying them, they were able to squelch most of the bad sentiment.

In college, I had a marketing professor with a background in hotel guest services (I think he worked with Four Seasons). I remember him once explaining that the reason Four Seasons has a great reputation is not necessarily for the service, although it’s good, but for the way they over-compensate when there is a problem. If you do complain about the quality of the room or the service, they have a whole system that springs into place to shower you with special services and treatment intended to overcome any bad impression you might have gotten.

I’m going to try to remember this “disappoint then over-compensate” technique. Seems like it might be useful. I don’t suppose this is already documented somewhere in research on customer service? Anyone know for sure?

Why I Don’t Like Knockoffs

Tuesday, September 18th, 2007

A friend who recently read my post about the Nokia iPhone knockoff referred me to another blog where Gong Szeto explains why he likes knockoffs. Gong is talking primarily about the fashion industry, but most of his points could apply to any industry. Basically, he argues that copying is good for innovation because it forces designers to keep innovating. Also, he says it encourages what I will call “deep innovation” — inventing new fabrics, new distribution methods, new categories of clothing.

I can’t disagree with much of what Gong says, but I still disagree with his ultimate conclusion. Although its true that copy cats force established companies to keep innovating, it still feels very wrong to think that the company who spends millions of dollars in R&D for a new product can ultimately lose to a company who just clones that innovation. Of course the copy cat can sell their product for less… they didn’t have to do any of the hard thinking! And by buying from the copy cat, you’re rewarding their laziness.

Think of it this way… you either believe that companies who innovate should be rewarded with success, or you believe that companies who innovate should ultimately be killed by those who are good at copying. Personally, I’m willing to pay a little more to reward a company for innovating, and to encourage them to keep going. Though I’m willing to admit that probably puts me in the minority.

I don’t have the knowledge to do a thorough history lesson on this subject, but I know that people have made basically this same complaint against Microsoft for years. Microsoft finds something successful (e.g. graphical user interfaces, desktop publishing tools, web browsers) and creates a cheap copy. The cheap copy undercuts their competition and forces them out of the market. Then that market stagnates.

Although it sounds good and Darwinian to say that the true innovators will always survive, that’s not really true if they can’t make money from their innovations. But I will agree with Gong that I don’t care for those protracted copyright battles. Companies shouldn’t need the government to protect their intellectual property. Consumers should just buy goods from the companies they want to support.

Google Social - A Thought Experiment with Clickable Wireframes

Monday, September 17th, 2007

I read an interesting article today. The Creative Director at frog design, Robert Fabricant, critiqued the iPhone for already showing it’s age. He picked out five “mistakes” in the iPhone, I think primarily pointing out that Apple wasn’t able to foresee some user interface and technical developments that have occurred since they started designing the iPhone who knows how long ago.

Some of his points don’t interest me too much, like when he says the TV icon for YouTube and the camera shutter animation are outdated. I would tend to think those were conscious design decisions that Apple made to give the device a warmer, more human feeling. But one of Robert’s points really hit home with me. He pointed out that the iPhone forces you to view your contacts as a feature of the phone tool. It would have made more sense, he argues, to let users see a list of contacts, and then choose any of the available methods to communicate with that person. For example, you would click on the name of a friend, and then choose to call, text, or email that person.

I’ve been thinking along the same lines for a new web application. In my head, I’ve been calling this application “Google Social” but it’s important that I point out that this is in no way affiliated with Google. I’m using their name as a conceit, because when I dream of web apps I dream in Google (and sometimes 37 Signals).

So what is Google Social? It’s a web tool that shows you a list of all your friends who are on the web. You click on a friend to view the social networks that they belong to (e.g. Facebook, LinkedIn, YouTube, etc.), and then you see a list of that person’s recent activity on that social network. It’s nothing terribly new — you can probably do most of this today through RSS and email notifications.

The important thing to me is the change in mindset. I’m no longer thinking “I’d better check LinkedIn to see what my contacts are doing.” and “Now I need to log in to Xanga to check my friends’ blogs.” and “Now I need to go to my friends’ Flickr accounts to see if they’ve posted new photos.” Instead, I go to Google Social and think “I wonder what Chris has been doing.” It’s a human-centered approach to social networks, instead of a platform-centered approach.

This web application interests me so much that I couldn’t help but design it in wireframes. So I invite you to look at Google Social, as presented in beta clickable wireframes.

These wireframes aren’t great, but I hope they communicate what I was thinking. You’ll notice some red dots around the pages. Not everything is clickable yet, so you’re mostly limited to what has a red dot by it. It’s like a Choose Your Own Adventure wireframe.

There are two ways to add friends in Google Social. First, you can search for people who have already created Google Social accounts. When you find someone, you can invite them to be your friend (very similar to LinkedIn). If they accept your invitation, then that person gets added to your friends list. Alternately, you can create a friend from scratch. This involves entering a fair bit of information. For example, if you have a friend who is a user on YouTube, you would need to enter her YouTube user name. Then Google Social monitors YouTube for any activity by that user and pulls it in for you to see. I’m hoping a lot of this kind of activity can be handled by RSS feeds that social networks are already putting out.

I know some things are still missing. I haven’t designed the sign up process yet, but it will be very important. It’s also missing a notification center for viewing invitations you have sent and received. It’s probably also missing a lot of other important stuff. But, hey, it’s only beta!

Please let me know what you think. Is this a compelling way to keep track of your friends online? What would make it better? Do you see any interaction problems?

Russian Military Builds World’s Most Powerful Bomb

Wednesday, September 12th, 2007

This news article definitely caused me to pause for a minute:
Russia tests ‘dad of all bombs’ (CNN)

Apparently, the U.S. used to be in command of the world’s most powerful non-nuclear bomb. It is known as the “mother of all bombs”, a nickname derived from it’s official name “massive ordinance air blast”. (There’s a “your mom” joke waiting to happen.)

However, Russia has now successfully tested a non-nuclear bomb that is four times more powerful, and they’re calling it the “dad of all bombs”. Here are some excerpts from how the article describes the Russian bomb: “blast radius is 990 feet, twice as big as that of the U.S. design… [it] explodes in an intense fireball combined with a devastating blast… a terrifying nuclear bomb-like mushroom cloud and wreaks destruction through a massive shock wave created by the air burst and high temperature.”

Yet Col.-Gen. Alexander Rukshin, a deputy chief of the Russian military’s General Staff, says “Unlike a nuclear weapon, the bomb doesn’t hurt the environment…”

What?! The 990 foot explosion of fire that creates a mushroom cloud and causes massive shock waves doesn’t hurt the environment? I’d like to see the environment after that bomb hits. I’m imagining that this is some magical bomb that only destroys tanks and buildings, but leaves everyone inside and all the vegetation around them intact. Now that would be a sweet bomb!

I’m sure Rukshin intended to say that it doesn’t cause the radiation and nuclear fallout associated with nuclear bombs, but to say that it doesn’t hurt the environment is just silly. Silly Rukshin.