TPR9: Evolution of Form Design

Alex Kingman 
Lead Web Designer/Developer, Purdue University


The audio for this podcast can be downloaded at


Alex Kingman: We're going to talk about the evolution of form design today. So real quick, let me tell you what I mean by 'form design'. And we're talking about Web forms, OK? So in this basic form, an HTML form element, an input, anytime you're asking the user to input data, that's what we're talking about here. It can be complicated, a lot of pages, different inputs, it can be just a simple search or a status update, 'How you're doing?' That's what we're talking about today.

How many of you have built a form... designed a form? Awesome. Favorite part of your job?

[Laughter]

Alex Kingman: OK. Well, that's actually what I want to talk about today: the kind of stigma behind Web forms and how we think about them.

My name is Alex. I'm from Purdue. And when you talk about evolution, it's kind of easy to talk about the natural progression of things. Things getting better over time. And this is caused by a lot of different things.

In our industry, we recognize things like technology. Technology gets better, things get faster, devices get smaller, screens get bigger.

 01:04

And also we're dealing with different form factors. Technology is changing this as well. And if we step back for just a second, Apple is a really good example for how style also makes things evolve... so the design, the aesthetics of objects.

And also, there's a culture that evolves as well, so these form factors are changing. We're using these things on different places, on the couch, on the bus. There's this whole culture that evolves with it.

When you're talking about natural progression, you have technology, style and culture. But there's one other really important thing I think we fail to think about that causes evolution, and that's the user's expectations.

So let this sink in for a second. This is really important.

The Web's changing a lot. Especially in the last five years, we've got social media, microblogging, all sorts of little widgets that we're playing with. It's changing the way we use the Web.

 02:01

As that's happening, the user's expectations are changing. They're seeing the way the Web works and how it's changing, how things are getting easier, faster. And with that, there's an interesting thing that's happening. They start to expect that out of our designs.

And if you were in the HTML5 presentation just a second ago, you talk about geolocation, right? Really cool stuff. When we're using mobile devices, it just knows where we are. We don't have to type out our address anymore. This is an expectation shift. We have things that help us fill out forms. Auto-complete mechanisms.

So even a more recent example... Anybody recognize what this is? Google, right. They just changed to the instant search. So you start typing, and then boom, things show up immediately. Really cool, right? Gimmicky? Maybe, but cool. But there's a really interesting thing happening here. Oh, and as you type in more, more things begin to happen, more things show up.

There's a really interesting thing happening here, though. This is a personal example. When I first saw this, I thought, 'This is a total gimmick. Did Google really not have better time on their hands to do something else? Really?'

 03:10

But as I was using it and using it... you guys are Web developers and designers, you spend a lot of time searching for stuff, right? Your search results, it is kind of faster. It happens quickly because you don't have to make that decision and submit. You can see the search results immediately. And Google is also finding this in their statistics that they're looking at. Search results are coming faster and more people are doing more searches in a smaller amount of time.

So this begs an interesting question: are users' expectations shifting so much that in the future they'll go to Yahoo, they'll type in their search query, and then... 'What went out? Is it broken?' I don't know. But it begs that kind of a question. That's what I'm talking about today when I talk about user expectation. It's changing.

And as our role as developers and designers, we need to keep this in mind. We need to make sure that our expectations for what we do, our code, our development, that it's in alignment with the users' expectations. And not only that, it could be a little bit greater. Let's push the curve here. We need to create new expectations. So it's really important.

 04:19

The problem in form design, and especially in higher education, we have data all over the place. It's ridiculous. We have registration forms, student evaluations... There's forms everywhere.

And the problem is that when we get projects, we get really amped up on the project. We want to make this really slick, really well-designed. We want to think about our users. We want to think about the functionality that this thing is going to do. What are all the things in the back end that are going to drive this?

But when it comes time to actually get the data from the user, we just think it's good enough to throw up a form. I mean, we just want the data, right? Well, that's the problem. They're an afterthought. They're typically just OK.

 05:03

And the problem with this is, when our users use the Web, they're typically consuming. They're reading, they're getting information, they're just chugging through pages and consuming.

But when they get to a form, a really interesting thing happens. It changes. It's almost opposite. All of a sudden, this machine, this terminal, this computer that they're sitting there interfacing with all of a sudden stops and asks them, 'Hey, how are you doing? What are you thinking about? Tell me about yourself.' This is a really interesting part of the process.

