Essays

9 months ago

Wednesday, October 17, 2007

I’ve Reached My Limit: Approaches to Character Limit Cutoffs

In real life, it’s important (and polite) not to obtrusively interrupt someone when they’re in the middle of something, and, of course, this carries over to website usability as well. So, how should we enforce form field character limits without disrupting what is already a potentially demanding process? I can think of two main use cases, distinguished by the length of the form one is filling out.

When filling in a small field like the zip code field featured below, users should be cut off at the character limit. It prevents error preemptively, before the form has been submitted. In most cases, users know why they can’t go any further because of the nature of the input (i.e., a phone number, credit card VIN, or age). If it’s unclear, some explanatory text will do the trick:

Zip Code Field Done Correctly

With larger text fields> (<textarea>s) we have to be more forgiving. Users can’t keep count of characters in their head (if they even know what a ‘character’ is), and it’s relatively likely that they’ll be looking not at the A large textbox — Twitter’s ‘What are you doing?’ fieldscreen but at the keyboard, or at another window, or even at notes on their desk while typing. In this case, it’s dangerous to just stop accepting input. They may continue typing without actually accomplishing anything and not realize it until they’ve wasted time typing something they may not remember.

Thankfully, there are two real-world examples that I think demonstrate exactly how to get character limit enforcement wrong and how to do it right.

Update: Since publishing this article, Twitter has greatly improved their approach. We love it!

Twitter: “No — No Further!”

Type more than 140 letters into micro-blogging platform Twitter’s What are you doing? box, and you’ll be stopped without warning. If you’re not paying close attention to the box, you could go on typing without knowing what’s happened. If you’ve something longer than 140 characters to say, this quickly becomes frustrating. Because the field is frozen as soon as you hit the limit, any mid-sentence editing you want to do to whittle down your little tweet becomes an exercise in frustration. It can only be destructive, because you can only add or move words within the 140-character limit — any potential revision would have to be preceded by the deletion of something you’ve already typed and may not want to lose.

There is a nice numerical counter of the characters remaining, even nicer because its visibility — and, therefore, our awareness of the limit — is increased as you draw closer to zero.

Twitter character limit countdown

But unfortunately it’s not enough to allay the problem. Okay, so I can see the words running out in front of my face, but I’ve already formed what I’m going to say in my head. Making the message fit their size constraint mid-thought isn’t my primary objective; I just want to type it all out and pare it down after. I respect the brevity inherent to Twitter, but it’s not something I’m really used to yet, so let me reorganize my words if I need to.

And what if you type your tweet somewhere else and paste it in to the Twitter website? Well, if it’s over 140 characters, you’ll have to guess how many you need to delete, because there’s no telling by how many characters you’ve gone over the limit.

Pasted-in Tweet exceeds limit. But by how many characters?

And what’s more, you lose the end of the paste — what if you want to remove something that was in the middle?

How could this be handled more smoothly? Let’s see.

LinkedIn: A Polite Reminder

If you type too much in the contact form of professional networking site LinkedIn, you’ve much more leeway:

LinkedIn's polite character-overage warning.

Instead of letting you proceed no further, LinkedIn simply tells you by how many characters you’ve exceeded the limit, allow you to easily pare down your message.

Update: It would seem that, since I started preparing this blog post and took the following screenshots, the LinkedIn contact form interface has changed. It now has no character limit, but retains its small size. Regardless of this alteration — a fine one, by the way — LinkedIn’s previous approach to handling character overage is a great model.

I think Twitter’s character counter should reflect just how far you’ve typed past the limit and not impose a character limit on the text box itself, much like LinkedIn used to do.

One area where I believe both approaches succeed is the size of the input area. Both LinkedIn and Twitter feature small text boxes, tailored to the exact amount of words they should (theoretically) contain. At first it may seem like an annoyance, but it’s a fantastic way to encourage concise writing and remind users of the limits.

Acknowledgments

This post was at least partially inspired by the work of usability guru Luke Wroblewski, whose presentation Best Practices for Form Design (and upcoming book, no doubt) contain guidelines very similar to these (see slides 105 and 106 in particular).

Trackback Comment

I agree with this, but I can go one further. Every character beyond the allowed limit should be red, so you have a good visual indication of what you need to trim.

Mike: That’s a really awesome idea. Thanks for the suggestion. It would also be nice if the form field expanded with the input text so you weren’t scrolling two lines at a time, unable to visualize the message’s context.

Twitteriffic, I’ve just noticed, behaves just like Twitter. Dang.

I agree and Mike Lee’s suggestion is also neat although red might just be a tad too aggressive, gray maybe?

Great heads up! I think the LinkedIn implementation looks good. You made a good point about having the text boxes small to encourage small writing, and then expanding them would just make it even better! FYI Facebook have a nice implementation of expanding text boxes.

At first, just glancing thorough the pictures, I thought those cute red tooltips were part of the original interface. I think they’d be a quite nice addition!

Well by the way, Twitter changed their interface. You can go minus now, try it.

To be honest, I find the two character state field a rather poor solution. I’d either use a dropdown (there’s some 50 choices), or allow for a free-text field (allowing IL, Ill. Illinois, and possibly even Illinios or Illniois).

Thanks for the comment, Jeronimo. It got me thinking. Having considered your suggestion, though, I don’t think the two-character field for a US state is a poor solution at all. Here’s why:

A dropdown isn’t ideal at all — fifty states is a lot of options, especially if I’m unfortunate enough to live in Wyoming (nothing against Wyoming). Even if I live in Arkansas, though, and I’m trying to complete the form quickly, I have to remember whether I can mouse-scroll through dropdowns, or if have to press an arrow key, or maybe I can start typing “Ar”? And when I’ve selected a state, do I hit Tab or Enter or Space? I don’t think I’m alone in not being totally confident about the way my keyboard interacts with dropdown fields in every situation. If I don’t know, I’m going to take my hands off the keyboard and default back to the mouse or trackpad, and there’s a few more wasted seconds. Just seconds, sure, but I’ll get to why that’s important soon.

As for the “free text” field, that’s not a good alternative either. The context of the form is that you’re filling out your shipping or billing address. With that as a given, consider the following. For one thing, the chances are incredibly good that you’ll know the two-letter abbreviation of the state you live (or, for an edge case, work) in. Second, it’s very rare that one would address an envelope or any other address-needing form with the full state name. Third, I do believe that people might have trouble spelling “Massachusetts” or “Illinois” even though they live there, and one thing you never want to do is introduce the possibility of hesitation for the user. If they see a field labeled ‘State’ and then a medium-length text box, they might not know what you’re looking for. If you’re selling something, moments of second thought like these are all that stands between making a sale and your user deciding, “You know, I probably shouldn’t spend the money anyway,” and abandoning the process entirely.

From a developer’s perspective, accepting free input means that the processing logic on the server now needs to be extra complicated in order to parse a potentially unlimited amount of variations in state name representations. Implementation difficulty certainly shouldn’t direct usability decisions, but in this case it would be a lot of extra work for no benefit.

All of that said, the one improvement I would make to the example screenshot I used would be to make it clear that the “Find state abbreviation” link was a popup. I would be reluctant to click it otherwise, for fear of losing my form input thus far.

Remember that no usability problem has an absolutely optimal solution — as with, well, anything in the world, every decision is a tradeoff between consequences. In this case, I think the two-character state field maximizes the usability of the form — it may be minor loss from one perspective, but the trade-in for a better experience overall is an easy choice to make.

Friday, August 8, 2008
01:08am
Close
E-mail It