Skip to content

Accessibility es

James Morris edited this page Jul 29, 2026 · 1 revision

Accesibilidad

🌎 Idioma: Españolver los 33 idiomas

LockedIn CLI es una broma, pero su accesibilidad no lo es. Una interfaz de terminal tan rica visualmente —wordmark con degradado, tarjetas con bordes, spinners braille, emojis— es genuinamente difícil de usar con tecnología de asistencia a menos que la diseñes para ello. Esta página explica qué hace la CLI, cómo activarlo y las buenas prácticas generales detrás de ello (útiles mucho más allá de este proyecto).

Los cuatro modos

Modo Opción Variable de entorno Qué hace
Lector de pantalla --accessible (--a11y, --screen-reader) LOCKEDIN_ACCESSIBLE=1, o TERM=dumb Texto plano lineal y limpio: sin bordes, sin ASCII art, sin movimiento del spinner, sin glifos decorativos; color apagado; prompt corto; puntos de referencia semánticos («Publicación:» … «(fin de la publicación)»).
Alto contraste --high-contrast (--hc) LOCKEDIN_HIGH_CONTRAST=1 Una paleta de alto contraste para baja visión: texto secundario blanco puro, acentos más brillantes, sin atenuado, acento sólido en vez del degradado de bajo contraste.
Baja distracción --low-distraction (--calm, --reduce-motion) LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1 Movimiento reducido (sin animación del spinner), sin emojis decorativos, color sólido y tranquilo — mantiene el diseño visual. Para reducir la carga cognitiva/sensorial.
Plano / monocromo --plain (--mono, --monochrome) LOCKEDIN_PLAIN=1, o NO_COLOR=1 Desactiva todo el color y conserva el diseño completo, los bordes y los emojis. Para terminales con poco soporte de color, registros o preferencia. Anula FORCE_COLOR.

Se combinan: --high-contrast --low-distraction te da una interfaz brillante, tranquila y sin emojis; un usuario de lector de pantalla en una terminal TERM=dumb obtiene el modo accesible automáticamente. Cuando dos modos entran en conflicto, gana el más restrictivo — el monocromo vence a una paleta de color, y el lector de pantalla reemplaza al modo plano.

lockedin --accessible post
lockedin --high-contrast
lockedin --plain post
LOCKEDIN_LOW_DISTRACTION=1 lockedin aura

Cambiar de modo dentro de una sesión: /a11y

No tienes que decidirlo de antemano. Dentro de la sesión interactiva, el comando /a11y es un panel de control real y funcional (la accesibilidad no es la sátira):

Escribe Resultado
/a11y Muestra el estado actual (activado/desactivado) de los cuatro modos
/a11y <modo> Alterna uno: screen-reader, high-contrast, low-distraction, plain (también valen alias como sr / hc / calm / mono)
/a11y reset Desactiva todos los modos

El estado siempre se muestra con una palabra activado/desactivado, nunca solo con color — las mismas personas a las que esto sirve podrían no percibir el color. El panel está totalmente localizado.

Las buenas prácticas detrás de ello