Can you guys read the black? I apologize. You can? OK. Awesome.

So forms let users tell us how they think or what they're feeling. There's an opportunity here for human interaction. And this is where I'm talking about meeting expectations. Sites are beginning to do this. Users are expecting it.

 06:01

When we talk about evolution, we've got to talk about cavemen. And I tried to find "Encino Man", but I apologize, I couldn't find it and I'm out of time.

The caveman. You've seen this scenario before. He's sleeping in his cave, and he travels out into the fields or the fjords or wherever he is, and he comes across an object he's unfamiliar with. What does he do to this object? What does he do? Smell it? That's fantastic.

Did I do that? Am I OK? All right.

Smell it? I like that. I like that. Yeah, well, he's probing it. He's trying to figure out, 'What the heck is this thing?' This example here, he's like, 'I'm going to poke it with a stick.'

So he's trying to find out if there's intelligence there. 'Is this thing going to bite me? Is it going to run off with my cavewoman? What's going to happen here?' So he's poking and prodding trying to find out what's behind it, what kind of an interaction he's going to have with this thing. Think of your forms in the same way.

 07:01

This is an example of Mixable. It's a collaborative tool for our students where they can come in and it's kind of a social learning atmosphere where you can share, collaborate with documents, media types like images and videos, you can share files via Dropbox, we have podcasting on here, things like that.

So when a user comes to this site and they want to fill out their status, they're like poking with a stick. They're prodding. And then all of a sudden they paste a link to a YouTube video, and something starts to happen. 'There's sort of an intelligence here. Something's going on.' And then boom.

This is not new. We've seen this in Facebook. These are the kinds of interactions where our users are expecting now.

But not only did it understand that I was giving a link, it comprehended. It understood what I was trying to do. It took the next step for me. It gave me a thumbnail, it embedded a video in my page. It formatted the layout a little bit so it helps the user. It's a good experience. This is what I'm talking about about user expectation, when you need to meet that.

 08:07

Why do we need to evolve? Because we don't want unsatisfied cavemen, basically. And please do not go back to your institutions and call your users 'cavemen'. At least don't attach that to me, please.

How do we evolve? As Web developers evolve, as we need to rise to the challenge, we need to... we're not just one-trick ponies anymore. We need to be the Renaissance developer. We need to wear many hats. It's easy to pool all these things into roles.

The first role I want to talk about today is the Navigator. The navigator's role is to help the user complete that form, help them through the form. So your Number 1 goal when you're filling out a form, or at least one of your most important goals, is to give the user that clear path to completion. You need to make it as just easy as possible for that user to glance at your form and understand the scope, what I'm dealing with here.

 09:16

Here's an example. If any of you saw my posters from last year, do you remember the Spy Kit order form? It's just a fake example of a Spy Kit order form.

But here we have an example that has... look at your label alignments, look at your text inputs, look at where they're placed on the page. It's not all the same, and every section is a little bit different. We have helpful information.

But that's the same color, the same placement as everything else. Your eye has to bounce back and forth between all of this information to comprehend it. Sure, all of our data's here, all of our form inputs are here, but there's a lot going on in the user's brain to figure this out.

So that path to completion? It's a little muddy, so to speak. You have to think about it. You have to really figure it out.

 10:00

What you need to do when you're building your forms is think about alignment. Think about placement. Think about how you treat your labels. Think about how you treat your inputs as opposed to everything else on that page.

This is just a quick example of moving, anchoring everything to the left side of the page. Now that's not going to be your answer in every case. Think about the form, think about the content, what you're trying to do. But here we've created that clear path to completion. We also have the 'Submit' button aligned in the left as well. These are the kinds of things you need to think about.

That example was large as well. There's also another issue there we need to talk about. This is a large form. In these cases, you might want to think about splitting the form up. And how you do that is think about the content you're asking about. Think about how to pool logical groupings together.

A lot of times you'll have things that ask for information about the user: what's your name, where you're from, birth date, so on and so forth. That's a logical grouping. Place those together. Place them on a separate page or a separate area.

 11:02

A lot of things you're seeing now coming to the Web are accordion forms. This is something that you might see grouped together in an accordion.

And then the other problem with that... so we're fixing things but we're adding new challenges, right? The other thing you need to think about is progress indicators. If you have split up your form and you now have three, four, or five pages, your user can get a little lost when they're traversing through that.

