-
Notifications
You must be signed in to change notification settings - Fork 0
Accessibility pt BR
🌎 Idioma: Português (Brasil) — veja todos os 33 idiomas
LockedIn CLI é uma piada, mas sua acessibilidade não é. Uma interface de terminal tão visualmente rica — wordmark em gradiente, cartões com desenho de caixas, spinners em braille, emojis — é genuinamente difícil de usar com tecnologia assistiva a menos que você projete pensando nisso. Esta página explica o que a CLI faz, como ativar e as boas práticas gerais por trás disso (úteis muito além deste projeto).
| Modo | Flag | Env | O que faz |
|---|---|---|---|
| Leitor de tela |
--accessible (--a11y, --screen-reader) |
LOCKEDIN_ACCESSIBLE=1, ou TERM=dumb
|
Texto plano linear e limpo: sem bordas, sem arte ASCII, sem movimento do spinner, sem glifos decorativos; cor desligada; prompt curto; marcos semânticos ("Post:" … "(fim do post)"). |
| Alto contraste |
--high-contrast (--hc) |
LOCKEDIN_HIGH_CONTRAST=1 |
Uma paleta de alto contraste para baixa visão: texto secundário branco puro, acentos mais brilhantes, sem esmaecimento, acento sólido em vez do gradiente de baixo contraste. |
| Baixa distração |
--low-distraction (--calm, --reduce-motion) |
LOCKEDIN_LOW_DISTRACTION=1, LOCKEDIN_REDUCE_MOTION=1
|
Movimento reduzido (sem animação do spinner), sem emojis decorativos, cor sólida e tranquila — mantém o layout visual. Para reduzir a carga cognitiva/sensorial. |
| Simples / monocromático |
--plain (--mono, --monochrome) |
LOCKEDIN_PLAIN=1, ou NO_COLOR=1
|
Desativa toda a cor mantendo o layout completo, as bordas e os emojis. Para terminais com pouco suporte a cor, logs ou preferência. Sobrepõe FORCE_COLOR. |
Eles se combinam: --high-contrast --low-distraction te dá uma interface
brilhante, tranquila e sem emojis; um usuário de leitor de tela em um terminal
TERM=dumb recebe o modo acessível automaticamente. Quando os modos entram em
conflito, o mais restritivo vence — monocromático vence uma paleta de cores, e o
modo leitor de tela substitui o simples.
lockedin --accessible post
lockedin --high-contrast
lockedin --plain post
LOCKEDIN_LOW_DISTRACTION=1 lockedin auraVocê não precisa decidir com antecedência. Dentro da sessão interativa, o
comando /a11y é um painel de controle real e funcional (a acessibilidade
não é a sátira):
| Digite | Resultado |
|---|---|
/a11y |
Mostra o estado atual (ligado/desligado) dos quatro modos |
/a11y <modo> |
Alterna um: screen-reader, high-contrast, low-distraction, plain (aliases como sr / hc / calm / mono também funcionam) |
/a11y reset |
Desliga todos os modos |
O estado sempre é mostrado como uma palavra explícita ligado/desligado, nunca só pela cor — os próprios usuários a quem isso serve podem não perceber a cor. O painel é totalmente localizado.
Estes são os princípios que aplicamos — os mesmos valem para qualquer ferramenta de terminal.
- Semântica antes da decoração. Um leitor de tela lê caracteres. Bordas com desenho de caixas viram "linha horizontal, linha horizontal…"; um wordmark em arte ASCII é ruído. O modo acessível substitui a estrutura visual por palavras: o splash anuncia "LockedIn CLI" como texto, e os cartões ganham marcos ("Post:", "(fim do post)") para que o usuário saiba onde um bloco começa e termina.
- Nunca dependa só de cor ou ícones. Um significado que só é transmitido por cor ou por um emoji é invisível para alguns usuários. Mantenha o texto com sentido mesmo com a cor desligada — por exemplo, "Conectado com Ava" lê bem depois que o ✔ desaparece.
- Ofereça alternativas em texto / remova o ruído. Emojis decorativos são lidos em voz alta de forma prolixa ("📥" → "bandeja de entrada"). O modo acessível remove glifos puramente decorativos e mantém as palavras; o de baixa distração remove os emojis mais chamativos, mas mantém o layout para usuários videntes que só querem calma.
-
Respeite o movimento reduzido. A animação (o spinner em braille) é uma
distração e pode ser um gatilho vestibular. Os modos acessível e de baixa
distração não animam — imprimem o estado uma vez, de forma estática.
Isso espelha o
prefers-reduced-motionda web. - Ofereça alto contraste. Texto secundário "cinza apagado" de baixo contraste falha o contraste do WCAG para muitos usuários. O modo de alto contraste o troca por branco puro e realça os acentos.
- Reduza a carga cognitiva. Além da visão, alguns usuários precisam de menos: menos floreios, sem movimento, sem emojis. Isso é um modo de primeira classe aqui, não uma reflexão tardia.
-
Honre as convenções da plataforma. A CLI já respeita
NO_COLOR; também trataTERM=dumb(o que muitos leitores de tela e shells do Emacs exportam) como "vá para o modo acessível", e lêLOCKEDIN_REDUCE_MOTION. Detectar os sinais que o usuário já tem é melhor do que fazê-lo configurar mais uma coisa. - Torne testável, e mantenha testado. A acessibilidade que não está na barreira de testes apodrece. A suíte verifica que a saída acessível não tem glifos decorativos, que os marcos estão presentes, que o alto contraste troca a paleta e que a baixa distração mantém o alinhamento das bordas — em todos os idiomas.
A formatação direcional também falha de forma segura. Árabe, persa, hebraico e
urdu não emitem controles bidi por padrão, a menos que o usuário defina
explicitamente LOCKEDIN_BIDI=on para um terminal conhecido por suportar
isolamentos; o modo leitor de tela os remove mesmo assim. Nenhum sondeio de TTY
nem lista de terminais pode sobrepor esse padrão seguro.
-
a11yFilter(s)remove Unicode decorativo (desenho de caixas, blocos, geométricos, técnicos, dingbats, braille, emojis) e alinha o texto à esquerda — aplicado a toda a saída no modo acessível. -
emojiFilter(s)é o filtro mais leve de baixa distração: remove apenas os emojis/símbolos chamativos e mantém desenho de caixas, marcadores, setas e cor ANSI, para que o layout visual sobreviva. - O objeto de cor
Cé trocado por uma paleta de alto contraste no lugar; os gradientes caem para um acento sólido quando o alto contraste ou a baixa distração estão ativos. O modo simples força cada entrada deCa ficar vazia (cor totalmente desligada, mesmo sobFORCE_COLOR) sem alterar o layout. -
renderSplash, o spinner,renderPromptecardtêm ramos semânticos para o modo acessível (texto plano, sem movimento, marcos). - A detecção mora em
detectAccessible/detectHighContrast/detectLowDistraction/detectPlain; o ponto de entrada os aplica antes de renderizar. O comando/a11yda sessão (handleA11y+renderA11yStatus) alterna o mesmo estado ao vivo.
A lista de revisão do tutorial inclui um passo de acessibilidade, e é um bom hábito em qualquer lugar:
Execute
lockedin --accessible <seu comando>e confirme que ele é lido como texto plano e limpo — sem novos glifos decorativos escapando do filtro — e que qualquer novo bloco estruturado tem um marco. Depois tente--high-contrast,--low-distractione--plain(que deve emitir nenhuma cor, mas manter o layout). Todo texto novo visível ao usuário precisa de uma chave em cada bundle de idioma, para que o painel/a11ye a ajuda continuem traduzidos.
Sátira. Não afiliado ao LinkedIn. GPL-3.0-or-later.
Tutorial
- 1 · Orientation
- 2 · How the Code Works
- 3 · Your First Agent Task
- 4 · Prompting & Reviewing
- 5 · Localization
Reference
Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.