Ir ao conteúdo
SEED engenhariaDesign System

Tokens

5. Acessibilidade — pares auditados

seed-tokens.md v1.23 · §05seção 7 de 1705-acessibilidade-pares-auditados-wcag-2-1-medidos.md · MD5 e99564cf

Título completo no canon: Acessibilidade — pares auditados (WCAG 2.1, medidos programaticamente em 2026-07-30)

Par Razão Veredicto
branco sobre turquesa-600 (botão primário) 4.60 AA texto normal
branco sobre turquesa-700 6.32 AA
branco sobre turquesa-400 #11B0A0 3.222,71 REPROVA em qualquer tamanho — ver a errata abaixo. O 3.22 é o número do turquesa-500 #00A192, transplantado de endereço
turquesa-900 #00352F sobre turquesa-400 #11B0A0 4,99 AA texto normal — é a tinta VIGENTE sobre a marca chapada (v1.15)
cinza-900 sobre amarelo #FAD61D 9.70 AAA
cinza-900 sobre dourado #F9B11C 7.48 AAA
cinza-600 (corpo) sobre branco 4.74 AA
cinza-700 (corpo) sobre branco 6.55 AA
branco sobre vermelho-600 (botão danger) 5.19 AA
vermelho-700 sobre vermelho-50 (alerta) 6.57 AA
azul-800 sobre azul-50 (info) 8.57 AAA
dourado-800 sobre dourado-50 (warning) 9.05 AAA
cinza-100 sobre dark-default (texto dark) 14.16 AAA
turquesa-300 sobre dark-default (ação dark) 9.32 AAA
turquesa-900 sobre turquesa-300 (texto do botão dark) 7.39 AAA

⚠ ERRATA MEDIDA EM 2026-08-17 — O NÚMERO DESTA REGRA ESTÁ ERRADO, E A REGRA CAI COM ELE#

O parágrafo abaixo fica como HISTÓRICO. O estado vigente é esta errata.

Ele declara que branco (#FFFFFF) sobre surface-brand (#11B0A0) dá 3,22:1 e conclui que "passa AA-large (≥3.0)", e é sobre essa conclusão que a regra "texto branco somente ≥24px ou ≥19px bold" foi construída. Recalculado pela fórmula da WCAG 2.x (luminância relativa) e medido por pixel em artefato real: o valor é 2,71. Duas medições independentes concordam — o cálculo direto dá 2,74 e a leitura por pixel do validacao/contraste-composicao.mjs2,71 (a diferença é o antialias do glifo).

ERRATA DA ERRATA (2026-08-17, edição v1.15): o parágrafo acima diz que "o cálculo direto dá 2,74" e explica a diferença pelo antialias do glifo. Não há diferença: o cálculo direto dá 2,7126, isto é 2,71, exatamente o que o pixel lê. O 2,74 nunca existiu, e a explicação do antialias explicava uma diferença inexistente. Recalculado três vezes por implementação independente. Errata dentro de errata — o número certo entrou no lugar certo e um número errado entrou na justificativa.

DE ONDE VEIO O 3,22 — e ele NÃO foi inventado (medido em 2026-08-17): 3,22 é o número correto de branco sobre turquesa-500 #00A192 (medido 3,2243). Ele foi transplantado para o turquesa-400 #11B0A0, que é a surface-brand. Este mesmo arquivo usa 3.22 corretamente onde fala de turquesa-500 (a escala de prioridade e a categórica cat-1) e incorretamente onde falava de turquesa-400. O erro é de ENDEREÇO, não de aritmética.

Consequência: 2,71 reprova até o piso AA-large de 3,00. Portanto texto branco sobre surface-brand não é permitido em NENHUM tamanho — nem em 24px, nem em 19px bold. A regra vigente não é "só grande": é não usar branco ali.

Como o defeito apareceu: rodando o contraste-composicao.mjs no tela-chat.html, alvo em que ele nunca havia sido apontado. Dois textos reprovaram no tema claro — button "Recolher chat" (12px/600) e div.avatar "RS" (12px/700) —, ambos branco sobre #11B0A0, ambos a 2,71. Ausência de medição não era aprovação: era ausência de medição.

A resposta já existe dentro da casa, e ela está no tema ESCURO deste mesmo artefato: lá o mesmo botão usa tinta escura sobre a marca — #00352F sobre #11B0A0 = 4,99, que passa o piso de texto 4,50. Medido também: #0B3330 sobre #11B0A0 = 5,06 e #005048 sobre #11B0A0 = 3,45. Substituto recomendado: tinta escura da rampa turquesa (turquesa-900, #00352F) ou o texto primário claro (#0B3330).

✅ DECIDIDO E EXECUTADO em 2026-08-17 (v1.15) — a MR-P1 está FECHADA. O Rafael acatou a recomendação; o conserto foi feito nesta camada, não nos artefatos, e o censo por pixel em 48 artefatos × 2 temas devolve 49 textos assentando sobre a marca chapada e ZERO violando. Como foi feito e por que assim: §5-b abaixo. Registro completo no validacao/MANIFESTO.md §86. O parágrafo seguinte ficou como histórico:

NÃO EXECUTADO — vai a GATE, e o motivo: trocar branco por tinta escura sobre a marca é decisão de identidade visual, não conserto de token: ela muda a aparência de todo botão e selo de marca do acervo, e a regra antiga está referenciada no marca-seed.md. Pendência MR-P1. Enquanto não houver decisão, os textos brancos sobre surface-brand são DEFEITO MEDIDO em aberto — o número está aqui e não passa por aprovação por silêncio.

Regra crítica reformulada — SUPERSEDIDA em 2026-08-17 pelo §5-b abaixo, que é o estado VIGENTE. Fica como histórico, e o que está errado nela é o número: 3.22 é o contraste do turquesa-500, não do turquesa-400. (texto original preservado:) a regra antiga "texto branco sobre turquesa apenas em 24px+/bold 19px+" foi auditada: branco sobre #11B0A0 dá 3.22:1, que passa AA-large (≥3.0) mas reprova para texto normal. A regra nova, mais precisa: sobre surface-brand (#11B0A0), texto branco somente ≥24px ou ≥19px bold (mantida, agora com o número que a justifica); qualquer texto funcional/normal sobre fundo turquesa deve usar surface-brand-deep ou o par action-primary (turquesa-600+). O amarelo mantém a regra absoluta: sempre texto escuro (cinza-900), nunca branco.

Esc