2009-09-12 10 views
8

¿Qué ocurre cuando el número de botones en una aplicación crece más allá de la zona de confort de las UI de la barra de herramientas? Actualmente me estoy acercando a la marca de 1000 botones y no hay signos de desaceleración. La interfaz de usuario actual de la barra de herramientas con pestañas se está estirando mucho más allá de la zona de confort ahora.Ideas de IU para cuando fallan las barras de herramientas

He añadido una barra de herramientas dinámica (ventana emergente con doble clic) en la que escribe una frase clave y la barra de herramientas está poblada con los botones que puede haber estado buscando. Esto es bastante similar a muchas IU de línea de comandos que tienen algún tipo de mecanismo de autocompletado. También es una solución bastante anticuada.

¿Alguna vez se encontró con una IU que resolvió este problema de una manera única/sorprendente/efectiva? ¿Las UI que hacen un seguimiento de las acciones recientes de los usuarios realmente proporcionan un acceso más rápido a las herramientas necesarias, o lo hacen con demasiada frecuencia? Qué tan importante es permitirles a los usuarios personalizar la interfaz de usuario (en mi experiencia, muy pocas personas realmente lo hacen, pero lo sienten muy fuertemente).

(disculpas si esto va más allá del alcance de SO, este es el único lugar que conozco que proporciona respuestas rápidas y útiles)


Editar: subido una captura de pantalla de un típico tabuladores barra de herramientas de la mina: Grasshopper Toolbar http://en.wiki.mcneel.com/content/upload/images/grasshopperUIExample.png

+6

felicitaciones por iniciar un debate abierto en modo CW ... No puedo contribuir de manera constructiva, salvo para opinar que a los 1000 botones abandonó la zona de confort hace un * muy largo * tiempo ;-) – RBerteig

+3

Yo no Creo que esto está más allá del alcance de SO. Sin duda, no tiene una sola respuesta correcta, pero preguntas como esa pueden ser muy útiles. E hiciste CW directamente, lo que es probable que te atraiga al menos un * pequeño * para la multitud. – paxdiablo

+0

Buenos iconos que tienes. Genial con los diferentes colores para cada categoría. –

Respuesta

8

Eres bien fuera de la zona de confort, a través de la zona de incomodidad, y la mitad de la zona que tiene-a-caliente-poker-empujado arriba-su-parte trasera :-)

Usted Realmente debería estar pensando en la barra de herramientas como una barra de velocidad, en algún lugar donde el usuario puede ir a hacer operaciones comunes con acciones mínimas. Además del Gimp con su infame UI, no puedo entender ninguna aplicación que necesite cerca de 1,000 operaciones comunes dignas de usar en una barra de velocidad.

Quizás deba replantearse lo que está proporcionando.

Algunas de las aplicaciones de Microsoft lo hacen bastante bien, dividen sus barras de herramientas en secciones (por ejemplo, dibujo, estadísticas, formateo) y permiten al usuario decidir qué secciones se muestran. De esta forma, el usuario decide si quiere un espacio de trabajo mínimo o si desea que toda la mitad superior de su espacio de trabajo sea ocupada por barras de herramientas.

Las operaciones no comunes siempre deben estar disponibles por menús de todos modos, ya sean comunes (código fijo), elegidas por el usuario (configurando esas secciones) o "inteligentemente" mostradas por el programa (basadas en utilizar).

Esto es lo que consideraría un buen enfoque.

  1. Tiene todas las operaciones accesibles desde los menús dividiéndolos en secciones (operaciones dentro de una sección debe estar relacionada al menos vagamente). Supongamos por ahora que puede tener 30 secciones de 30 operaciones cada una (poco probable, lo sé, pero simple para esta discusión).

  2. Disponen de una sección especial para operaciones adaptativas. Con eso me refiero a una sección que completará el programa con operaciones basadas en la frecuencia con la que el usuario las usa. Para hacer eso, necesita mantener un registro de cuántas veces el usuario usa una operación (cada usuario tiene su propio conteo, por supuesto, ya que su perfil de uso será diferente).

  3. Permitir al usuario configurar qué secciones se muestran en las barras de herramientas, incluida la adaptable.Esto les da control.

  4. La sección de adaptación debe rellenarse con la operación más común , siempre que no aparezca en otra barra de herramientas que ya sea. De esta forma, el usuario puede acceder a las operaciones que se usan con mayor frecuencia y que aún no se encuentran en una de sus barras de herramientas elegidas.

