Product Craft Bible
Menús Contextuales y Selección
Inicio Componentes UI Menús Contextuales y Selección
Componentes UI

Menús Contextuales y Selección

8 reglas Apple HIG "Contextual Menús" · Microsoft Fluent 2 ContextualMenu · Nielsen Norman Group 2023 · Linear context menú · Figma right-clickRadix UI Floating UI · Notion text toolbar · Apple iOS text selection · Tiptap bubble menú · Google Docs research 2019Google Drive bulk action bar · Linear issue multi-select · Apple Files app iOS · Microsoft Fluent CommandBarApple HIG UIContextMenuInteraction · Android Material 3 Contextual Action Mode · Figma Mobile app · Google Material 2022
126

Menús Contextuales y Selección

8 reglas
1118

Right-click: canal secundario, nunca primario

El menú contextual es una capa de eficiencia para usuarios avanzados, no el canal de descubrimiento principal. Las acciones críticas deben existir también en la UI visible; el right-click las duplica como atajo. Si una acción solo existe en el menú contextual, el 60–70% de usuarios móviles y touch-first nunca la encontrará. Más de 9 ítems sin separadores paraliza la decisión; agrupamiento semántico en bloques (lectura / edición / destrucción) reduce el tiempo de escaneo hasta un 40%.

Apple HIG "Contextual Menús" · Microsoft Fluent 2 ContextualMenu · Nielsen Norman Group 2023 · Linear context menú · Figma right-click
Preferir
Duplicar ⌘D
Renombrar F2
Mover a...
Compartir
Bloquear edición
Eliminar archivo Del
Evitar
Duplicar
Renombrar
Mover a...
Compartir
Bloquear edición
Eliminar archivo
Preferencias de la app
Ir a configuración
Ayuda y soporte
Ver historial de cambios
Exportar como...
Accesibilidad
Reportar problema
Acerca de
1119

Floating toolbar: arriba del texto, fuera del camino

La toolbar flotante de selección de texto debe aparecer 8–12px por encima del extremo superior de la selección, centrada horizontalmente sobre ella. Posicionarla debajo tapa el texto seleccionado y obliga al usuario a mover el cursor para leer lo que quiere formatear. En escritura colaborativa, toolbars que tapan la selección aumentan los errores de re-selección en un 34%. Si no hay espacio arriba, aplicar flip y mostrarla debajo con una flecha invertida.

Radix UI Floating UI · Notion text toolbar · Apple iOS text selection · Tiptap bubble menú · Google Docs research 2019
Preferir
B
I
U

El diseño de interfaces requiere comprender profundamente cómo los usuarios perciben y procesan la información visual en pantalla.

Evitar

El diseño de interfaces requiere comprender profundamente cómo los usuarios perciben y procesan la información visual en pantalla.

B
I
U
1120

Bulk action toolbar: sticky, count explícito, acciones contextuales

Al seleccionar uno o más ítems de una lista o grid, debe aparecer una toolbar de acciones en masa que reemplaza o superpone el header. La selección sin feedback visual de "qué puedo hacer ahora" genera abandono. Mostrar el conteo exacto ("3 seleccionados") y acciones contextuales al tipo de ítem son los dos indicadores de calidad más importantes de esta interacción. Las mismas acciones genéricas para cualquier mezcla de tipos es el anti-patrón más frecuente.

Google Drive bulk action bar · Linear issue multi-select · Apple Files app iOS · Microsoft Fluent CommandBar
Preferir
3 seleccionados
Descargar ZIP
Mover a
Compartir
Eliminar
PNG
hero-image.png
2.4 MB · hace 2 días
PNG
banner-mobile.png
1.1 MB · hace 3 días
PNG
logo-dark.png
340 KB · hoy
PDF
brief-client.pdf
890 KB · hace 1 semana
Evitar
Seleccionados
Acción 1
Acción 2
Acción 3
PNG
hero-image.png
2.4 MB
PDF
brief-client.pdf
890 KB
MP4
demo-video.mp4
45 MB
PNG
logo-dark.png
340 KB
1121

Long-press en mobile: equivalente haptic del right-click

El long-press (300–500ms) es el canal contextual en touch; debe ofrecer las mismas acciones del right-click desktop pero simplificadas al contexto táctil. Disparar haptic feedback al inicio del menú confirma al usuario que el gesto fue reconocido antes de que el menú aparezca visualmente. Sin haptic, un 23% de usuarios repite el gesto creyendo que no funcionó. El menú debe ser bottom sheet nativo con preview del contenido, nunca un menú flotante de desktop adaptado.

Apple HIG UIContextMenuInteraction · Android Material 3 Contextual Action Mode · Figma Mobile app · Google Material 2022
Preferir
9:41●●●
Archivos recientes
hero-image.png
2.4 MB · Imagen PNG
Descargar
Compartir
Mover a carpeta
Eliminar
Evitar
9:41●●●
Archivos recientes
Abrir⌘O
Duplicar⌘D
RenombrarF2
Mover a ›
Compartir ›
Ver propiedades
EliminarDel
1122

Shortcuts visibles en el menú: columna derecha, acelerador subrayado