Keep them aware of where they're at. Let them know the scope and their position, so where they're at in their scope and how much more they have to go. This is taking away the fear of, 'This form is daunting. I have no idea where I'm at, where I'm going to end up.'

This is Signals. This is another example of an application that we did for Purdue. It's early intervention. Are you guys aware with that concept? It's looking at the student, assessing what the student is doing, their scores, their grades, their attendance, how many times they log into the system, and figuring out ahead of time if they're going to fail, and letting the instructor know. That's what Signal does.

 12:05

And as you can imagine, it has a lot of data. The instructor has to put in a lot of data. So we split this up into six sections. What we've done along the top is we've outlined that with progress indicators.

And this does a couple things. Like I said, it shows us the scope. We know we have six steps. It shows us the current position. We've styled it a little bit differently. It looks highlighted. And you can also step backwards if you want to and you can also see where I have to go. And it looks a little differently. It's less apparent because we haven't actually been there yet. There's no data in there yet.

Lifeguard. Now for those of you that I promised there would be a Hasselhoff, here you go. I lived up to my word.

As the lifeguard, it's your duty to help people. Your users are going to make mistakes. But what we can do here is prevent them... so this is before the fact... prevent them before they submit that form to fix the errors. This saves us a lot of error results from the form. It gets rid of those ahead of time.

 13:07

What I mean by that are things like help and tips. If you're asking for unfamiliar data or has a specific formatting, things like driver's license or you don't know off the top of your head or you don't remember the formatting, or there's something unique to your organization, you have a specific format that you wanted in, help and tips are generally a good idea.

But, again, this is not new to you guys. You know this. The thing that is hard to comprehend about it is to not overdo it and how you present these help and tips. That's what I want to talk about.

We had a site... this is PurduEBoard. It's a site for student organizations to share events and post things about what's going on in their organizations.

This is the form. This is the first form we had. Can you see issues with this form already? There's a lot of noise. Remember, path to completion. That's one of our goals here. Well, we've already failed, because the user has to comprehend, 'What's this? What's all this red text?' There's a lot going on.

 14:07

So one of the things we can do is user-activated exposure. And that's just a fancy couple of words for letting the user decide when they want the help.

So what we've done is that big block at the top of the page, we've moved into an 'About Flyers' button. So if the user wants to see that information, they can click on it and then get that. It's an unobtrusive way to show that information. And when they're done, they can 'x' out and they're back to normal. What this does is it defers the noise. It moves it to a different point in the form.

Automatic inline exposure. A lot of the help isn't really relevant until you need it. So this is a 'just in time' methodology. For example, if you have an input that needs formatting, like we do here, when we set focus on that input element, then we show inline exposure of help and tips. And then when they're done, it disappears.

 15:04

Again, saving noise, letting that path to completion be clear. These are the kinds of things that we're helping here clean up.

Your users will mess up, though. They'll get into trouble. And when they do that, you need to tell them, 'It's OK. You're going to be all right. You're going to recover.' You need to help them through that. So as the mentor, you need to display prominent and helpful errors.

Again, here's the Spy Kit order form. I filled this form out. I've hit 'Submit' and I'm still here. What happened?

Audience 1: [15:38 Unintelligible]

Alex Kingman: Where?

Audience 1: [15:40 Unintelligible]

Alex Kingman: Upper right?

Audience 1: [15:43 Unintelligible]

Alex Kingman: That just says 'For More Information'.

Audience 1: [15:45 Unintelligible]

Alex Kingman: Ah, there you go. See? We all had to comprehend this and figure this out. That's ridiculous.

Audience 2: [15:53 Unintelligible]

Alex Kingman: Exactly. So think about the styling of your form.

Anybody from an institution that has red in their colors? Yeah. Think about this. If your error messages are red and your institution is styling with red design, you might need to think about a different way to do this.

 16:08

Again, we have help text over here that's also red. Not really a good idea in this scenario. I mean, it's not really connected. It's close to the label, but not really connected. There's some issues here. So make your error messages blatantly obvious. This is important. Your users mess up. Let them know.

In our applications in our websites, what we have is a lot of text. It's just the name of the game. 'Content is king,' right? We have a lot of text. Your error messages probably shouldn't be just text.

Make them stand apart with things like imagery, color, white space. Put them near the top of the page. Let your user see these. Make them obvious. And also, at the same time, don't only give them that message but show them where the error occurred.

