June 30th, 2008

usability: Verification of Challenge Question and Challenge Answer

A website I use regularly requires me to verify my contact information annually. Today, I noticed that the last question on the verification page is for my “Challenge Question” — the question/answer combo that I would need to use if ever lost my password.

Here’s a small screenshot showing this question (click it to see a larger screenshot with more context):
What was the name of your first pet? xxxxxxxxxxxxxxxxxx

As you can see, it shows the question that I chose to use, but for the answer it shows “xxxxxxxxxxxxxxxxxx”, and says “Your challenge answer has been hidden for security reasons.” Then, it asks me to check a box saying “Yes, the information above is correct.” How can I confirm that my challenge answer is correct, if I can’t see it? The number of x’s does not even correspond to the number of characters in my first pet’s name.

While I appreciate that they do not display this relatively-sensitive information (since it’s almost like a password), I feel like it’s silly to ask me to verify something that I can’t see. I refused to accept that the answer was correct, and went ahead and selected/entered a new Challenge Question/Challenge Answer combination.

February 22nd, 2008

USABILITY: DirecTV’s puzzling bill viewing policies

I got an email from DirecTV recently, telling me that prices are going up. They linked to a PDF with new pricing info. It looks like the price of just about every subscription plan/feature they offer is going up by $2-5/month. It was not customized for me, though–it was very generic.

To find out how much my own rates were going to increase, I had to login to my account on directv.com. When I got there, though, I had a very hard time figuring out exactly what my current plan is, and how much I’m currently paying for it.

See, the problem is that I signed up with my bank to receive e-bills from most of my billers, including DirecTV. For some reason, because I usually like to view and pay all of my bills from one central location (my bank’s website), DirecTV will not allow me to view any of my bills–past or present–on directv.com.Here’s what I got when I tried to view a bill (to see which subcription package/rate plan I’ve been on for the past few years):

Our records show you are signed up to view your DIRECTV bill through your financial institution, or another bill paying web site, and not through directv.com. Because the DIRECTV online bill view service allows you to view your bill at only one web site, you are unable to view your bill at directv.com.


To view your bill here instead, you must first discontinue the online bill view you set up at your other bill paying website, by following the instructions they provide. Once de-enrolled from their bill view feature, it may take up to 30 days before you can view your bill statement at directv.com.


In the meantime, you still have access to all other directv.com account functions, including making an immediate, one-time check or credit card payment. Thank you.To ensure the privacy of your personal information, this message will no longer appear once you close the pop-up browser window.

I don’t understand the point of preventing me from viewing my bill from multiple locations. I encountered this same odd behavior with Verizon in the past. Does anybody know why they would do this? I could understand limiting users to having monthly e-bills sent to only one bank. But I think you should always be able to view your account information, including at least the most recent bill, on the company’s site, itself.

To make matters worse, it can take a month or two to get them to start sending e-bills to a bank, and then it can take a month to stop them from sending e-bills to that bank. That huge delay puzzles me, as well. Online customer account management and B2B communication should be instantaneous. 30 days is worse than snail mail! Couldn’t DirecTV print out my bill, send it to my bank via horseback mail carrier, and have someone at my bank type the bill into their system in less than 30 days? Ugh!

Anyways, my rate increase is about 5.5%. Oh well, not like I have much choice. It’s Comcast or DirecTV, here, and I’m happy with my DirecTV DVR that I got before their agreement with Tivo ended. I tried Comcast cable for a while, last year, but I couldn’t deal with the horrible Scientific Atlanta DVR that came with that.

**UPDATE BEFORE POSTING**Okay, I’ve been meaning to blog about this for several weeks, now. I logged into my account at directv.com, a few minutes ago, and I was able to see the name and price of my subscription plan right at the top of the main Account Details page, in a section called “Activity Since Last Bill.”

DirecTV: Activity Since Last Bill

Click the above link to see the expanded Activity Since Last Bill section from my directv.com Account Details page.

