Monday, June 21, 2010

The Elevator Button Problem

User interface design is hard. It's hard because people perceive apparently simple things very differently. For example, take a look at this interface to an elevator:

From flickr

Now imagine the following situation. You are on the third floor of this building and you wish to go to the tenth. The elevator is on the fifth floor and there's an indicator that tells you where it is. Which button do you press?

Most people probably say: "press up" since they want to go up. Not long ago I watched someone do the opposite and questioned them about their behavior. They said: "well the elevator is on the fifth floor and I am on the third, so I want it to come down to me".

Much can be learnt about the design of user interfaces by considering this, apparently, simple interface. If you think about the elevator button problem you'll find that something so simple has hidden depths. How do people learn about elevator calling? What's the right amount of information to present to people? Do people need to know where the elevator is, or just that it's coming? Are up and down buttons necessary? What about having a single call button?

1. I don't know how I learnt that the correct thing to do was press the button indicating the direction I wished to travel. It's sort of elevator folk wisdom. Somehow you learn through experience or an elder passing on the knowledge. I've never actually seen an elevator with instructions. Have you?

So, it's quite natural that some people won't have learnt the user interface of an elevator. If you're designing a user interface it's worth stopping and pondering the things you assume 'everyone knows' about it.

2. The information about the current floor the elevator is on actually presents a problem for the caller. It's additional information that the person I interrogated assumed was needed to make a decision. Sometimes extraneous information takes on an importance all of its own. Here the user was assuming that you needed to know where the elevator was.

Actually all you need to know is that the elevator system has responded to your request and an elevator is coming.

3. Another oddity is that you call the elevator with up and down buttons (indicating a travel preference) and then get in the elevator and press a button. There's nothing to stop you contradicting yourself by indicating a different direction of travel. Which makes you wonder why you had to indicate the direction in the first place.

Typically, you have to tell the elevator your direction because an arriving elevator may already have people in it who have already instructed it to go to a certain floor. Thus the elevator is going up or down. If you register your request then the elevator can tell you whether it can meet that request.

One interface optimization would be to replace the up and down with a single call button. Passing elevators would stop and indicate which direction they were traveling. This simplifies the interface while placing a burden on the system which will perform wasteful stops for people who want to travel in the opposite direction. Here's where UI and internal system dynamics trade-off. A UI decision might actually make the system less efficient.

PS Of course, you can do away with buttons altogether and just have a Paternoster. I used to love riding in one in the engineering building in Oxford.


The Lorax said...

Well done, you've hit it exactly.

Here's a similar example that bothers me. This shows up in various GUIs. A two position control, say, On and Off for some feature. There can be two levels of ambiguity. First, most heinous, is that sometimes they draw them in a way you can't actually tell which position the control is in. The old Palm interface was like that. Half black, half white, but without reference you didn't know which was which. This can be cured by smarter graphics. The second ambiguity would be does this switch represent the current state of the feature, or my desired state? This can be cured by clarifying the context.


Apparently this person didn't realize that on the first floor, the only button is "up". That wouldn't make sense if the button specified the direction to where you are now rather than where you want to go.

Max Lybbert said...

We didn't do this exercise in my programming classes, but I understand that if an elevator only goes to the closest floor that somebody called it from then people on the highest and lowest floors suffer from starvation -- i.e., they never get to see the elevator because it's busy servicing requests from the central floors.

Not that it's impossible to fix this. I would, however, consider it an improvement if you chose your floor as the way to call the elevator. Like the original post said, it's possible under the current system to give contradictory instructions. Locking in your floor would avoid that; although it would open the door to denial of service attacks by bored teenagers.

Unknown said...

This is not directly related to the UI, but to elevator responsiveness.

Some hotels have looong corridors and/or elevator waiting times. I've often wished there'd be an elevator call button inside your room. That way, once you'd get to the elevator, it'd be there in a few seconds, having been alerted beforehand.

Of course, the problems here are abuse and the individual differences in walking speeds.

Unknown said...

"There's nothing to stop you contradicting yourself by indicating a different direction of travel. Which makes you wonder why you had to indicate the direction in the first place."

