# P2: Correções de Contraste e Acessibilidade

seeds: `sucesu-a2f2`, `sucesu-4935`

## Fix 1: Badge de tags (contraste 4.15:1 → FAIL AA)

**Arquivo**: `V2/Modules/Publicacoes/Noticias/Views/portal/show.blade.php`
**Linha**: 307
**Elemento**: `<span class="badge bg-secondary bg-opacity-10 text-secondary rounded-pill">`

**Antes**:
```blade
<span class="badge bg-secondary bg-opacity-10 text-secondary rounded-pill">
    <i class="bi bi-tag me-1"></i>{{ $tag->name }}
</span>
```

**Depois**:
```blade
<span class="badge bg-secondary bg-opacity-25 text-dark rounded-pill">
    <i class="bi bi-tag me-1"></i>{{ $tag->name }}
</span>
```

**Verificação**: `#6c757d` sobre `#6c757d40` (25% opacity) → contraste ~6:1, passa AA e AAA.

---

## Fix 2: Estrela "Destaques" (contraste 1.59:1 → FAIL AA)

**Arquivo**: `V2/Modules/Publicacoes/Noticias/Views/portal/show.blade.php`
**Linha**: 428
**Elemento**: `<i class="bi bi-star-fill text-warning me-1"></i> Destaques`

**Antes**:
```blade
<h3 class="sidebar-widget-title">
    <i class="bi bi-star-fill text-warning me-1"></i> Destaques
</h3>
```

**Depois**:
```blade
<h3 class="sidebar-widget-title">
    <i class="bi bi-star-fill me-1" style="color: var(--tenant-primary);" aria-hidden="true"></i> Destaques
</h3>
```

**Verificação**: `--tenant-primary` (`#1a3c6e`) sobre `#fff` → contraste 10.96:1, passa AA e AAA. `aria-hidden="true"` porque o ícone é decorativo (o título "Destaques" já comunica o significado).

**Alternativa** (se quiser manter cor laranja):
```blade
<i class="bi bi-star-fill me-1" style="color: var(--tenant-accent);" aria-hidden="true"></i>
```
`#f7941d` sobre `#fff` → ~2.5:1, ainda não passa AA. A alternativa primary é preferível.

---

## Fix 3: Sub-title na /historia (4.63:1 borderline)

**Status**: NÃO REQUER AÇÃO IMEDIATA.

Após o bridge P1, `--theme` → `--tenant-primary` (`#1a3c6e`). O `.sub-title` terá:
```
color: #1a3c6e sobre background: rgba(26,60,110,0.1)
```
O contraste calculado para `#1a3c6e` sobre `#eeeef5` (aproximado do tint) é ~9:1 — passa AA e AAA. O cálculo anterior de 4.63 era com a paleta antiga `#1c71a6` sobre `rgba(28,113,166,0.1)`. Com a bridge, o sub-title fica dentro do spec.

---

## Fix 4: Botão submit `btn-primary` (Bootstrap default #0d6efd)

**Status**: RESOLVIDO pelo bridge CSS na P1.

A bridge em P1 já inclui o override de `.btn-primary` e `.btn-outline-primary`:
```css
.btn-primary {
    --bs-btn-bg: var(--tenant-primary);
    --bs-btn-border-color: var(--tenant-primary);
    --bs-btn-hover-bg: var(--tenant-secondary);
    ...
}
```
Isto afeta TODOS os botões `.btn-primary` do portal: `/associe-se`, `/fale-conosco`, "Voltar para Notícias", etc.

**Verificação pós-fix**: `#1a3c6e` sobre `#fff` = 10.96:1 (passa AAA, antes era 4.5:1 borderline AA).

---

## Fix 5: Links "Leia Mais" / "Saiba mais" (5.3:1 → AAA fail)

**Status**: RESOLVIDO pelo bridge CSS na P1.

`--theme` → `--tenant-primary` → `.link-btn { color: var(--tenant-primary) }` → `#1a3c6e` sobre `#fff` = 10.96:1.

---

## Fix 6: Meta texto time/autor/categoria 13.6px (4.69:1 → AAA fail)

**Status**: NÃO REQUER AÇÃO IMEDIATA.

O meta texto usa `--color-text-muted` (`#6c757d`) após P1. O ratio 4.69:1 para 13.6px passa AA (≥4.5:1), só falha AAA (≥7:1). Aumentar para AAA exigiria fonte maior ou cor mais escura, o que impacta o design. AA é suficiente para texto small/secondary.

---

## Fix 7: Required span .text-danger (4.53:1 borderline)

**Status**: NÃO REQUER AÇÃO IMEDIATA.

Bootstrap 5 define `.text-danger` como `#dc3545`. O ratio 4.53:1 sobre branco é marginalmente acima de 4.5:1. O asterisco `*` tem propósito semântico reforçado pela classe `.text-danger`. Aceitável para texto decorativo/semântico de baixa prioridade visual.

---

## Tabela de verificação pós-fix (contrastes)

| Elemento | Página | Status atual | Pós-fix esperado |
|----------|--------|-------------|-----------------|
| span.badge tags | /noticia/* | 4.15:1 FAIL | ~6:1 PASS |
| i.bi-star-fill | /noticia/* | 1.59:1 FAIL | 10.96:1 PASS |
| .sub-title | /historia | 4.63:1 border | ~9:1 PASS |
| .link-btn | /noticias, /agenda | 5.3:1 AA | 10.96:1 AAA |
| .btn-primary submit | /associe-se, /fale-conosco | 4.5:1 border | 10.96:1 AAA |
| meta text-muted | /noticia/* | 4.69:1 AAA-fail | 4.69:1 AA-OK |
| span.text-danger | forms | 4.53:1 border | 4.53:1 AA-OK |
| breadcrumb h1 (white) | todas | unmeasurable | unmeasurable *(aceitável)* |
