Al desactivarlos, el usuario puede buscar sin esfuerzo la funcionalidad que sabía que existía anteriormente. Entonces, en general, ocultando algo completamente fuera de vista solo genera frustración. ¿Recuerda los menús dinámicamente poblados en Office 2000 a 2003? Entonces sabes a qué me refiero (véase Jensen Harris 'blog posts en that topic).
Sugiero que debe deshabilitarlos y dejar en claro en qué estados están disponibles y cómo lograr eso.
En algunos casos, sin embargo, como la aplicación que estamos desarrollando en este momento, la funcionalidad está allí o no depende más de los permisos del usuario que en el estado actual del programa. En tales casos, puede ser útil simplemente ocultar cosas que no deberían ser accesibles, ya que los usuarios nunca llegarán al punto donde podrían usar los controles. Simplemente porque carecen de privilegios. Vea, por ejemplo, las herramientas de moderación de Stack Overflow, que son accesibles una vez que obtiene una representación superior a 10k, pero nunca se muestran antes, ni siquiera como deshabilitadas.
Dado que la respuesta obvia es "depende", ¿en qué situaciones elegirías un enfoque sobre el otro? – a10s
Más respuestas a casi la misma pregunta en: http://stackoverflow.com/questions/371921/should-unauthorized-actions-in-the-ui-be-hidden-disabled-or-result-in-an-error http://stackoverflow.com/questions/1000878/static-ui-vs-dynamic-ui/ –
... O si desea volver a los tiempos previos a StackOverflow: http://discuss.joelonsoftware.com /default.asp?design.4.500905.18 –