Capítulo 8
SVG acessível e semântico
2 min de leitura 390 palavras 1 gravura
Desenho também precisa de nome. title, desc, role e foco evitam SVG mudo para leitores de tela.
Trabalhe sobre uma cópia da pasta inicio do exemplo correspondente. Leia, digite, mude uma coisa, preveja, recarregue e confira. A referência completa fica na raiz da pasta do exemplo, no pacote anexo.
O que você pratica
- role img indica o quê?
- title e desc diferem como?
- SVG decorativo deve?

Nomear o ícone
A referência liga aria-labelledby a title e desc.
Erro comum: só aria-label vago tipo “imagem”.
Reescrever o desc
Melhore a descrição em uma frase objetiva.
<svg role="img" aria-labelledby="titulo desc">
Pare e experimente. O inspetor deve mostrar o texto novo.
Quando esconder
Se o SVG for só enfeite ao lado de texto equivalente, aria-hidden="true" pode bastar.
Não publique exercícios com dados reais. Conteúdo fictício de Recife.
Como o exemplo desta etapa funciona
A referência desta etapa reúne index.html, styles.css. Abra o resultado pronto, localize o trecho que produz svg acessivel e semantico e só então compare com inicio. Os dois diretórios são independentes: você pode errar, restaurar e repetir sem buscar arquivos de outro capítulo.
Leitura do resultado
Observe primeiro o que permanece parado e o que responde a uma ação. Depois altere um único número, cor, coordenada ou condição. Antes de recarregar, escreva o efeito esperado. Essa previsão separa uma mudança compreendida de uma tentativa ao acaso.
Diagnóstico guiado
Se a cena sumir, confira a primeira mensagem do Console e o caminho dos arquivos. Em SVG, revise viewBox, atributos e ordem das formas. Em p5.js, confirme a biblioteca local e se setup e draw foram escritos corretamente. Em Canvas ou WebGL, verifique o contexto e os limites numéricos antes de mudar outra coisa.
Critério de avanço
Avance quando conseguir descrever a cena, modificar um parâmetro com previsão e restaurar a referência sem copiar arquivos de uma etapa posterior.
Atividades
- Para que title no SVG?
- desc traz o quê?
- tabindex 0 quando?
Respostas comentadas
Só abra depois de tentar.
Atividade 1. Nome curto acessível.
Atividade 2. Descrição mais longa.
Atividade 3. Quando o gráfico for interativo e precisar de foco.
Exemplo deste capítulo: pacote de exemplos/08-svg-acessivel/.
O arquivo completo
Referência do exemplo 08-svg-acessivel, reproduzida aqui para que você possa conferir sem sair da página.
index.html
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SVG acessível — Laboratório da Luz</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<a class="skip" href="#conteudo">Ir ao conteúdo</a>
<header>
<p class="tag">Laboratório da Luz · Recife</p>
<h1>SVG acessível</h1>
</header>
<main id="conteudo">
<p class="dica">Use <code>role="img"</code>, <code>title</code> e <code>desc</code> (ou aria-label). Evite SVG só decorativo sem alternativa.</p>
<div class="stage" style="background:#fff"><svg width="480" height="240" viewBox="0 0 480 240" role="img" aria-labelledby="titulo desc">
<title id="titulo">Ícone de lâmpada acessível</title>
<desc id="desc">Lâmpada âmbar com base cinza, usada no mapa do laboratório.</desc>
<rect width="480" height="240" fill="#f4f0e8"/>
<circle cx="240" cy="100" r="50" fill="#f0a04b"/>
<rect x="220" y="150" width="40" height="40" fill="#666"/>
</svg></div>
</main>
<footer>
<p>Conteúdo fictício para estudo local. Não publique dados reais.</p>
</footer>
</body>
</html>