# História 09 — Widgets e banners (perfil por grupo de URL)

## Objetivo

Provar que um **widget** colocado por um **perfil de layout** (ADR-016) aparece no slot do portal
sem que a página conheça o módulo dono (embed permitido, import proibido) — e continua acessível.

## Pré-condições

- `make up` + `php artisan db:seed` (o seeder cria o perfil global `*` com `demo.status` em `main.right`).
- Assets compilados (`make check`).

## Passos

1. Abrir a home do portal (`/`).
2. Localizar o widget pelo marcador estável `[data-widget="demo.status"]`.
3. Conferir que o fragmento semântico renderiza (título/heading) e que o axe passa.

## Contrato verificado

- O perfil resolve `rota → perfil` (global `*` ou prefixo mais específico) e o slot renderiza o
  widget por `id` — a página **não** importa o módulo dono (ADR-013/ADR-016).
- O widget é renderizado no **servidor** (funciona sem JS); o visual vem do design system.
- Zero violações de acessibilidade (axe) na tela.
