posted 8 years ago
Rule Number One for User Interface Designers:
It's not yours!
Domain specific versions:
For Web Developers:
It's not your browser!
You don't understand this rule if you're asking:
HOW CAN I DISABLE THE BACK BUTTON?How can I prevent the user from closing the browser?How can I close the user's browser when they leave my page?How can maximize, F11, or otherwise resize the browser window from within my page?How can I change the browser settings?How can I save a file to the user's machine from my web app?How can open an application on the user's desktop from my web application?How can I read a file on the user's machine from my web application?How can I read cookies set by other applications from my web app?How can I disable or modify the "right-click" context menu?
For Command Line Developers:
It's not your console!
You don't understand this rule if you're asking:
How do I clear the console when my program is run?How can I close the console when my program finishes running?
For Desktop Developers:
It's not your desktop!
You don't understand this rule if you're asking:
How do I close other applications when someone starts up the one I'm writing?How do disable the minimize, maximize, and close buttons in the title bar of my application?How do I hide the users task bar from my applicationHow can I force the user's machine to shut down from within my application?How can I change the screen resolution of the user's machine to better suite my application?How can I force my application's window to stay on top of all other windows?
What I (meaning the end user) expect
As an end user, I don't expect the applications that I'm using or the
websites that I'm visiting to alter the state of my machine or the
layout of my desktop; at least not without them specifically asking me
for permission.
My browser is mine, not yours, it's none of your business what other
sites are running in other tabs or windows. It's also not your
business to know what sites I've visited before going to yours or what
sites I plan to visit after visiting yours.
My application/browser's window size is the size that I set it to be.
It's that size because I want it to be that size. It's not your place to
decide that it should be a different size. If your application can not
render properly in the window as I've sized it, I'll choose to either
resize my window or stop using your application.
The back button is under my control and my control alone. It gives me
the option of backing out of your site and following a breadcrumb trail
to other sites I've visited. You have no right to take this capability
away from me. If you try to, you will annoy me. Interface designers
should try as hard as they can NOT to annoy their application's users.
If my clicking the back button causes your app to double post forms or
malfunction in some other way then you don't understand how to write a
web application. Reaching outside of the sandbox given to your
application by my browser to disable browser features is not a fix for
this. Learn how to write an application and leave my browser alone.
You (meaning your application) are a guest
The first computers were expensive and rare. Only certain people were given access to them.
In those days a user was treated like a guest. The computer would welcome them with a friendly greeting but it was the programmer's job to control all the parameters and to insure that the application restricted users to only those things to which they needed access. The program, as far as the user was concerned, was the computer and the computer was the host. The user was the guest.
In this age of personal computing and the internet, that relationship has been turned around.
Your application is a guest on the user's machine and should behave accordingly.
You, as a guest, wouldn't go into someone else's house and re-arrange their furniture or rifle through their file cabinets. You wouldn't take things or leave things behind without an expressed agreement between you and your host.
Think of your application as a guest that should behave no differently than you would if you were invited into someone else's house and you will be well on your way to understanding Rule Number One.