Estos son los principios que aplicamos — los mismos valen para cualquier herramienta de terminal.

  1. Semántica antes que decoración. Un lector de pantalla lee caracteres. Los bordes se vuelven «línea horizontal, línea horizontal…»; un wordmark de ASCII art es ruido. El modo accesible reemplaza la estructura visual con palabras: el splash anuncia «LockedIn CLI» como texto, y las tarjetas reciben puntos de referencia («Publicación:», «(fin de la publicación)») para que sepas dónde empieza y termina un bloque.
  2. Nunca dependas solo del color o de los iconos. El significado que solo transmite el color o un emoji es invisible para algunos usuarios. Mantén el texto con sentido aun con el color apagado — p. ej. «Conectado con Ava» se lee bien una vez que desaparece el ✔.
  3. Ofrece alternativas de texto / quita el ruido. Los emojis decorativos se leen en voz alta de forma verbosa. El modo accesible quita los glifos puramente decorativos y conserva las palabras; el de baja distracción quita los emojis ruidosos pero mantiene el diseño para quienes ven y solo quieren calma.
  4. Respeta el movimiento reducido. La animación (el spinner braille) es una distracción y puede ser un desencadenante vestibular. Los modos accesible y de baja distracción no animan — imprimen el estado una vez, de forma estática. Esto refleja el prefers-reduced-motion de la web.
  5. Ofrece alto contraste. El texto secundario «gris apagado» de bajo contraste no cumple el contraste de WCAG para muchas personas. El modo de alto contraste lo cambia por blanco puro y realza los acentos.
  6. Reduce la carga cognitiva. Más allá de la vista, algunas personas necesitan menos: menos florituras, sin movimiento, sin emojis. Aquí eso es un modo de primera clase, no una ocurrencia tardía.
  7. Honra las convenciones de la plataforma. La CLI ya respeta NO_COLOR; también trata TERM=dumb (lo que exportan muchos lectores de pantalla y shells de Emacs) como «modo accesible», y lee LOCKEDIN_REDUCE_MOTION. Detectar las señales que el usuario ya tiene es mejor que hacerle configurar una cosa más.
  8. Hazlo comprobable y mantenlo comprobado. La accesibilidad que no está en la barrera de pruebas se pudre. La suite verifica que la salida accesible no tenga glifos decorativos, que los puntos de referencia estén presentes, que el alto contraste cambie la paleta y que la baja distracción mantenga la alineación — en todos los idiomas.

El formato direccional también falla de forma segura. Por defecto, árabe, persa, hebreo y urdu no emiten controles bidi salvo que la persona configure LOCKEDIN_BIDI=on para un terminal que sabe que admite aislados; el modo lector de pantalla los elimina incluso entonces. Ningún sondeo de TTY ni lista de terminales anula ese valor seguro.

Cómo está construido (para curiosos)

  • a11yFilter(s) quita el Unicode decorativo (bordes, bloques, geométricos, técnicos, dingbats, braille, emojis) y alinea el texto a la izquierda — se aplica a toda la salida en modo accesible.
  • emojiFilter(s) es el filtro más ligero de baja distracción: quita solo los emojis/símbolos ruidosos y conserva bordes, viñetas, flechas y el color ANSI, para que el diseño visual sobreviva.
  • El objeto de color C se cambia por una paleta de alto contraste en su lugar; los degradados caen a un acento sólido cuando el alto contraste o la baja distracción están activos. El modo plano deja cada entrada de C vacía (color totalmente apagado, incluso con FORCE_COLOR) sin tocar el diseño.
  • renderSplash, el spinner, renderPrompt y card tienen ramas semánticas para el modo accesible (texto plano, sin movimiento, puntos de referencia).
  • La detección vive en detectAccessible / detectHighContrast / detectLowDistraction / detectPlain; el punto de entrada las aplica antes de renderizar. El comando /a11y de la sesión (handleA11y + renderA11yStatus) alterna el mismo estado en vivo.

Mantenerlo funcionando al añadir una función

La lista de revisión del tutorial incluye un paso de accesibilidad, y es un buen hábito en cualquier lugar:

Ejecuta lockedin --accessible <tu comando> y confirma que se lea como texto plano y limpio —sin glifos decorativos nuevos que se cuelen por el filtro— y que cualquier bloque estructurado nuevo tenga un punto de referencia. Luego prueba --high-contrast, --low-distraction y --plain (que no debe emitir ningún código de color pero sí conservar el diseño). Todo texto visible nuevo necesita una clave en cada bundle de idioma, para que el panel /a11y y la ayuda sigan traducidos.


Sátira. No afiliado con LinkedIn. GPL-3.0-or-later.

📘 LockedIn CLI wiki

Tutorial

Reference


Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.

Clone this wiki locally