Combobox

Un combobox combina un input de texto con una lista filtrable de opciones. Es la elección preferida cuando hay muchas alternativas y la persona puede escribir para encontrarlas más rápido.

Uso

Cuándo usar combobox

  • La lista de opciones supera lo que un radio group o un dropdown puede mostrar cómodamente.
  • Las personas conocen el valor que buscan y escribir es más rápido que recorrer la lista.
  • El conjunto de opciones puede crecer o cambiar con el tiempo.

Cuándo no usarlo

  • Hay pocas opciones fijas y visibles: usa radio group o dropdown.
  • La persona necesita comparar varios valores a la vez: usa list o tabla.
  • Se requiere entrada libre sin lista sugerida: usa input.

Comportamiento

Clearable

Cuando la persona puede limpiar rápidamente la selección, activa clearable. Útil en filtros y campos opcionales.

Estricto vs freeform

Por defecto el combobox acepta valores libres además de las opciones sugeridas. Activa disableFreeSolo para restringir el valor a las opciones del catálogo (si la persona sale del campo con un valor inválido, se limpia).

Variantes

Estado searching

  • Cuando la fuente de opciones es remota, muestra un estado de carga dentro del popover (ej. un texto 'Buscando…' o un spinner inline) y un mensaje claro cuando no hay coincidencias.
  • Si no hay coincidencias, ofrece acciones: crear el valor o limpiar la búsqueda.

Accesibilidad

Label y descripción

  • Todo combobox debe tener un label visible o aria-label.
  • Si hay placeholder, no lo uses como reemplazo del label: el placeholder desaparece al escribir.
  • Conecta errores cerca del control con aria-describedby apuntando al mensaje.

Teclado

  • Flecha abajo abre la lista y mueve la opción enfocada hacia abajo.
  • Enter selecciona la opción enfocada; Esc cierra la lista sin cambiar el valor.
  • Tab cierra la lista; el valor escrito se mantiene.

Contenido

Placeholder y opciones

  • El placeholder describe la acción esperada, no el formato del dato.
  • Las opciones deben ser cortas, sin contexto redundante.
  • Ordena por relevancia o alfabéticamente, no por orden de creación.