Mostrar el keyboard shortcut junto a cada acción en el menú contextual reduce el tiempo de aprendizaje de atajos un 40% comparado con documentación separada. El menú contextual es el lugar de descubrimiento natural: el usuario ya está haciendo la acción manualmente, y ver el shortcut en contexto crea el vínculo cognitivo. El acelerador (la tecla que activa la acción con el menú abierto) se marca subrayando esa letra en el label. En mobile, omitir la columna de shortcuts completamente.

Apple HIG "Keyboard Shortcuts" · Microsoft Fluent ContextualMenu KeyboardAccelerator · Radix UI DropdownMenu kbd slot · Fitts & Chi 2002 · Linear context menú
Preferir
Copiar
C
Pegar
V
Renombrar
F2
Duplicar
D
Mover a
Eliminar archivo
Del
Evitar
Copiar (Cmd+C)
Pegar (Cmd+V)
Renombrar (F2)
Duplicar (Cmd+D)
Mover a
Eliminar archivo (Delete)
1123

Submenús: máximo 2 niveles, delay 300ms, prohibidos en mobile

Los submenús añaden capacidad de organización pero cada nivel adicional aumenta la carga cognitiva exponencialmente. Más allá de 2 niveles el usuario pierde el contexto de dónde está en la jerarquía. El delay de 300ms antes de abrir el submenú previene aperturas accidentales al atravesar el menú con el cursor (diagonal movement problem); sin delay, el 15% de los usuarios abre submenús no deseados. La técnica "safe triangle" mantiene el submenú abierto mientras el cursor se mueve en diagonal hacia él.

Aza Raskin "Hoverboard" 2009 · Radix UI DropdownMenu safe triangle · Apple HIG submenu guidelines · Adobe Spectrum · Amazon navigation safe triangle
Preferir
Duplicar
Renombrar
Mover a
Proyectos
Activos 2026
Marketing
Archivados
Nueva carpeta
Eliminar
Evitar
Nivel 1
Mover a
Duplicar
Renombrar
Nivel 2
Proyectos
Archivados
Personales
Nivel 3
Activos
Marketing
...+12 subcarpetas
Mover a › Proyectos › Activos › Q1 2026, 3 ejes de cursor simultáneos
1124

Acciones destructivas: último lugar, separador, rojo, confirmación si irreversible

Las acciones que destruyen datos deben estar visualmente separadas del resto del menú, al final, en rojo, para que el usuario no las active por escaneo rápido o fat-finger. El color rojo reduce los clics accidentales en acciones destructivas un 27%. La confirmación inline (en el mismo menú, no modal) es más efectiva para acciones reversibles; para irreversibles, un popover anclado al ítem con botón rojo y botón neutro es el patrón correcto. Nunca usar modal completo para confirmaciones de menú contextual.

Apple HIG UIMenu .destructive · Microsoft Fluent "Danger zone" · Linear "Delete issue" · Intercom UX research 2021 · Radix AlertDialog
Preferir
Duplicar
Renombrar
Compartir
Eliminar archivo
¿Eliminar archivo?
Esta acción es permanente y no se puede deshacer.
Cancelar
Eliminar
Evitar
Eliminar
Duplicar
Renombrar
¿Seguro que quieres eliminar?
Se moverá a la papelera por 30 días.
No
Sí, eliminar
1125

Accesibilidad del context menú: ARIA, navegación por teclado, escape

Un menú contextual sin accesibilidad excluye a usuarios de teclado, lectores de pantalla y personas con discapacidades motoras. El patrón WAI-ARIA Menú es el contrato técnico: role="menú" con role="menuitem" y navegación por flechas. Sin esto, el menú es invisible para VoiceOver y NVDA. Escape debe cerrar el menú y devolver el focus al elemento trigger; Enter y Space activan el ítem enfocado; las flechas navegan con wrap circular desde el último al primero.

WAI-ARIA Authoring Practices 1.2 "Menú Pattern" · Radix UI DropdownMenu · Reach UI Menú Button · Apple VoiceOver · NVDA browse mode
Preferir
Menú accesible (focus en ítem 2)
Navegación de teclado
Navegar ítems
Home Primer ítem
End Último ítem
EnterSpace Activar
Esc Cerrar, volver focus al trigger
HTML semántico mínimo
<ul role="menú" aria-label="Acciones"> <li role="menuitem" tabindex="-1">Copiar</li> <li role="menuitem" aria-disabled="true">Pegar</li> <li role="separator" aria-hidden="true"></li> <li role="menuitem" class="destructive">Eliminar</li> </ul>
Evitar
Menú con divs genéricos sin ARIA
Duplicar
Renombrar
Bloquear edición
Eliminar archivo
HTML no semántico
/* Sin roles, sin teclado, sin focus */ <div class="menú"> <div onclick="dup()">Duplicar</div> <div onclick="del()">Eliminar</div> </div> /* VoiceOver: "group", ítems invisibles */ /* Teclado: Tab atraviesa toda la app */ /* Escape: no hace nada */
VoiceOver anuncia "group" sin describir los ítems. Un usuario de teclado no puede navegar sin mouse. Escape no cierra el menú.