2008-12-12 17 views
35

Consulte la pregunta reciente al when are modal dialogs truly necessary?. ¿POR QUÉ son malos los cuadros de diálogo modales? ¿Es porque la gente no los lee de todos modos? Porque a menudo se implementan tan mal? ¿Algo más?¿Por qué los cuadros de diálogo modales son malos?

+1

http: //en.wikipedia.org/wiki/Modal_window # Criticisms http://everything2.com/title/Modal+dialog+box Joel y Jeff Atwood tienen publicaciones sobre el tema (se encuentran fácilmente a través de google) –

+0

Siento que muchas preguntas de descendencia están cerradas en StackOverflow :(Pensé que una calificación alta de preguntas y respuestas indica que son útiles. – Lamy

+0

@Larry, aparentemente no. Aunque esta pregunta cerrada y no constructiva acaba de lograr una insignia de oro por ser una pregunta famosa, creo que esto encajaría mejor en el sitio de los programadores. , pero en el momento en que se preguntó, no había un sitio de programadores. – thursdaysgeek

Respuesta

52

Aproximadamente la mitad de las respuestas hasta el momento se abordan los defectos de confirmación diálogos, no de modales diálogos. Si bien la gran mayoría de los diálogos de confirmación son modales, esto no significa que los dos términos sean sinónimos.

Un mod de diálogo otros es el que pone el programa en un modo específico y no permite que hagas nada que no se corresponde a ese modo mientras está abierto. En la implementación más común, esto significa que no puede acceder a ninguna otra ventana.

Esto es malo.

Considere la posibilidad de una aplicación de libreta de direcciones. Supongamos que tiene una persona existente en la libreta de direcciones y desea agregar a su compañero de cuarto.

  • Si el cuadro de diálogo "Agregar persona" no es modal, puede alternar entre el registro anterior y el nuevo copiando y pegando sus datos.
  • Si el cuadro de diálogo "agregar persona" es modal, no puede hacer nada con el registro anterior mientras está abierto el cuadro de diálogo Agregar. Puede seleccionar algo para copiar antes de seleccionar "agregar", pero solo una cosa. Todo lo demás tiene que ser reescrito manualmente.

En raras ocasiones, se encuentra con algo que realmente debe hacerse en una pieza sin permitir al usuario divergir de esa tarea hasta que se complete. Los diálogos modales son apropiados para tales casos. ¡Pero estos casos son muy raros! Cuál es básicamente el punto del otro hilo al que hace referencia esta pregunta.

+1

¿Estás diciendo que los diálogos de confirmación no son malos? – Pyrolistical

+6

Estoy diciendo que los diálogos de confirmación y los diálogos modales son ortogonales: la maldad de uno no está relacionada con la maldad del otro. (Ya que me preguntó, diría que los diálogos de confirmación son simplemente inútiles por sí mismos. No son malvados a menos que también sean modales). –

+1

De acuerdo, la mayoría de los diálogos modales le piden que tome una decisión basada en información que efectivamente lo están impidiendo de acceder Lo peor es cuando el modal se presenta en una ventana inactiva y debe pasar varios momentos tratando de recordar lo que el proceso estaba tratando de hacer. – CurtainDog

35

La gente no las lee, y eso es algo bueno. Desea que las personas formen hábitos en torno a su UI, pero tener una opción importante en la ventana emergente solo hará que el usuario presione Aceptar.

Interrumpen al usuario, evitan que el usuario haga otras cosas.

¿Qué sucede si quiere copiar y pegar algo de la ventana principal? ¿Qué sucede si quiere copiar el mensaje en el cuadro de diálogo modal? ¿Qué pasa si no importa.

Basta con comparar diálogo de búsqueda de IE vs Firefox

Comparar IE de "¿Quieres que recordemos esta contraseña para usted?" a Firefox

+5

El cuadro Buscar de IE me vuelve loco ahora que estoy mimado con los FF. – Karl

4

Una de las razones por las que no me gustan es porque muestran información en serie (una gran cantidad de información a la vez) y no paralela (toda la información que necesita ver a la vez), paralela le permitirá al usuario elegir lo que quiere mirar donde, como en la serie, prácticamente los obliga a elegir una opción.

Además, el hecho de que rompen el flujo de control de un usuario (por ejemplo, roba el foco del objeto que está trabajando) que realmente no me gusta hacer. Entonces, en efecto, el usuario simplemente presionará OK para que puedan volver a lo que estaban haciendo e ignorar la información en el cuadro de diálogo.

Recuerda que todavía los necesitas en algunos casos.

6

En una aplicación de estilo consumidor, son más o menos inútiles; los usuarios no las leen, aprenden a descartarlas y, cuando las LEYEN, generalmente se confunden. Creo que un diálogo Sí/No/Cancelar es un diseño de IU totalmente vago. El cuadro de diálogo "los botones dicen lo que hacen" es un poco mejor, porque el usuario no tiene que leer mucho.

Dicho esto: en aplicaciones de intranet/"empresa" de datos críticos, son más o menos necesarias para confirmar acciones destructivas o para verificar la cordura flujos de trabajo no estándar que pueden permitirse pero no recomendar.

Por lo tanto, no creo que sean conceptualmente "malvados", pero la mayoría de las veces, el resultado de un mal diseño de IU.

+0

Sí. Son tolerables para confirmar las elecciones peligrosas que podría haber hecho por error, o para solicitar autorización para tales elecciones. Solo deberían aparecer cuando hayas hecho algo sospechoso. –

5

Son malvados porque violan el principio básico de que se supone que el usuario puede dirigir la acción del software. Los diálogos modales (la forma diabólica de los cuadros de diálogo en general) limitan al usuario a una sola acción.

Algunas respuestas parecen entender erróneamente que se trata de una ventana emergente que pregunta, p. confirmación del usuario Esto podría lograrse sin atar toda la aplicación o la computadora; es este comportamiento al que la gente se opone.

En algunos entornos, los cuadros de diálogo modales solo limitan al usuario en el contexto de una sola aplicación (o tal vez menos). Los diálogos modales realmente malos evitan que el usuario haga algo más en todo el sistema operativo (por ejemplo, Windows).

2

Personalmente creo que depende completamente de cómo se hace.

Intente copiar 10 archivos donde cada archivo existe en el directorio de destino, hágalo usando Windows Explorer.

Es un diálogo modal único para cada archivo realmente la respuesta correcta en una operación de este tipo. Sé que tienes "Sí a todos", pero todo el sistema de bucle debería haberse construido de forma diferente. Debería haber reunido todos los archivos que existen en una gran lista y preguntó una vez "¿Qué quieres hacer con estos archivos?", Y luego dejar que decida por cada archivo de la lista qué hacer antes de hacer clic en Aceptar y reanudar la operación .

Y muchas veces los cuadros de diálogo solo interrumpen el flujo de trabajo normal.

Y sí, las personas no leen los cuadros de diálogo. Así que un consejo de oro si debe usar un cuadro de diálogo es volver a redactarlo.

En lugar de "¿Desea eliminar esta fila en la base de datos?", Intente redactarla para que pregunte (pero esto no está bien redactado) "¿Desea no eliminar esta fila en ¿la base de datos?" De esta forma, si solo presionan Sí, que es la respuesta típica de un usuario que solo quiere seguir adelante, terminarán sin hacer nada.

+1

No invertiría la pregunta en un cuadro de diálogo modal. Hacer que el usuario piense es realmente malo para la usabilidad. Si los usuarios pueden obtener exactamente lo que quieren sin pensar, has ganado. – Pyrolistical

+0

Eso también agregará otra pulsación al comando si la gente sabe lo que dice el cuadro de diálogo y necesita eliminar la fila de todos modos: Del-> Entrar vs Del-> Flecha derecha/izquierda-> Intro. –

+0

Sin mencionar la posibilidad de que el usuario realmente quiera * no * eliminar la fila (si no hay tal posibilidad, entonces ¿por qué está pidiendo confirmación?), Entonces hacen clic en "no" ... y se borra. Señal de llamada telefónica del cliente cabreado. –

3

No recuerdo dónde vi esto primero, pero una mejor aproximación a un diálogo modal a menudo es para permitir una función de "deshacer" fácil de encontrar y usar. Windows Explorer realmente hace ambas cosas cuando elimina un archivo. Solicita confirmación (diálogo modal), luego, inmediatamente después de eliminar el archivo, el menú Edición tiene una opción "Deshacer Eliminar". simplemente una forma simple de acceder a la Papelera de reciclaje, pero en este caso, Microsoft realmente podría haber eliminado el diálogo.

El punto es que a menudo puede prescindir del diálogo con un poco de pensamiento y tal vez un poco de código adicional, pero es una opción demasiado fácil para un perezoso, o quizás, más generosamente, un tiempo limitado desarrollador.

Dicho esto, a veces realmente quiere un diálogo. Piense en todas las opciones en un diálogo de Imprimir típico. ¿Qué impresora? Todas las páginas, o solo algunas? Cuantas copias? No sé cómo lo haría sin un cuadro de diálogo ...

+0

Es fácil deshacerse de un cuadro de diálogo de impresión. Cuando el usuario acierta imprime la vista del documento cambia a una vista previa de impresión y aparece un panel de opciones de impresión en el lateral. El usuario puede establecer las opciones y presionar Imprimir y las cremalleras del panel. El usuario puede editar el documento mientras cambia las opciones. – Pyrolistical

+0

@Pirolística: de acuerdo. El diálogo de impresión estándar es otro caso más de un programa que le hace preguntas al usuario cuando el programador cree que necesita la información, no necesariamente cuando el usuario se preocupa por proporcionarla. Dado que generalmente hay algún tipo de impresora primera/predeterminada, puede imprimir ... – Shog9

+0

Sí "Imprimir" si hace clic en el icono Imprimir en la barra de herramientas – Pyrolistical

21

Las mejores IU son modales. Como son los peores.

Una interfaz de usuario modal, independientemente de si está construida desde cuadros de diálogo, botones de barra de herramientas o mensajes de texto, solo es deseable siempre que cada modo coincida con las expectativas del usuario que realiza la transición. Cuando el programa pasa a un modo inesperadamente ... o el modo requiere que el usuario posea información que no tiene disponible ... entonces causará dificultades al usuario, ya sea forzándolo a volver a un modo anterior o adivinar el acción apropiada con resultados potencialmente indeseables.

Una interfaz de usuario no modal es un conjunto completo de herramientas. Algunos son relevantes para el trabajo en cuestión, otros no. Un usuario debe tener suficiente habilidad tanto para elegir las herramientas correctas como para aplicarlas de la manera correcta. Si bien una IU no modal nunca puede ser tan óptima como una buena UI modal (la herramienta adecuada para la tarea actual que ya se tiene a mano), tampoco puede ser tan subóptima como una IU modal mala (la herramienta incorrecta para la tarea actual golpeando sus dedos descuidados).

Diseñar una buena interfaz de usuario modal puede ser una tarea tremendamente difícil para aplicaciones no triviales, especialmente para programas de propósito general destinados a ser utilizados por una amplia variedad de usuarios para una gama más amplia de propósitos. Los sistemas de menús y los cuadros de diálogo intentan cerrar la brecha, permitiendo pequeñas secciones modales específicas de la tarea en una aplicación no modal más grande.Sin embargo, ninguno se adapta particularmente bien, y el mal uso y el uso excesivo los han dejado con una mala reputación, a menudo visto como el primer refugio del programador perezoso. Los cuadros de diálogo en particular se usan más como un medio de forzar a los usuarios a la idea de un programador (o diseñador) de cómo se debe usar , o tomar decisiones de diseño difíciles y manipular errores en el usuario, en lugar de hacerlo por su nombre. objetivo de la comunicación

De hecho, el auge de las aplicaciones web ha traído estas tendencias a la superficie en los foros numerosas, grupos de noticias, sitios y Q & A como éste, como programadores acostumbrados a escribir la lógica de ultra-lineal que solicita a los usuarios de entrada cuando sea necesario por el programa en lugar de cuando estén disponibles para el usuario ... se ven forzados a un sistema donde los usuarios pueden navegar de forma no lineal, y pueden ver cualquier intento de restringir esta libertad como una molestia pintoresca para ser subvertida en lugar de un mal necesario. Los lamentos quejumbrosos de estos pobres codificadores hacen eco en toda la red mientras sus intentos de forzar este crudo comportamiento modal hacia un sistema no modal se derrumban a su alrededor. Para aquellos de nosotros que hemos sufrido durante mucho tiempo bajo sus "diálogos" crueles, de hecho es una melodía preciosa.

+0

Llegué a esta pregunta pensando que modal dialog = perezoso programador. Me voy iluminado. –

+0

Pero el último párrafo podría usar una simplificación completa de la gramática. ¿Quién es el sujeto de "bien podría ver", no tengo idea, aunque creo que entiendo algo su punto expresado allí, es decir, que el diálogo modal = programador perezoso. –

3

Noboy los lee y ellos interrumpen el flujo del programa. A menudo, cuando se utilizan como notificación de error, son el precursor de una falla del programa. Cuando el usuario se da cuenta de lo que está sucediendo, el mensaje se va y se les deja recordar o inventar el mensaje lo mejor que pueden.

17

Antes de leer mi respuesta, debe leer atentamente el siguiente mensaje en su totalidad. Todos los procesos, subprocesos, tareas e hilos se suspenden indefinidamente en espera de su respuesta. Y, una vez que comprenda completamente el mensaje, y posiblemente acepte algunas cuestiones legales, y todas las implicaciones de todo esto, entonces, y solo entonces, podrá continuar.

+2

Hmmm. No creo que nadie esté realmente leyendo mi publicación. Parecen omitirlo como si quisieran que se vaya o algo así. Tal vez, hay cosas más importantes que hacer. –

+0

cuidado. Creo que es posible que haya pulsado la tecla Intro un poco precipitadamente allí. –

+3

Manera muy creativa de brindar una excelente respuesta. 'votos ++;' – ChiefTwoPencils

Cuestiones relacionadas