Again, going back to Signals application. What we do is we highlight the row that they messed up with. Right there. And we've also given it a little icon of a flag. So imagery, color, different coloring of the font down there: these are things you can do to help those errors stand out.

 17:16

Remember, our users have different expectations now. Things are a lot easier. We need to meet that.

This one's good. This is a fun one. Now, this is the geeky one. How does this stuff actually happen? How does it get made? It's all about the markup. And what I mean by 'markup' is HTML, CSS, the actual code of the front page.

This was mentioned in an earlier presentation, Mobile Design CSS. This is great stuff. CSS Reset is created by Eric Meyer. Anyone using this now? That is nearly not enough hands. This is really important.

Everybody knows we deal with cross-browser issues. Every browser does it differently. They think the other one is doing it wrong, right? 

 18:04

Like, an H1 tag in Firefox won't look like an H1 tag in IE6. And then sometimes stuff in IE6 doesn't look like IE7. I don't understand that. But there's a problem there. And what CSS Reset attempts to do... it's your baseline. This is the first styles that you use. And what it does is it brings everything down to a baseline. So it takes your margins, sets them to zero, takes your font sizes, changes them to the same thing. Everything is brought down to that baseline.

And the idea is what you do from that point forward is all progressive. You add to that baseline, and you've got all your browsers styling the same way. So it's going to help you out a lot. So please start here with your styles.

I'm going to talk a little bit about a few HTML text. These are so important when we're dealing with forms, but the problem is a lot of people don't use them. We just don't. We just use our inputs, and we might have headers around them. That's it.

These exist for a reason. They're semantic. They have meaning. Field sets and legends: they go together. What field sets do is they...

 19:03

Remember earlier I was talking about grouping similar information, like personal information, things like that? That would be long well in a field set. That's what it does. It groups similar information together. And the legend goes with that field set and defines what that field set is about.

This is really important for a few things. Visually, it's helpful, and for accessibility reasons like screen readers. They'll know that everything in this field set belongs to this legend. They're all similar items. Really important stuff.

Labels. So important. I think most of you probably understand the reason for labels. You're associating a title with an input. You're describing it. What is that input? And I apologize again for the text here. What a lot of people don't know about labels is how to associate them.

If you've been to websites that have a bunch of radio buttons and check boxes, the problem with those, it's a small click area. You have to get the cursor just right. And if you have any sort of impairment, it might be really difficult for you to click check boxes, click radio buttons.

 20:10

So another thing labels can do with associations is not only define that input but also increase the click area, so if you've been to websites where you can click on the label and it will select the check box. This is very helpful.

And you can do that in two ways. I'll explain this for those who can't see it. 'The Four Attributes'. So right here I have label. Four equals username. And what it does is it ties to the ID of the input; not the name, the ID. That's one way to associate it. The other way is just to completely wrap the label around the input. That will also work as well.

And just quickly to mention about all these, if you start using these HTML tags, you'll also notice that this gives you more leverage when you're designing, when you're styling with CSS. You have more things to point at. You no longer have to add classes to things like, say, 'This is my personal info title of H3'. You don't have to do that because you don't have the legend to do that. And you can point to those items and style them differently.

 21:11

You can also add classes to your field set if you want to design each field set a little bit differently, maybe as different types of data, and you want to align the inputs to the left or to the top. It's different. So you can do this with CSS now. Makes it a little bit easier.

Buttons. So 'Save', 'Submit', 'Next', 'Back,' 'Cancel', these sort of things, treat them right. Don't just think of them as buttons and that's good enough, because that's not the case.

Have you ever been on a form where you're just blazing through this thing and you're click and 'Save', you're click and 'Next', and all of a sudden something happens and you realize, 'Whoops, I just clicked the cancel,' instead. It happens. And a lot of times, this happens because we're not thinking about that experience, of just that moment of clicking that button.

What we've done in Signals is... you saw that there's a lot of steps in this form, right? We have 'Back', we have 'Cancel', we have 'Next'.

 22:04

And what we've done is, in the application, we have the style around things that are activating or enabling or saving. They're green. They're lit up like a traffic signal. What we've done here is we've made the action, like the progressive action, with that same style. So the user already has this association in their brain if they've been using the app for a little bit.

And what we've done to the other two is treated them differently. They're not your progressive selection. These do something different. We're going to go backwards or we're going to cancel. And 'Cancel' looks a lot different. It's red. It's got a big 'X' next to it.