I’m not sure if I just didn’t notice/find this link when I was looking for it, a few weeks ago, or if they’ve since made some changes to their website. I think I’m seeing a lot more DHTML/AJAX going on, so I’m thinking they made some UI improvements recently.

Unfortunately, the “View Bills” link still takes me to that page quoted above, where they tell me that I can’t view my bill on their site since I signed up to be able to receive e-bills on my bank’s site. Hmpf.

February 18th, 2008

DMV: wait times misleading, vision test confusing

I had to go to the Virginia Department of Motor Vehicles (DMV) last week, for the first time in several years. Their web site is very useful and usable, so I’ve done most of my DMV transactions online in recent years. Things like vehicle registration renewal, change of address, driver’s license renewal, etc. only take a few minutes on the website.

Apparently every other 5-year driver’s license renewal cycle, you have to get a vision screening, though, so you have to go in to a physical DMV location. This year was one of those years, for me.

Before going in, I looked up my local DMV location (Manassas) on their Office Locations page, to see how long the wait time would be. The site shows realtime stats for your closest location and two or three other nearby locations. At 11:41am, the site said 9 minutes and 12 seconds, which seemed reasonable enough.

So, I headed down there. The wait ended up being a bit longer than that–35 minutes or so to get called to a window (just the first of 3 things I had to wait for).

When I got to the window, I had to take my vision test, and apparently I did not understand how to use the simple device they use to perform that:

Stereo Optical Optec 1000 Vision Tester

I was supposed to put my forehead on the pad, look into the machine, and read the first line of letters. But I could not find a “line of letters”! Not a first one, not a second one, none.

I could see a tiny ‘F’, and what I believe was a tiny ‘B’ or something, but depending on how I looked at it, the B was sometimes below the ‘F’, sometimes to the right, and sometimes below and to the right. In any case, these definitely did not constitute a “line of letters”, and I could barely see them.

I tried numerous times to step back, re-set my forehead on the pad, and look into the device, but I kept seeing the same thing. This went on for a minute or two, and I was freaking out by this time, thinking I was going to be unable to renew my license because the machine says I’m blind.

I asked if I could try a vision test machine at a different window, but she said this one should be working. She tried looking into it, to make sure, and she somehow saw lines of letters. She suggested I read the second line instead of the first. I maintained that I could not see any lines of letters, let alone a “first” or “second” line.

Eventually, I bent down and looked into it from a different angle (I looked upwards instead of straight down the barrel of the machine), and saw a whole chart full of large, clear letters. I read the first line, with no trouble at all, and we both breathed a sigh of relief.

In hindsight, it might have helped if she (or I) had angled the machine upwards towards me, since the thing that finally worked for me was bending down AND looking upwards. Not once did she suggest changing the orientation of the machine to fit me, though, and I didn’t know if/how much they actually move, so I never thought to ask.

After the vision test, I paid the renewal fee, then sat down and waited to have a new picture taken. I didn’t ask to get a new picture taken–I kind of liked my old picture. It’s from 8-9 years ago, when my hair was the longest it’s ever been. It was a conversation piece, if nothing else. Here it is, feel free to point and laugh and call me a dirty hippie (notice the Phish t-shirt, too)! I’ll post the new picture eventually, whenever I have a reason to scan my new license.

Dave’s old driver’s license photo

It was about a 10 minute wait to get my picture taken, then another 5 minutes waiting for the new license to be printed. So, all told about 50 minutes of waiting. I’m glad I won’t have to do that again for 10 years.

After I got home, I checked the website again, expecting to see much higher wait times (since I’d just experienced them first-hand). The site did show a longer average wait time: 17 minutes and 32 seconds, but that’s still way less than what I actually sat through.

Average Wait Times at 11:41:50 AM:
Manassas 9 Minutes and 12 Seconds
Actual Wait Time at 12:04 PM:
Manassas About 35 minutes
Average Wait Times at 1:22:05 PM:
Manassas 17 Minutes and 32 Seconds