que me parece la solución más flexible, dando al usuario el control total sobre el uso de su pantalla de bienes raíces.

+0

Bueno, estos botones son para comandos como "Línea entre 2 puntos", "Circula a través de 3 puntos", etc. Muchas aplicaciones CAD modernas tienen cientos, sino miles de herramientas para manipular la geometría. OMI estamos todos fuera de la zona de confort y aún no he visto a alguien que haya resuelto este problema en una forma moderna (es decir, no estoy obligado a soltar el mouse para escribir algo en el teclado), de manera satisfactoria. –

+0

Considere esto: ¿alguno de esos comandos de ejemplo es relevante si el usuario ya tiene menos de 2 puntos seleccionados? ¿Por qué mostrar esas opciones hasta que el usuario tenga realmente los elementos necesarios? En cambio, haga que las opciones sean más sensibles al contexto, mostrando solo aquellas relevantes para lo que realmente está sucediendo. – Amber

+0

@David, no tiene que soltar el mouse para hacerlo: hay menús en los que puede poner sus comandos. Por ejemplo, un menú de "Dibujar" de nivel superior podría proporcionar las 1,000 operaciones con 10x10x10, un tres- secuencia de nivel profundo (por lo tanto, cuatro clics de ratón). – paxdiablo

4

Creo que la pregunta más importante aquí es "¿qué tipo de flujo de interacción buscan los usuarios típicos?" Eche un vistazo a cómo interactúan realmente sus usuarios con su programa tal como está: ¿hay ciertos patrones en cómo acceden a los diversos elementos que tiene en las barras de herramientas?

Por ejemplo, ¿se utilizan con mucha frecuencia algunos de los elementos de la barra de herramientas, mientras que a otros se accede rara vez y, en general, se accede a ellos junto con otras funciones similares? Tal vez los elementos anteriores pertenecen a la barra de herramientas, mientras que los últimos elementos se adaptan mejor a un tipo de conjunto de paletas que se pueden abrir en una barra lateral.

¿Hay alguna manera de que pueda hacer que algunas barras de herramientas sean más sensibles al contexto? Parece bastante improbable que todos los más de 1000 elementos de la barra de herramientas sean relevantes para un estado particular de la aplicación. En lugar de mostrar todas las acciones posibles, solo muestre aquellos para los que se cumplen los requisitos previos: si tiene una opción para hacer una línea a través de dos puntos, no lo muestre hasta que realmente se seleccionen 2 puntos.

La clave a recordar es que las interfaces de usuario deben ser impulsadas por lo que el usuario necesita hacer y ver en cualquier punto dado en el tiempo.

+0

@Dav, exactamente. Supongo que solo el 5% (si es así) de las herramientas disponibles son utilizadas con frecuencia por cualquier usuario. Desafortunadamente no tengo mecanismos para medir esto realmente, aparte de lo que veo durante los talleres. Por el momento mi interfaz de usuario es completamente plana; no hay una jerarquía que haga que ciertos elementos sean menos importantes que otros. Por supuesto, puedo presentar una jerarquía, pero siempre me equivocaré al menos para algunas personas. ¿Conoces una aplicación que construya sus propias capas mientras la usas? –

+1

Una opción para "crear su propia estratificación" es algo así como una barra lateral de "acciones usadas con frecuencia" o "acciones usadas recientemente", algo que se actualizaría por sí solo en base a criterios simples (el primero solo contaba las invocaciones de un elemento determinado, este último solo mantiene una lista de historial). Otra opción es permitirles a los usuarios personalizar sus barras de herramientas; esta es una característica bastante común en aplicaciones maduras y probablemente valga la pena investigar. Además, podría considerar (si es posible) intentar realizar algunas pruebas reales del usuario: haga que algunos usuarios voluntarios entren y permita que observen su funcionamiento. – Amber

2

¿Puede describir lo que está haciendo un poco más? De los sonidos de las cosas, es una herramienta de CAD.

En este caso, puedo hacer algo un poco diferente pero también común.

En primer lugar me sugeriría hacer todo tan sensibles al contexto como sea posible, y luego, hacer esto: funciones

  1. lugar muy comunes y generales en la parte superior
  2. Crear una totalmente nueva ventana para la gestión de la resto de los botones