Actually that's not always true. The elevator at my workplace does the following:

- I'm on the 3rd floor and press Down indicating I want to go down (to G for example).

- A door opens from someone who was coming UP to the 3rd floor from Ground and they hop out, leaving an empty elevator.

- I naturally hop in, as I called an elevator and one has been presented. However, when I press "G" it won't light up because the elevator is still in "UP" mode. I have to wait for the doors to close and to reopen (in answer to my "DOWN" call) before I can successfully press "G".

- If at this stage I'd changed my mind and wanted to go to the 5th Floor, the elevator wouldn't let me because it's now in "DOWN" mode.

It's really annoying!

So when you're next in your Elevator 2.0, spare a though for the unwashed few of us still dealing with buggy elevators. I just want my lunch!

Ianso said...

I would imagine that with correct use of the two buttons, in an elevator shaft with multiple carriages it would be possible to 'plan' to have one elevator serve downwards-heading people and another to serve up-wards, then to reverse, fixing the starvation problem Max highlighted.

Anonymous said...

Of course, you could also have a elevator interface that requires you to punch in the number of the floor you want to get to in order to call the elevator. This eliminates all confusion and you only have to interact once with the machine to get what you want. I've actually seen this once in a busy skyscraper.

Michael Campbell said...


That's a good interface but requires n(n-1) buttons; every floor requires as many buttons as floors (minus 1, for your own floor).

The existing UI requires 2(n-1); up and down, save for the top and bottom floor.

addatwork said...

a few thoughts:

- direction buttons are crucial for buildings with huge elevator traffic, this "optimization" reduces the wait time

- the user needs to see where the elevator is and when it moves because there has to be feedback "elevator got your request, it is 3 floors away from you, now only 2."

- yes, a lot of people don't know about the arrow convention

CrashCodes said...

Instead of just up and down, what about putting buttons for each floor outside the elevator instead of inside?

This might give the elevator a better opportunity to optimize routes. By optimize i mean providing cars with fewer stops.

CrashCodes said...

I'd imagine that extra buttons are relatively cheap compared to the value of the time savings for the passengers.

BRi said...

It's possible to schedule cars more efficiently if users input their destination floors ahead of time, so it could be worth the extra expense in buttons. Also, giving up a little user-friendliness, you could always have a numbered keypad and let the user punch in its desired floor one digit at a time.

Wikipedia's got a decent discussion on the system:

Ionuț Botizan said...


Actually, a nice interface would require no buttons and just a touch screen! :P

Anyway, I have to disagree with you: in my country I got used to having old-school elevators with just one button and it's not pretty that when you want to go down 6 floors you first need to go 4 floors up, where the people that were already in the elevator were heading... So, it's better that, if the elevator I requested was going up, it would not to stop for me, because it already knows I want to go down.

On a side note: How dumb needs one to be to even think that if he's at the 3rd floor and the elevator was at 5th, he needs to tell the elevator which way to go to get to that person's floor? What was he thinking, that by pressing up the elevator would go nuts and go up to a random higher floor? :))

Andreas Grech said...

In reality, people usually press both buttons at the same time.

Thing is, as you said, it confuses people and by pressing both buttons, one knows that "you can't go wrong"

Ed said...

@Admin: Those elevator banks just have a keypad. Surely you didn't think a phone needed 10^7 - 1 buttons in order to dial a 7-digit phone number...

NeuroDoc said...

I was actually in a building last week that had an elevator as @manni described. However, each floor had a 10 digit keypad, and one simply entered the 2 digit (or 0 plus single digit). Several interesting things about this:

1) Once you get in the elevator, you are taken to the floor you requested. If you change your mind, you need to wait until you arrive at the floor, get out, and start again.

2) The ground floor is referred to as "0". I've never sen this in the US before.

Anonymous said...

Here it's not up - down buttons. There is a number for each floor of the building and a LCD display. You press the button/number you want to go, the LCD displays which elevator was assigned to pick you up.

very confusing at start since seems something like a password stuff but watching someone using makes you understand.

