Auditoria de segurança contra flashes
Grava a página em um navegador headless (ou lê um vídeo), executa o detector de flashes IRIS da EA com o limite de área da WCAG (0,111 da tela) e escreve um relatório em Markdown + JSON. É uma triagem, não um certificado.
Execute comandos a partir da pasta desta skill com seu próprio Python,
.\venv\Scripts\python.exe (mostrado como python abaixo). Use --out para colocar o relatório no projeto do usuário.
1. Configuração (apenas se venv estiver ausente ou as importações falharem)
python -m venv venv
.\venv\Scripts\python.exe -m pip install -r requirements.txt
.\venv\Scripts\python.exe -m playwright install chromium
2. Escolha a entrada
| Entrada | Use quando |
|---|---|
--url https://... | uma página web ao vivo |
--html caminho\pagina.html | um arquivo HTML local |
--video caminho\clip.mp4 | uma gravação de jogo, trailer ou qualquer vídeo existente |
python scripts/audit.py --url https://exemplo.com
python scripts/audit.py --html pagina.html --duration 10
python scripts/audit.py --video clip.mp4
Opções úteis: --duration (s, padrão 10), --settle (s, padrão 1),
--viewport (padrão 1024x768), --out (padrão reports/).
Código de saída 0 = PASS, 1 = FAIL, 2 = erro. Cliques, hover e rolagem não são
suportados; se o perigo precisar de interação, peça ao usuário uma gravação de tela
e use --video.
3. Leia o relatório (report.md)
- O resultado da WCAG 2.3.1 é o único veredito. FALHA se houver quadros de "falha de flash" de luminância ou vermelho. Cite os intervalos de tempo.
- Avisos extras (não WCAG) são regras de transmissão da IRIS (ex.: 2–3 flashes/s por vários segundos). Mencione-os separadamente; nunca os chame de falha WCAG.
- Cintilação mais rápida que metade da taxa de quadros (~12 Hz para gravações de página) não é medida. Nunca descreva tal conteúdo como "aprovado".
- Sempre repita o aviso: uma aprovação não prova que a página é segura.
4. Correções a sugerir quando falhar
- Reduza o flash para abaixo de 3 por segundo.
- Torne a área de flash menor (bem abaixo de 341 x 256 px em 1024 x 768).
- Reduza o contraste de brilho entre os estados de flash.
- Evite flashes vermelhos saturados.
- Honre
@media (prefers-reduced-motion: reduce)e adicione um controle de pausa/parada.
5. Regra de segurança
Nunca abra páginas de teste, páginas auditadas ou gravações em um navegador visível, e nunca as mostre ou incorpore para o usuário. Execute-as apenas headless através de scripts/audit.py. Compartilhe o relatório, não as imagens.