La nueva ventana se ubicará en el segundo monitor del usuario. Puede ser grande y extravagante, y contener búsquedas e iconos grandes para moverse dentro de él. Específicamente, sin embargo, también puedo agregar una habilidad para que se navegue muy rápido, usando el teclado numérico.

Puede detectar, en la ventana principal, cuando el teclado numérico tiene foco y se está utilizando, y lo toma como entrada para buscar comandos específicos en la ventana de desplazamiento. Quizás pueda agruparlos a todos, de modo que existen 100 funciones por grupo, y para las funciones de tipo X, comienza con un "9". No conozco su base de usuarios, y esto solo sería apropiado si las personas comienzan a convertirse en expertos en el software, pero creo que no es un mal modelo en general (una ventana a un costado para administrar todas estas acciones).

+0

Silky, edité la publicación original y agregué una captura de pantalla de una barra de herramientas típica. De hecho, es una aplicación como CAD. –

+0

David: Lo veo. Muy agradable. Todavía creo que cambiarlo a una nueva ventana, a-la photoshop y amigos, será el mejor enfoque. Al hacer un atajo a través del teclado numérico se agregaría la velocidad adicional y el acceso fácil que creo que estás buscando. Además, una cosa más. Un enfoque ligeramente único sería tener el menú navegable CON el mouse, pero SIN hacer clic. Luego el usuario puede mantener su selección, pero desplace el cursor sobre los botones y le indicará que realice esa acción, y puede confirmar con el teclado. –

+1

Otra opción para navegación sin clics son los menús radiales. – Amber

3

Enfoques de Adobe Photoshop (no puedo decir "resuelve") este problema a través de paletas de controles.Las paletas individuales pueden flotar en la pantalla, estar acopladas a la ventana y pueden tener pestañas dentro de ellas con paletas adicionales. Además, la mayoría de los palets pueden tener un menú contextual con acceso a meta-configuraciones para el mismo palet.

También tiene una serie de elementos clave en una barra de herramientas tradicional, algunos de los cuales cambian dinámicamente a medida que cambia el contexto. Por ejemplo, cuando comienza a estirar una capa, aparece un cuadro donde puede escribir una dimensión exacta. Cuando cambia las herramientas, la barra de herramientas cambia para incluir controles que se relacionan solo con esa herramienta. Etcétera.

Una cosa buena de este enfoque es que muchos usuarios pesados ​​tienen monitores múltiples y, a menudo, es práctico y útil hacer flotar muchas paletas en un segundo monitor.

Creo que funciona en parte porque los controles se recogen de forma sensata en las paletas para que los controles relacionados estén juntos.

Estoy seguro de que tiene un límite superior para el número total de controles, sin embargo.

+1

Adobe CS4 UI es definitivamente un gran paso adelante de las versiones anteriores. Y hay muchas cosas que me gustan, pero la posibilidad de descubrirlas no es una de ellas. Otro problema con este tipo particular de diseño es que es muy difícil para los programadores enchufables empujar sus propios botones en la interfaz de usuario existente. –

+1

Para una mejor detección, probablemente tenga que mirar Adobe Lightroom como el mejor ejemplo. Todavía no le encantan los monitores múltiples, pero es un buen ejemplo del resultado de la investigación de las necesidades de flujo de trabajo de una comunidad de usuarios específica. Y a pesar de ese enfoque, todavía es notablemente fácil encontrar las características sin recurrir a la capacitación o los manuales. – RBerteig

1

Puede considerar buscar técnicas de sitios web, ya que los sitios web con cientos de páginas son más comunes que las aplicaciones con cientos de botones.

Una solución muy similar a la de una web es agregar un cuadro de "comando de búsqueda". Requiere que el usuario use el teclado, pero si indicas bien los comandos, no tendrán que memorizar los nombres de todos los comandos, solo lo que hacen.

Una posibilidad es hacer que la barra de herramientas de tabulación sea jerárquica. p.ej. en la captura de pantalla que mostró, Analysis, Freeform, Primitive y Util serían pestañas debajo de Surface.

Para descubrir cómo categorizar las cosas, puede intentar obtener algunos usuarios típicos y hacer las pruebas card sorting. Puede ser un poco complicado con 1.000 tarjetas, pero descubrirá cómo los usuarios quieren agrupar los botones.

Las sugerencias de Dav de una barra de herramientas contextual también me suenan bien.

1

