Ir al contenido

Navegacion por Teclado

trud-calendar implementa navegacion por teclado siguiendo el patron WAI-ARIA grid. El soporte de teclado esta siempre habilitado — no necesitas ninguna prop.

TeclaAccion
Flecha Izquierda / Flecha DerechaMover foco entre dias
Flecha Arriba / Flecha AbajoMover foco entre semanas
HomeFoco en el primer dia de la fila
EndFoco en el ultimo dia de la fila
Enter / SpaceAbrir slot (crear evento)
TabMover a la siguiente region enfocable
TeclaAccion
Flecha Izquierda / Flecha DerechaMover foco entre columnas de dia
Flecha Arriba / Flecha AbajoMover foco entre franjas horarias
HomeFoco en el primer slot de la fila
EndFoco en el ultimo slot de la fila
Enter / SpaceAbrir slot (crear evento) o hacer click en evento enfocado
TabMover entre regiones (toolbar → grilla de tiempo → eventos)
TeclaAccion
Flecha Arriba / Flecha AbajoMover entre items de eventos
HomeFoco en el primer evento
EndFoco en el ultimo evento
Enter / SpaceClick en evento enfocado
TeclaAccion
Flecha Izquierda / Flecha DerechaMover entre tabs de vista
HomeFoco en el primer tab
EndFoco en el ultimo tab
TeclaAccion
EscapeCerrar el popover

El calendario usa el patron roving tabindex. Solo una celda en cada grilla tiene tabIndex={0} a la vez — todas las demas tienen tabIndex={-1}. Esto significa:

  • Tab mueve el foco dentro de la grilla (aterriza en la celda activa)
  • Las flechas mueven el foco dentro de la grilla
  • Tab de nuevo mueve el foco fuera de la grilla

El calendario usa roles ARIA semanticos:

  • Slots de hora de la grilla de tiempo: role="gridcell"
  • Items de agenda: role="listitem" dentro de role="list"
  • Botones de vista del toolbar: role="tab" dentro de role="tablist"
  • Eventos: role="button" con activacion por teclado

Todos los elementos enfocables tienen indicadores de foco visibles usando estilos focus-visible, asegurando que los usuarios de teclado siempre sepan que elemento esta enfocado. El anillo de foco usa la variable de color --trc-primary.