It's OK in cases like this to make your users slow down just a bit, because this is an important decision point. You want them to think about it and you want them to make sure they're hitting the right button.

Now, label alignment is a really cool topic. We could talk about just this for a long time, but for time case, I'm going to try to just cover the top points.

 23:09

There's a really interesting study done by an Italian guy, Matteo Penzo. He did eyetracking study on different types of label alignments, so how does the user look at this form and travel through it if it's styled a different way.

I'm going to talk about two: top-aligned and left-aligned. And what I mean by top-aligned is just right on top of the label. You've got label, input, label, input. And what they found was this was the fastest. Users would complete the form the quickest when doing this.

They suggested that this was a good thing for familiar data, so things you've filled out a million times: your personal contact information, your name, your phone number, things like this. This is probably good for that. We can send them through the form quickest.

It does require more vertical space, though, so if that's a problem in your design, it might be a consideration when you're deciding which way to go.

 24:02

Another good point to talk about is it's good for localization. If you're in an institution where you're doing a lot of different languages and you're going to be changing the language of your form, this allows the label to expand and contract as the words naturally get bigger or smaller.

Left-aligned labels. These were the next fastest. A little bit slower, but the next best in their case studies. They suggested it's good when the data is a little more unfamiliar. Again, I'm talking about maybe it's a good time to make the users slow down and think about what they're doing. This might be a good approach. If it's unfamiliar data, if you want them to realize that this is a little different than what they've been filling out, this might be a good thing.

There is a less clear association between the label and the field, because as your eye looks at it, you have to go back and forth matching up the labels to their inputs. But also it requires less vertical space, so if that's a problem, this might be a good thing for you.

Again, the best practices, kind of a sum-up. For fast completion times and familiar data, top-aligned is a good thing. There's also a little consideration here about mobile design. I will talk about that in a little bit. For unfamiliar data, and if vertical space is a problem, you might want to think about left-aligned labels.

 25:15

It's also really important to think about your form as whole when you're doing this. Depending on how you're laying it out, you might want to think about not changing this up a lot. If you do, you better have a really good reason for it. Again, path to completion. Remember this. You want to make it obvious.

The Forward-Thinker. I get really excited about this stuff. This is cool. So HTML5 input types. If you guys just sat through the HTML5 presentation, it's fantastic, and one of the things that is left to talk about HTML5 is new input types.

So we're used to 'input type=text', 'input type=password'. HTML5 brings with it 13 new types. And some of these are in use right now.

 26:04

And it's important to know... again, if you didn't attend HTML5, this spec is open and it's changing. It's not going to be done for a long time. As new browsers come out, they support more of this.

And I just want to make sure everybody understands, this stuff could change. So it's really important to think about what I'm telling you today, but also keep checking with the spec. Keep checking with the browsers that you support. Keep this in mind as you go forward.

So what does this mean? On the iPhone, you get context-aware keyboards. This is so cool. So you're filling out forms, right? It's a pain in the butt to flip the keyboard over to numbers. It's a pain in the butt to go get the symbol, that hash... you ever done the hash tag? You have to not only go to the number tray but you've got to flip it. Horrible, right?

What this does is it tells the iPhone, 'I'm taking in a number here, so don't bother with the alphabet keyboard. I want the number keyboard.' And it understands this and it does this for you. So cool. So cool.

 27:08

URL gives you a slash and a dotcom, email gives you an @ symbol and a dot. Things that you're going to natively use for that input.

Context-aware widgets. So this is going to the desktop on your desktop browsers, and a lot of these examples come from Web kit-based browsers, so Chrome, Safari. Opera is also another one that does a lot of this stuff.

If you have 'input type=number', now you get a little number incrementor, a little click thing. And you have a slider for 'type=range'. This is really cool.

And keep in mind, this is native to the browser. This is not Javascript or front-end trickery here. This is the browser rendering this. This is really cool.

Time, it gives you another little clicker. Week, month, date, time, things like this, they give you calendars now that are native to the browser.

 28:01

And one of the first things you might be thinking is, 'This is awesome, but these are kind of lame. I want to make them a little prettier.' You can still do that. Use Javascript. You can override what the browser is going to do for you. But this is really cool for people that don't want to take that extra step. It's already doing it for you. This is really, really cool.

