Is it a good practice to disable Basics?
One thing I can't figure out is a persistent question here and elsewhere on the internet about disabling OS-based "features". People are forever asking how to disable default OS shortcuts (like copy-paste, Windows key, etc.) or disable features programmatically.
Is this really very, very bad practice? To change the user's working environment with your program, unless it specifically aims to help the one used to change its own operating environment (which I have seen most of the time, I highly doubt it). I never want a program to change my bound shortcuts or change the default behavior / feature set of my environment. Is this general consensus, or is it just me? It violates just about every basic heuristic and usability / consistency theory I can think of - not least - the principle of least surprise.
So the question is: Is there ever a time (other than helping a user to change their environment) when manipulating / modifying / disabling operating system features or general user environment, an acceptable practice? If the program ever tries to disable the Windows key, copy / paste the shortcuts, edit the text of the Start button or something similar, without explicit permission from the user, and without the changes that are fundamentally necessary to fulfill the purpose of the program?
a source to share
Meta Answer: This might be a good idea if and only if your real reason for doing it is in the user's best interest.
And don't try to lie to the user about how to do it for "safety". You can count on public name and shame.
If you limit the user to your own advantage, not yours, you are in dangerous territory. Overcoming my car without my explicit permission, you will become forever on the extreme prejudice filter list ...
a source to share
No.
For normal applications, where the user expects control and can interact with other applications, this behavior only serves to undermine user expectations, can damage the OS's internal accessibility capabilities, and generally lead to frustration.
Even exceptions like those marked with ocdecio and overflowing , albeit well-intentioned, can trap this (how many games have you played that could crash leaving important system functions disabled or kiosks that disabled task switching but forgot to disable system notifications ... A) Whenever possible, developers should first look at the operating system itself to support the implementation of complete restricted applications or kiosks.
BTW is a CW designation, very subjective.
a source to share
Yes, I think so, although it is rare and should be very temporary. For example, a DVD player that disables a screen saver, or a presentation, game, or "parent-type" application that disables the Windows key.
This is very good advice not to do this, but there are times when it is necessary and even necessary.
a source to share
An example of good divergence from normal interface behavior is Ctrl-C on a terminal emulator on winblows.
In general, disabling the "normal" features of the O / S interface is clearly silly. Can you imagine looking for a brake pedal on a rental car? How safe would it be to confuse? When looking for lights, wipers, indicators and handbrake is bad enough ... The brake pedal should be one of the middle or left ;-) It Works. Don't Effin Eff With It!
Having said that: Neil Frasers' blog systematically breaks down many "universal principles" of user interface design by evaluating their application to the venerable TI80 programmable caculator. The phrase "This leads to an incomplete calculator" somehow branded itself in my brain.
I believe that interface consistency is paramount. For example, I am using SOATest product. This is an Eclipse-based Java application for testing SOAP (and others) web services. This has one very annoying quirk. Ctrl-Insert and Shift-Insert don't work in any of its textareas, but they do work in many (not all) textareas. If these keys didn't work consistently, I would adapt much more easily. I find this little quirk terribly annoying because (to me as a professional programmer) it is "just an ole sloppy work".
So ... Keiths design rule number one: no matter what you do, FFS does it consistently! Your users are smart, they will adapt.
Greetings. Whale.
a source to share