---
fonte: 02-tokens/seed-tokens.md
versao_da_fonte: v1.23
secao: 05
titulo: "Acessibilidade — pares auditados (WCAG 2.1, medidos programaticamente em 2026-07-30)"
sequencia: 7 de 17
bytes_do_corpo: 5816
md5_do_corpo: e99564cf99af39a4f87b6e724a822a90
gerado_por: 06-validacao/geradores/gen-camada-ia.py
nota: fatia GERADA — o corpo abaixo é byte a byte o trecho do canônico; edite o canônico, nunca esta fatia. Canônico inteiro em https://ds.seed.eng.br/02-tokens/seed-tokens.md
---
## 5. 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.22~~ → **2,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.mjs` dá **2,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.