Opera. They're doing some cool things. They're taking it a step forward. And not only are they allowing 'type=email', but they're validating it for you. Again, keep in mind, this is not Javascript. This is the browser. It's doing it natively.

So when I fill out this form and I hit that 'Submit' button, before it submits, Opera will stop me and tell me that steve@apple is not a valid email address. It validates URLs.

Now this is not a type. This is an attribute. And I want to call special attention to this. 'Required'. Not much explanation here. Now we can tell the browser what's required. Very cool. And again, if you want to use Javascript override and do something differently, you can. You can still do that.

 29:10

So if these 13 types aren't enough for you, if you have a specific format, Opera's got your back here, too. You can give a regular expression to define what that number should look like via the pattern attribute. Really cool. This is huge. I mean, you can basically do anything a regular special wants to do, right? So the Opera then stops the submission and it tells you that this is not correct.

More attributes now. Placeholder and autofocus. Not much explanation here. They're self-explanatory. You can have a placeholder in your input. And when you click on that input, it goes away. Autofocus, when you load the page, the cursor's automatically focused on the specific input. Really cool stuff.

So this is great. But I know you're thinking, 'OK, can I use this? What are the problems? What are the other things I've got to think about? It's not going to work for everybody, right?'

 30:09

We develop for HighEd users, so we're dealing with a lot of, well, crappy browsers. Does anybody see the little Easter egg in here? I don't know. What is it, Steve? Anyone?

Audience 3: It's a mosaic.

Alex Kingman: Yes! Nice. Whoa, that really got long. Sorry. That's nice. Oh yeah, I put that in there for you, man. That's good.

The important thing to note here is, don't worry. In the HTML5, this is a great presentation. He talked a lot about how... do you guys remember the stat? It was like '85% of the Web doesn't validate'? There was a stat, it was really interesting. So moving away from XHTML and just saying this is an OK thing.

Don't worry here. Browsers that don't recognize it, like 'type=email', 'type=URL', they'll fall back to type text. It will still be an input. Your user can still input text, and then your server side validation and URL using server side validation. No one's nodding. Do we need to do another presentation about this?

[Laughter]

 31:13

Alex Kingman: Jason, you'd be good for that one. Maybe next year.

You can still do those sorts of things. And for those browsers that do support it, they will render a different... like a calendar pop-up for date/time, things like that. Unknown attributes will be ignored. So placeholder, autofocus, these things, they'll be ignored. The input form will still work.

So that's great, but if I'm going to do all this work and change things, I'm going to lose usability on these users that don't support it. What's the point? Well, the thing you can do here is detect for support. And then if they don't support it, use your own solutions.

And there's a few ways you can do this. There's Javascript. What you can do is, for input types, you can test for support by creating an element in the DOM, and then setting that attribute of type to something, one of these HTML5 types like color, URL, email, things like this.

 32:09

If you're on IE6 and it doesn't know what 'type=email' is, that type will just default to text. So what you can do is check for 'type=text' now on that element. If that exists, then you know it doesn't support it. And you can roll your own solution with Javascript or jQuery UI, something that you like to use.

Placeholder and autofocus. Kind of a similar situation. You're creating an element in the DOM, and then all you're doing is trying to return that attribute. And what happens is, these won't naturally be blank, but it exists in the DOM so it will return true, if it supports it. If it doesn't, then you can roll your own again.

And if you need help with this, he had some examples in his presentation as well about Modernizr. These will help you do this. Makes it really easy to update.

Whoa, hello.

 33:06

Mobile forms. Again, a fun topic. I want to talk a little bit about people's ideas about forms on phones, and filling those forms out.

Jakob Nielsen, usability expert, been around for a long time. Like Mr. Usability, next to Steve Krug, of course. But he says designing for mobile is hard. A book from O'Reilly, "Mobile Web Design and Development", says general rule of thumb is to just avoid it completely. Limit the use of forms on mobile devices.

There's this general stigma behind forms on mobile devices. And understandably so. Keyboards are tiny, screens are tiny. It's a pain in the butt. Well, this is where it gets really interesting. There are more than 150 active Facebook users that are accessing through their mobile devices. And these guys are twice as active as the other users. What do you do in Facebook? You're filling out a form. You're giving your status updates.

 34:16

Yelp, just over 25% of their searches were done through the iPhone. And then all other smartphones combined, they have two million unique visitors in 30 days. Twitter, 46%, half of the active Twitter users make mobile a regular part of their experience.

