Bookmark Topic Watch Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
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 application
  • How 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.
     
      Bookmark Topic Watch Topic
    • New Topic