Summary:

There are 2 main points I hope that I’ve conveyed with this blog entry:

  1. Although the real-time average wait time information on the Virginia DMV website seems pretty cool, and may be useful as a *very* rough indication of how busy they are, there is a huge margin of error. I don’t know what exactly they’re averaging to come up with those numbers, but my actual wait time was at least 3 times as long as the website showed.
  2. When looking into the vision screening device, look upwards a little bit, rather than straight down the barrel of the machine. Otherwise, you’ll look like a moron, and waste time, which means longer wait times for everyone else.

January 24th, 2008

Form usability problem on myCIGNA Request ID Card page

Ugh! I just wanted to request some replacement health insurance ID cards for my family, this morning, but the web form for that has issues. :(

First of all, they’ve got that annoying “feature” where it automatically tabs to the next field when you finish entering characters in the current field. This is something I’ve seen many times, over the years, particularly for phone number entry. In this form, it’s on all the Date of Birth fields.

For example, to enter the fictitious date ‘12/12/1234′, I only have to type ‘12121234′. After I enter the ‘12′ in the month field, it automatically advances to the day field. After I enter ‘12′ in the day field, it takes me to the year field, and after I enter ‘1234′ in the year field, it takes me to the next form input.

This behavior is mildly amusing, as long as I don’t make a mistake. If I need to go back and fix something, though, I have to fight with it because while I’m trying to backspace or use my left/right arrow keys to move the cursor to the digit I need to fix, the automatic tab “feature” is trying to advance me to the next form field.

Here’s a video showing me trying to correct a mistake in the year field:

Even though I know that the automatic tab “feature” is active, I still find myself trying to use arrow keys to get to the right position in the form field. I also usually press shift-tab to go up to the previous form field, but on this form, the automatic tab advances me out of the field as soon as I get back to it. How annoying!Now, in case you didn’t notice, there’s another problem with those Date of Birth form fields. Here’s a screenshot of the Employee Information section of the Request ID Card form:
myCIGNA Request ID Card form - Employee Information section

In the screenshot, if you look at the Employee Date of Birth fields, you can see where I’ve entered that fictitious date I previously spoke of, ‘12/12/1234′. You’d never know it, from looking at the page, though. It looks like I only entered ‘1/1/123′. I figured it had to be either a font size problem, or a form input size problem. When I did a ‘View Source’ on the page, I saw that it’s the latter:

<td align="left"><font color="#ff0000">* </font>Employee Date of Birth:</td>
<td><input name="EDOB_MM" size=”1″ tabindex=”14″ onKeyUp=”AutomaticTab(this.value,eval(’document.idcard.EDOB_DD’),2)” maxlength=”2″ onFocus=”window.status=’Please enter the month of birth.’;select(this)”> /
<input name=”EDOB_DD” size=”1″ tabindex=”15″ onKeyUp=”AutomaticTab(this.value,eval(’document.idcard.EDOB_YYYY’),2)” maxlength=”2″ onFocus=”window.status=’Please enter the date of birth.’;select(this)”> /
<input name=”EDOB_YYYY” size=”3″ tabindex=”16″ onKeyUp=”AutomaticTab(this.value,eval(’document.idcard.Member_first_name1′),4)” maxlength=”4″ onFocus=”window.status=’Please enter the year of birth.’;select(this)”><input type=”hidden” name=”EDOB” id=”EDOB” value=”"> mm / dd / yyyy</td>

The maxlength attributes are correct, but size attributes, which control how big the viewable text input is on the page, are all too small. Why the hell would someone make a form that hides one character from each date field?

You can also see the javascript calls to the annoying AutomaticTab “feature” in that code, above. Here’s the source for their AutomaticTab function:

function AutomaticTab(CurrentLocation,
    Destination,CurrentFieldLength)
{
var fieldlength;
fieldlength = CurrentLocation.length;
if( fieldlength == CurrentFieldLength)
Destination.focus();
}

Evil. Pure evil. Seriously, I can hit tab my damn self! I don’t need this dumb javascript to help me get from one field to another, especially when I need to use the cursor keys to move left/right within the fields, because not all the digits can be seen on these fields, thanks to the size/maxlength mismatch.

I’d like to think they only screwed up this one set of form fields on this page. Unfortunately, when I tried request cards for 4 family members, I ran into it again:
myCIGNA Request ID Card form - family members to request cards for

Yes, 4 more sets of date fields with annoying AutomaticTab calls and size/maxlength mismatches. *sigh*

These things were annoying, but did not stop me from completing the form. However, when I tried to submit it, I got this:
Please be sure the YEAR of birth is a 4 digit valid century year.

It focused and selected the Employee Date of Birth : Year field, but that looked fine (as far as I could tell, since only 3 digits were visible):
myCIGNA Request ID Card form - Employee Date of Birth with alleged invalid year

Since I knew the AutomaticTab function would get in the way if I tried to use the cursor keys within the year field, to verify all 4 digits, I disabled it by entering this in my address bar:
javascript:void(AutomaticTab=function(){})

Then, I was able to determine that the year field was fine. It contained ‘1234′, which is what I intended (for the purpose of this blog entry. I entered my real DOB info originally).

So, I looked at the page’s source code again, and found the place where that error message came from. It was in a function called “check_date”. Since I knew my date was valid, I disabled the date validation by putting this in my location bar:
javascript:void(check_date=function(){return true;})

This allowed me to submit the form. This is also a good example of why it’s important to not rely solely on client-side validation (javascript) when writing web applications. Javascript validation code can be viewed, modified, and even disabled. I could have submitted any year value I wanted, since I disabled their javascript date validation function. Hopefully, they have server-side validation as well, but I did not care to find out. I’m not interested in breaking my health insurance provider’s website (they’re pretty good at that, themselves!).

July 11th, 2007

Reporting website usability flaws

I’m becoming increasingly aware of usability flaws, as time goes by. I’m a professional web application developer, and tend to work on the presentation layer most of the time, so it makes sense that I pay close attention to user interfaces. I wouldn’t call myself an expert on the subject, but it is something I’m very interested in/passionate about.

But, it’s becoming more of a curse, kind of like the way typos jump out and punch me in the nose, whenever I encounter them. Actually, it’s very much like that. When I run across confusing instructions, misleading button labels, dead ends (pages that don’t include any navigation controls to get back to where I need to be), or any other UI elements that don’t make sense to me, I want to fix them!

Unlike typos, though, I feel like I have a better chance of enacting a change by reporting usability flaws, so I’d like to start emailing companies’ customer service/tech support teams about this kind of stuff.

This requires several steps, though:

  1. track down the correct people to contact (may or may not be trivial… depends on the site)
  2. write up descriptions of the issues, in a way that the recipients will be able to understand (optionally may involve screenshots, URLs, steps to reproduce, etc)
  3. suggest potential solutions/improvements (optional)

As this seems like an awful lot of unpaid time/labor, I think I’m going to start by posting some of this stuff here, on this blog, so I will have it handy if/when I’m ready to deal with the companies directly. That way, I can just post a few quick  notes/screenshots immediately, and can deal with some of the details later, if I feel like dealing with it. Unless it’s something I encounter repeatedly, or something that’s really easy to explain, I’m not sure how often I’ll actually follow through. But many companies keep tabs on the blogosphere, so there’s a slight chance they’ll run across it without me having to actually tell them directly. That would be ideal!

An added benefit of posting these things here is that other people (like you!) will be able to comment on them, and perform a bit of sanity checking for me. You can tell me if I’m overreacting, or missing something obvious. Or, you can chime in and say “I’ve run into that, too, and it bugs the heck out of me!” Or maybe it’s a common gripe, and you know of a GreaseMonkey script that addresses the problem. In any case, comments are always welcome!