We don't really need to talk about this much. I mean, people are using mobile phones even with this stigma that forms are bad and we should avoid them. So what's happening here is the evolution of technology and culture, they don't really care. Just people do it. It's happening right now. People are using forms on mobile devices more.

 35:01

So we might not want to be scared of this. We might want to think about more creative ways. How can we do this and meet our users' expectation? Again, remember, we're trying to rise to meet our users' expectations now.

We have tools that help us do this, thankfully. Field-zooming. If you've used mobile phones, I'm sure you've tapped on a field and the phone zooms in for you, right? This is an example of our back channel tool for the student in the classroom on their mobile device. You tap on the text field and it zooms in.

Now, there's important things to think about here. The phone's helping you out a little bit, but you need to be aware of a few things. Do you see a problem with this screenshot?

Audience 4: [35:41 Unintelligible]

Alex Kingman: What's that?

Audience 5: [35:43 Unintelligible]

Alex Kingman: Yes. And I heard another good one. Character limit's gone. There's things that are important to this field, right?

And most important, above and beyond, the label. Where the heck is the label? I'm not sure what that means. So imagine on a larger form, more items as I'm hitting 'Next' and going down that form field, I have no idea what these fields represent anymore. I have to scroll to see them.

 36:06

We talked about label alignment. Mobile devices, you might want to think about top-aligning your labels. It's just something to think about.

Pop-up and compound menus. In my email client that I use on the Web, I'm sure a lot of you do the same thing, I've organized my email into folders. But I have a lot of folders. I have a lot. And when I go there to sort through that folder, it's drop-down menu.

When I hit that thing, that drop-down menu expands the entire screen, and then it has little arrows on it. The drop-down menu itself already on a desktop is not the best widget for forms. Already we're behind. On a mobile device, it's even worse.

So what the phones do for us is they give us these rollups that now, instead of having to click and scroll through this thing, we have this interesting rollup. There's a tactile response here, and people like it so much that we brought it to laptops now. We can flick and navigate. Just makes it a little more better of an experience for the user.
 37:09

We have compound menus for data that's logically grouped together. We have these, well, drop-downs kind of, these compound menus that are all of them together in one menu, so we're no longer having to click-select, click-select, click-select. It's all together. So think about that as you're designing for mobile devices.

Geolocation. I don't really need to go in-depth here. It just does it for you. It figures this out. Think about this when you're designing. We can use this on desktop browsers as well if your browser supports it.

Voice input for the Android. This is fantastic. When you're filling out input fields, the keyboard rollup comes with a little microphone. You can click on that and speak into the form. This is huge. They've made it even easier. If you just swipe the keyboard, it will initiate voice mode as well.

Visual input. This is so cool. Have you guys used Google Goggles? This is really cool.
 38:02

It's got a long way to go. It's kind of new. But you can take pictures of things and it knows what you're trying to do. It knows you're looking at a landmark and it gives you interesting information about that landmark. You can take pictures of text and have it translated for you. This is really cool stuff.

And we're going to see a big shift here pretty soon as more people use this kind of technology. So be thinking about this as you're developing applications.

Unnecessary inputs, get rid of them. If you can defer it, if it's not important until later, defer it. You can get rid of it entirely. Because the important thing to think about is, every time you ask a question, they have to think about, they have to parse it, they have to formulate an answer. Actually, I was... And then they have to input. There's a lot of things that go through their head when they get a question. So it's really important to think about each question vigilantly.

And this is not just for mobile phones. This is for all forms, really.

 39:00

My last one is Mr. Personality. This is actually my favorite one, and I have very limited time so I'll just try to sum up here.

The problem with forms is that they're forms. They're naturally just boring. It takes work. So what we're doing here is giving it a personality, making it an experience. Think about it from a design perspective. How can we not only get data efficiently, but how can we make this a good experience for the user?

Remember, we're trying to make this a more human interaction. So communication. It's an interaction.

This is Huffduffer. Registration for this site. They took an interesting stab at it. They did like a 'Mad Lib' style. Do you guys remember Mad Libs from being a kid? Remember putting poop and fart in all the columns? This is what happens. They've taken this approach. And what they've done is they've kept this field, this personality, through their whole site. So it's not just the registration form.

Give your applications a voice. Make it more human. Make it a better experience.