Una alternativa que he visto, en los programas GIS, es abandonar poner esto en la parte superior de la ventana. Por ejemplo, ArcGIS pone los (muy pocos) "comandos" bastante comunes en el menú/barras de herramientas, pero luego tiene una ventana acoplada completa en su UI (que se puede activar y desactivar) que proporciona una vista en árbol de todos los disponibles comandos (llaman a este ArcToolbox - no demasiado creativo de un nombre de su parte, pero tiene sentido para sus usuarios).

Existen algunas ventajas: la principal es que puede tener una estructura jerárquica y categorizada de comandos que es bastante rápida de navegar. Además, la capacidad de pluginización se vuelve bastante sencilla, ya que los complementos solo pueden agregar comandos al árbol o crear nuevos nodos de árbol.

No es tan elegante, en cierto modo, pero parece ser bastante fácil de manejar para la mayoría de las personas.

+0

Parece un buen enfoque. Tengo una sensación de marrón oscuro. Terminaré escribiendo 4 UI diferentes para esto y lo haré todo opcional ... –

+0

Me quedaría con una UI. Tengan una sola IU, ya que eso significa que los usuarios tendrán una UI (con suerte simple) para aprender y tratar. Respaldar una sola opción es MUCHO más fácil que tratar de admitir múltiples opciones, especialmente si tiene> 1000 comandos. Ya estás muy, muy lejos: trata de hacerlo lo más consistente posible. –

2

El usuario tiene dos manos. Uno generalmente en el teclado, para las teclas modificadoras y tal, y el otro en el mouse. Un usuario de CAD probablemente tenga un mouse muy lindo con 5 o 6 botones.

Creo que me gustaría una interfaz diseñada para aparecer en la posición actual del mouse. No solo un menú contextual con el botón derecho, sino que rodea el mouse con un menú de texto, una barra de herramientas de iconos o tres. Quizás dos menús contextuales. Esto no tiene que ser radial, aunque radial se ve bien. Me gusta radial estallado, con un gran agujero en el centro para que el área alrededor del mouse permanezca visible. Pero la interfaz podría ser rectangular y funcionar bien.

Luego utilizaría los dedos de la mano izquierda en el teclado. Asigne 12345 a funciones en una caja de herramientas/menú. Asigne qwert para otra caja de herramientas/menú y asdfg y zxcvb. Dale a la barra espaciadora una función importante y, por supuesto, Ctrl, Alt, Shift e incluso Bloq Mayús.

A continuación, utilice las secuencias de estas teclas de mano izquierda de fácil acceso para seleccionar funciones. asdf y qwer deberían obtener las cosas más importantes. Para el usuario más nuevo, cada pulsación de tecla debe actualizar la visualización del menú para que pueda ver lo que está sucediendo. Para el usuario experimentado, la pantalla nunca debería ralentizar la entrada del comando.

Ah, y tienen una forma rápida de repetir el último comando y quizás el último segundo y quinto comando. Tal vez tenga una última pila de comandos visible y use los números del 1 al 5 para mover un comando diferente a la parte superior de la pila y otra tecla fácil de tocar como la tecla de retroceso para ejecutar el comando superior en la pila.

Por ejemplo, el usuario debería poder presionar la barra espaciadora para abrir los menús y qqrwe para seleccionar la función y hacer que se ejecute en ese momento.

Por supuesto, el mouse se puede usar para navegar y seleccionar comandos. Pero creo que el método de teclado daría la mejor velocidad, al igual que vi como lo hace un editor de texto. Creo que tener que mantener presionadas las teclas Ctrl Alt y Shift y presionar las teclas, todo con la mano izquierda conduce a calambres en los dedos.

+0

Hola Zan, puedo decirte que eres un hombre que sabe lo que le gusta :) Agradezco la precisión de tu sugerencia y estoy de acuerdo con gran parte de ella. Hay un par de cosas que debo tener en cuenta. 1) Muchos usuarios no usan mi software lo suficiente para poder aprender los 50 métodos secretos de acceso directo. 2) Me estoy ejecutando como un complemento dentro de una aplicación más grande que ya tiene muchas convenciones y teclado. Mi aplicación finalmente tendrá que ejecutarse en Windows y MacOS, incluidos molestos teclados foráneos. Creo que al menos trataré de explicar el enfoque del menú 'radial'. Es demasiado bueno para no hacerlo. –

1

David,