Anonymous said...

It's thinking like this--accounting for an apparently dumb person--that leads to things like having to label HOT COFFEE with the words, WARNING: CONTENTS ARE HOT.

Just my two cents

Unknown said...

I read somewhere (it may have been Joel Spolsky's blog) about a different elevator system: people select the floor to which they want to travel before the elevator even arrives (no up and down buttons, but numbered buttons for every floor).
A computer calculates which elevator to send to the traveller. Once you're in the elevator, you don't have to press any buttons anymore, it will stop automatically on the requested floor level.

Cliff said...

I find it very interesting that many seem to be commenting on certain parts of your anecdote, others the logic and math behind it, and I see the entire article as a design/usability article as a whole and not elevators themselves.

Anonymous said...

Reminds me of a story about a parent who had kid who thought dog poop was food. The kid used to like to play in the neighborhood dogs' poop spot. The parent asked all the dog owners to train their dogs not to poop in that spot. Question is: Wouldn't be easier/better to just train his kid not to eat the dog poop?

Regarding the elevator button "problem":

Just educate the few people who don't yet know that the elevator button is asking them if they want to go up or down. In fact, you don't even need to educate them, they will learn themselves after trying it a few times.

Or just remove the indicator that creates the confusion for these poor souls (i.e., the indicator saying which floor the elevator is currently on).

Unknown said...

Usually, someone will be coming down, and you will have to go down to Lobby, let them out, go back up to 5.

Sometimes it works to 'game the system,' sometimes not.

Unknown said...

When a single set of control buttons operates more than one elevator, 'up' and 'down' are required, since you can order 'up-elevators' and 'down-elevators'. The ones you haven't ordered can continue their journeys, when you wait for the elevator that goes in your preferred direction.

When a single set of control buttons operators just one elevator, I think both buttons are still required. This is why:

Since most people prefer to wait for an elevator rather then be in it, I think elevator shouldn't just pick up all waiting people and then go, say 20 floors, up before going 22 floors down. The both buttons help waiting people to order the elevator of their linkings, and thus decreasing the time you have to be in an elevator to a minimum.

I hope my comment is clear since English is not my mother tongue.

Todd Anglin said...

@John, @Manni-

Actually, I recently visited a hotel in New Orleans that does exactly that: there are number pads on every floor, and riders must enter the number of the floor they want to reach. The system processes the request and then tells the rider which elevator car to board.

It was unbelievable how much confusion this created.

It seems people have a "behavior bias" that impacts how they interact with elevators. People jumped on elevators as the doors were closing, expecting to enter their destination once on board, only to discover the car would only make "scheduled" stops. People get on the "wrong" cars because they couldn't remember where they had been instructed to go.

It was amusing to say the least, and clear reminder that simple systems are often easier for users than systems that offer more "control."

Jacob said...


Not if you type in the destination floor's number on a keypad. (Which is what, I think, @manni was trying to say.)

A UI should be about allowing a user express their intents. e.g. I want to go to floor X

Paz said...

@Manni I think that's an excellent idea. I've seen it done in the SZ tower in Munich, Germany where I used to work. There were three elevators on either side of the corridor with a touch screen in the middle. Upon touching the number of your destination floor the system assigns an elevator to your journey and displays where to wait for 'your' elevator. (this is what it looks like: and the screen: There's nothing else to do for you but boarding the elevator when it arrives and leaving it when you reached your destination while being entertained by a TV screen inside the elevator. It worked really well, I found it very intuitive and a pleasant user experience. I wish this system was used more elsewhere. I love it because it's so simple and I think it solves this ancient problem very elegantly.

r0kamo said...

Isn't it necessary to have two buttons in order to minimize in-elevator wait time, avoid directional conflict and confusion?


You are on the 5th floor, wanting to go down to the Ground floor. There is only one button (the "Call" button) so you press it.

The elevator arrives with a group of people travelling from the Ground floor to the top floor. You enter (not realizing what direction it travels) and press "G".

What direction does the elevator travel? Up or Down? Obviously it would continue up, because that's the direction it has to travel to drop off the people already on the elevator.

There has to be two buttons for an elevator. Otherwise you will be forced to face the scenario outlined above, which would be horrible.

martijn said...

I find myself in these kind of situations, where I have to decide what normal people would do, quite regularly, but I don't think there's anything ambiguous about the situation you described. The very fact that two buttons exist means that they can't be to control the direction of the elevator, as this would require only one single button: a "come to my floor" one. (Of course, this is assuming that the person who programmed the elevator made it "understand" basic maths such as 3 < 5.)

A situation I came across the other day that I do think is ambiguous is where you have a (web)page displaying a subset of a set of results that are ordered chronologically, descending. (Examples include forum/blog posts, orders made through a certain website etc.) What do "next" and "previous" mean? Next/previous in order or in time. Usually they mean the former, but I've seen the latter being used as well.

Unknown said...

I don't think this is a problem at all. If you want to walk this planet, you need to have some rudimentary reasoning skills, not the least of which is understanding a simple, universal tool such as an elevator calling button.

The design of the elevator calling button is simple by necessity. Like other public interfaces, all you need to understand is the concept of simplicity.

Dia said...

Let's say I'm on the 3rd floor and want to go down. The elevator has someone going up to the 3rd floor and there is a request on the 5th floor. Many elevators will continue up to the 5th floor. If there is only one call button, the elevator must reset it when letting the upward bound passenger off at the 3rd floor. I would need to press the call button again once the elevator leaves to let the system know I still need an elevator.

Unknown said...

I hope that none of you UI experts ever get to design an elevator system, because it would be so unusable that everyone would be using the stairs. But, I'm sure that everyone would be commenting on how beautiful the buttons were as they walked by them.

Maybe the goal is to save electricity and get people to excercise more. If so, then job well done!

Unknown said...

Windows comes with a button labeled as 'start' which I have to press first in order to shut down.
Luckily they don't build elevator interfaces.

Unknown said...

i really liked to read this post since i find it's a great example about how UI design is to be found everywhere.

there's one thing i'd like to add, though, concerning the fact that when calling the elevator with the UP button, nothing will keep the user from going DOWN instead afterwards (don't know if anyone else already mentioned this): there definitely ARE elevators which show the following behaviour:

when i'm on floor 2 and want to go to ground level, i'll press the DOWN button. If the elevator at that point is on floor 1 and already on it's way to a floor above mine (2), it won't even stop on my floor: it will first go to it's actual destination (3 or above) and then return to my floor to pick me up for my way down - taking into account that my entering in floor 2 will not help me getting to my destination any faster, but will only slow the persons currently riding the elevator up.

This behaviour imho justifies the existence of two different buttons and is a nice example for a slim UI. Of course, the problem remains that no user guide for such an elevator exists ;-)

Unknown said...

I used an elevator system recently in a hotel in Barcelona where there were buttons to select a floor outside the elevator, so you selected your floor in advance and it scheduled the lifts efficiently. Perhaps the hotel was just not very popular, but its three elevators felt like they serviced the hotel very quickly.

Unknown said...

You have to pick up and down because if the elevator already has people in it going up to floors above you, it won't stop if you choose down. And if the elevator has people already in it going to floors below you, it won't stop if you choose up. In a busy building, it would be inefficient to stop all the time.

Repton said...

Inside elevators, you usually find open- and close-door buttons. The buttons are often labelled "<>" and "><" for open and close, respectively.

(I found a picture here: gatech)

Now, imagine you're slightly short-sighted, perhaps, or you're thinking under pressure (someone is hurrying towards the lift and you need to quickly push the "open" button before the lift leaves). Which button better conveys the image of open doors?

Jan Moren said...

Great minds think alike:

And yes, there's no really good solution to this.

Anonymous said...

Sigh. Many UX people seem to presume that all information presented to a user is solely for their experiential pleasure, and anything that spoils the magical marriage of maximum simplicity and sleek design is detrimental.

In this case, as others have pointed out, the two buttons let the elevator decide far more efficiently how to serve its occupants by optimising how it stops in each direction.

I can (barely) see how a display of the current floor could be confusing _if_ it's close to the buttons, but you could equally make the argument that it's obviously for letting the user decide if they're willing to wait for the lift to move from floor 28 to where they wait on floor 2, or to walk those two flights of stairs up to the 4th floor where they're going.

The tradeoff being argued for here is a simpler immediate button-pushing experience for a longer and less efficient travelling experience. Do you really want to inconvenience the 99.9999% of people who have used lifts before, and understand that they're for going up and down in a building, with the .0001% of Amazonian tribespeople who don't recognise the nomenclature and might get all in a tizz? How are these people even recognising the concepts that Buttons Make Stuff Happen and Pointy Icons Indicate Directions?

I like the maxim "as simple as possible, but no simpler." I think these ideas stray into the latter. The system is there to help the user, and the user can help themselves by helping the system. C'mon, give 'em two buttons. At the very least it'll make 'em feel free.

Pedro Gabriel said...

A Paternoster would be a problem to some aged people or someone in a wheel chair. I don't think that would be a good solution for the nowadays acessibility demands.

hallam.jon said...


But the information as to what floor the elevator is on provides some estimate for how long it will take the elevator to answer your request - and therefore whether or not you'd be better off taking the stairs instead.

In one fifteen story building at a university I visited you programmed the lift with the number of the destination floor. This makes a lot of sense, as quite large groups of people (going to the same seminar or lecture) can then travel very quickly to their destination together. Additionally, it lets the system allocate the elevators efficiently in the case where people are travelling up and down.

There were instructions though, and six elevators serving the building.



Mike G said...

The answer is: the user is an idiot.

You need both buttons to properly schedule the elevator. A busy single elevator unit will keep going up until it hits the top and then does the opposite, which is the best path to minimize wait time. The difference is even bigger with a multiple elevator hub.

If you use one button and go for closest floor, the maximum wait time is infinity (as Max says). If you go for the person who has been waiting the longest, you end up skipping people you could have picked up along the way.

Unknown said...

Why don't we have a "Cancel" button in elevators ?
I hate when someone hit the wrong floor number ...

timyeo said...

Quote: "2. The information about the current floor the elevator is on actually presents a problem for the caller. "

> Without knowing what is the lift's current floor, how will users approximate how long it will take before the elevator arrives?

In some cases, users may choose to take the stairs or choose to take a teleconference phonecall from the lobby since they can't make it to the office in time.

Chris said...

I think the person that doesn't understand that you need to press the button that indicates the direction that you want to go is a rare case.

UI designers get caught up on fringe cases too often. I say keep it simple and let that one person in a hundred be confused.

The status numbers are usually at the top of the elevator doors - so by context they are removed from the actual task of calling the elevator. If they were located next to the call buttons..then it would be a problem.

Better to have an interface that's easy for 90% of the users than to add unnecessary complexity to accommodate the remaining 10%.

In other words, I think the elevator problem isn't a problem after all. I mean, even that person that pushed the down button to get the elevator from the 5th floor would figure things out after a couple of attempts.

The interface is obvious for most users and easily learned by the rest.

Unknown said...

For many years, I delivered newspapers in beach-side condos, which required the use of many different brands or makes of elevators. Some were made by Miami Elevator Company and many others by Otis, but most of them had the same interface features designed to service the most people in the quickest time.

One feature they all share is that they all have up/down buttons on all floors except the bottom and the top. If you start on the 3rd floor and you want to go to the 10th floor, and you hit the down button, then most elevators will continue to go down to the first floor before ascending to the higher floor that you wanted to go to.

If you don't mind the ride, and if its a single elevator, then you might as well take the ride. It is nice to have a choice to ride or to wait for it to come back in most cases. Consider the old days when elevators had operators running the controls and he decided which way to move the car. People often waited a long time to get picked up if they were on a higher floor.

In the case of a building with multiple elevators, directional buttons are a great time saving feature. If you had only one button, and didn't get to choose if you were going up or down, then you could end up taking long needless time consuming elevator rides. In my busy world, that would be very inconvenient!

Varun Krishnakumar said...

Consider this. There are 2 elevators. One on the first floor and one on the 7th floor. You are on the 5th floor and you wish to go to the 10th floor. Here you can't use the logic of pressing the direction in which the lift will reach you; you should press the button for the direction in which you wish to travel and the closest lift will come to you So my guess is that the logic for twin lifts is carried forward to the singular lift as well.

chilenate said...

The problem with a LCD touch-screen is how will a blind person know what to press?

Has anyone considered a "push-to-talk" button? One button with braille, perhaps, underneath or above the LCD touch-screen where a blind person could press and say the floor they require? Don't forget about ADA requirements...

Bubulindo said...

This is an interesting post.

I landed here while searching why it isn't possible to deselect a floor on elevators in almost anywhere in the world, except in Korea. There, you can in fact select and deselect the floor you want to go whenever you want.

But as some readers suggested, one solution would be to indicate the floor number you want to travel to.
I have seen a system like this working in London and it takes away all the confusion. You key in the floor you want to go to, press enter and an elevator number is assigned to you. Then you know that the next elevator coming on that number is going to that floor. Simple.

When looking at the cost of the buttons, considering that this elevator works with a standard 12 digit numeric keypad, the cost is surely less than individual buttons on each floor. Although, I do understand that aesthetically it is not great it is functional and efficient.

Scott Mayfield said...

Many buildings in my area (Detroit, MI USA) are upgrading to elevator routing systems similar to what's described above, with the addition of a badge reader... you scan your badge and the touch panel gives you a list of floors you're allowed to visit. Non-badge-holders only see public floors. From there, a computer calculates the closest car and load limits based on demand.

Unknown said...


Twisted_Code said...

@m.wanstall I wish the elevators where I live were even that smart. Sometimes they won’t even close and reopen the elevator and will still continue going the same direction, even if no other floor is lit and sometimes even if the elevator wasn’t called to a floor in that direction! I had one of them about a week ago take me to the basement (which is a public floor, at least. It’s where our laundry service is) and then just sit there for a moment without opening the door. Then it went back up to the floor I wanted to go to (opposite direction)

sanket55555 said...

The below information placed at appropriate and corresponding locations, should simplify things( it surely can be worded better)

"Press this Button to go to a higher floor"
"Press this Button to go to a lower floor"
"This is the floor you are on"

"This is the floor the elevator is at" (this one would be required only if there are more than one elevators to choose the closest one, it could also include an indicator of the direction the elevator is headed towards)

Мої вірші said...

I see no one here has an experience how elevator call buttons done in former USSR countries. And I really think soviet engeneers did found somewhat elegant solution to the problem.

The are mostly two types of call buttons here -- in residential building where most trafic are either from ground floor to any of the upper floors or from upper floors down to the ground floor then there are only one call button on each floor. Which only command the closest empty elevator come to your floor or the occupied one that goes down. What to do if you are on 5th floor and want to go 9th floor? If the car that comes to you is occupied you know it goes down so you just announcing that you need to go up and people in car just continue their way down. Since it is rather rare situation because not much atraction except going to a neighbour from different floor was in soviet buildings so this is not really a problem) Also there is no signs on every floor that shows which floor the car is except for the ground floor. So scarcity is definitely mother of invention.

Another type of call buttons are in administrative buildings like hospitals and governmntal buildings where optimization and speed is more important and a lot of users are trained stuff. It just those two up and down button design.

I hope you have learned something)

robertwb said...

RE: Instead of just up and down, what about putting buttons for each floor outside the elevator instead of inside? This might give the elevator a better opportunity to optimize routes. By optimize i mean providing cars with fewer stops.

That's actually what a lot of elevators several Google offices do. It then "packs" the requests into a smaller number of elevators, and you get to your desired floor with fewer stops along the way.

Making an old USB printer support Apple AirPrint using a Raspberry Pi

There are longer tutorials on how to connect a USB printer to a Raspberry Pi and make it accessible via AirPrint but here's the minimal ...