This is Kontain, sign form for Kontain. Not only is it visually interesting, they've put a lot of thought into designing each input area.

 40:10

You don't design an input area. Come on! But it's an interesting experience. Like you almost want to fill this out. I don't even know what the site does and I want to fill this out.

[Laughter]

Alex Kingman: It's fun! And they take it an extra step. When you go to the next page, they've split up a large form here. Remember back? A simple radio of male and female is now fun because you get little icons there. And they've taken drop-downs, which are boring as heck, they've modified them and made them a widget. It's like a little thing that it almost has a tactile feel to it. I want to press these buttons. There's a personality here. This is really important.

Again, don't just create forms. Create experiences. You want to rise to meet your users' expectations. They have new expectations of the Web now and of your input forms.

 41:01

That's all I have. Just quickly, if you guys want to find out anything more about what we're doing at Purdue, our studio site has a lot of our information about Mixable, about Hotseat, about Signals. We have a new project coming out soon. You can go there to find out more information.

And if you want to learn more about it today, my colleague Steve Heady is representing Purdue and presenting on reputation systems, and not only that as how we're using them for classroom tools. It's a really engaging presentation. I highly recommend it.

Do you guys have any questions? Do I have time for questions? I got one of these. So if you have one of these questions, I can take them now.

Oh, I thought this was a really interesting evolutionary... I had nowhere to fit this in the presentation, so...

[Laughter]

Alex Kingman: ... I just thought I'd put it here if we had more time. Yes.

Audience 6: So right now, Opera is the only one that's doing the browser validation?

 42:01

Alex Kingman: Validation. Yes. And that's why I said it's really important. Keep checking. Because this is going to happen more and more. Just the obvious benefits of this are huge. More browsers will be doing this. Yeah, keep checking.

Audience 7: I have a question about form design.

Alex Kingman: Sure!

Audience 7: My pet peeve, I type really fast, I'm filling out a form, I type in the name of my town, and then I have to stop, pick up my mouse or go to the keypad and scroll down a long list of places.

Alex Kingman: Right. There's a couple problems there.

Audience 7: Why do they do that?

Alex Kingman: Because we just don't know any better. I mean, that's the whole idea of this presentation. I'm trying to make people think about forms that it's not just forms anymore. You make them experiences. So filling out your address, Geolocation, browsers are supporting this now.

I was on... what was I using... Chrome, and it knew... gosh, what was I doing? I can't remember. I think I might have been looking for pizza or something. Domino's was it? But it knew where I was. I didn't have to type this in. So it not only eliminates that process of inputting the form...

 43:07

Audience 7: It knew your address?

Alex Kingman: Yeah. You've got to let it. It will ask you. It always asks you. But, yeah, Geolocation features in HTML5 do this. So, thinking of these tools as we move forward, we can start to eliminate these painful processes and make the experience more enjoyable.

Audience 7: But I mean, even typing in the two letters. I mean, who doesn't know the two letters that are their state?

Alex Kingman: Right. Just eliminate it entirely, I say. Yeah.

Audience 8: In a list of countries, where do you put the United States?

Alex Kingman: Oh, that's a huge one! Don't you love the ones that put it at the top?

Audience 9: [43:42 Unintelligible]

Alex Kingman: I love it. See, again, Geolocation, just eliminate it altogether. And think about your audience. Everything has its own... There's no blanket statement here, but think about your audience. If you know a lot of your users will be from the U.S., maybe put it at the top. You know, it depends.

 44:00

Yeah.

I saw one more hand go up somewhere. Is it a fakeout?

Audience 11: We should do a survey about that.

Alex Kingman: Doing for what?

Audience 11: Where you put the state...

Alex Kingman: The state? Yeah.

Audience 11: [44:15 Unintelligible]

Alex Kingman: Hey, again, make it fun. Give it personality. Why not give them a map? Let them pick it on a map. Make that map interesting.

Audience 12: [44:33 Unintelligible]

Alex Kingman: A flag. See? There's things you can do here. It depends on the personality of your application. Is your application fun? Is it ornery? I mean, seriously, think about these things. You want to give your apps a voice. Make them fun for the user. Make it more human.

Audience 13: [44:48 Unintelligible]

Alex Kingman: It could alienate a lot of users, though.

 45:00

I'm just playing devil's advocate. I agree with you. Yeah.

Thanks, everybody. I appreciate it. Thank you.

[Applause]