Este post es bastante viejo, pero pensé que me gustaría responder en cualquier forma que a mí un ávido usuario de su software, saltamontes, así como el desbordamiento de pila. Cuando uso componentes en su software, generalmente me encuentro en dos modos distintos: buscando componentes que ya conozco, o averiguando qué otros componentes están disponibles que podrían realizar lo que estoy tratando de lograr.

Cuando uso componentes que ya conozco el 99% de las veces termino usando la función donde puede hacer doble clic en el lienzo y escribir todo o parte del nombre del componente. Incluso cuando estoy buscando nuevos componentes, tiendo a usar esa característica más que la barra de herramientas. Digamos que sé que quiero dividir una línea, pero no sé dónde está el icono. Simplemente ingresaré el nombre "Divide" para buscar todos los comandos con "Divide" en su nombre.

Si bien la barra de herramientas es útil para ver una vista general de lo que está disponible. Terminé pasando mucho tiempo arrastrando componentes solo para ver qué entradas aceptan. Por lo tanto, creo que sería útil hacer que la barra de herramientas sea más dinámica y sensible al contexto. Por ejemplo, si el usuario selecciona un componente que puede generar puntos, me gustaría ver una barra de herramientas separada que solo muestra los componentes que pueden tomar puntos como entrada. Autodesk Revit tiene una funcionalidad como esta donde, por ejemplo, si un usuario selecciona un muro, se le presentarán todas las herramientas relacionadas con la modificación de muros.

Con su software esto sería fácil, ya que podría simplemente hacer una referencia cruzada de la salida del componente seleccionado actualmente con las entradas de todos los componentes disponibles para generar la pestaña dinámica. En última instancia, esto permitiría a los usuarios responder rápidamente a la pregunta "¿dónde puedo ir desde aquí?" Al seleccionar componentes individuales en su definición actual.

0

Algunas etiquetas y consejos sobre herramientas (y la agrupación lógica!) pueden ser de gran utilidad: consulte la interfaz de usuario en Office 2007/2010; En realidad es realmente bueno (la gente se queja porque es diferente de lo que era antes).

Ahora imagina esa misma interfaz de usuario sin las etiquetas en los botones ...

sólo tiene que añadir etiquetas a los botones y agruparlos en menús desplegables, y la interfaz de usuario será grande!

5

estos botones son para comandos como "Línea entre 2 Puntos", "Círculo a través de 3 puntos", etc., etc. Muchas aplicaciones CAD modernos han cientos, si no miles de herramientas para manipular la geometría

Esto se destaca, para mí, como la gran falla. Tal vez es por eso que siempre he encontrado que los programas CAD son increíblemente difíciles y frustrantes de usar.

Así es como lo miro. Antes de CAD, ¿qué hicimos? Lápiz y papel, con regla, brújula, triángulos, t-cuadrados, curvas francesas, etc. Entonces la transición a la computadora se hizo haciendo de cada herramienta una "herramienta". Luego, para agregar más funciones, agrega más "herramientas".

Pero eso es al revés. No usé una brújula porque tenía una gran interfaz de usuario, en realidad es un poco torpe, sino porque proporcionaba un círculo perfecto. Si pudiera dibujar un círculo perfecto con mi lápiz a mano alzada, ¡nunca alcanzaría la brújula!

Bueno, mi computadora puede dibujar un círculo perfecto, y el concepto mismo de "herramientas" es irrelevante para él. Vea algunos videos antiguos de interacción hombre-computadora, antes de saber qué son las "barras de herramientas". En RALL'S GRAIL, si querías borrar algo, lo garabatearías. Si desea dibujar un cuadro con la esquina cortada, dibuje un cuadro y luego corte la esquina. En el Bloc de bocetos de Ivan Sutherland, si quiero trazar una línea entre dos puntos, trazo una línea entre dos puntos, y la computadora entiende la restricción que la línea debe estar entre esos dos puntos. Estos no son que difícil de descifrar para una computadora.

no sé qué cosas hace 1000 su programa de CAD, pero yo creo que probablemente caen en un número relativamente pequeño de categorías:

  • dibujar cosas nuevas
  • estiramiento/deformación cosas
  • mover cosas (a menudo con uno/eje/lado del punto/etc fijo)
  • eliminar cosas
  • ...

Entonces, ¿por qué necesito más que un puñado de herramientas? Si dibujo un círculo ondulado, es muy probable que quiera un círculo real. Déjame dibujar y descubrir lo que quiero. No me haga usar ninguna barra de herramientas.

Cuestiones relacionadas