<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 𝒃𝒖𝒛𝒊𝒏𝒂</title>
    <description>The latest articles on DEV Community by 𝒃𝒖𝒛𝒊𝒏𝒂 (@buzinei_bibi).</description>
    <link>https://dev.to/buzinei_bibi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3986419%2F544f3b55-0b8d-457b-910a-54944bc0d62d.jpg</url>
      <title>DEV Community: 𝒃𝒖𝒛𝒊𝒏𝒂</title>
      <link>https://dev.to/buzinei_bibi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/buzinei_bibi"/>
    <language>en</language>
    <item>
      <title>quem fica de fora do seu site? — boas práticas de acessibilidade na web</title>
      <dc:creator>𝒃𝒖𝒛𝒊𝒏𝒂</dc:creator>
      <pubDate>Sun, 08 Nov 2026 19:54:43 +0000</pubDate>
      <link>https://dev.to/buzinei_bibi/quem-fica-de-fora-do-seu-site-boas-praticas-de-acessibilidade-na-web-17mk</link>
      <guid>https://dev.to/buzinei_bibi/quem-fica-de-fora-do-seu-site-boas-praticas-de-acessibilidade-na-web-17mk</guid>
      <description>&lt;p&gt;deixa eu contar por que decidi escrever sobre esse tema. no projeto integrador do meu curso de front-end, fiz um portal de esportes e coloquei um menu de acessibilidade. na apresentação, o professor comentou que tinha sido o único projeto da turma com esse cuidado, e isso me fez pensar: se acessibilidade é tão importante, por que ainda é exceção?&lt;/p&gt;

&lt;p&gt;ela devia ser o normal, e não um diferencial. e os números mostram quanta gente fica de fora quando ela falta: segundo o &lt;a href="https://agenciadenoticias.ibge.gov.br/agencia-noticias/2012-agencia-de-noticias/noticias/48091-desigualdades-afetam-acesso-a-espacos-participacao-e-direitos-das-pessoas-com-deficiencia" rel="noopener noreferrer"&gt;censo 2022 do ibge&lt;/a&gt;, o brasil tem &lt;strong&gt;14,4 milhões de pessoas com deficiência&lt;/strong&gt;, 7,3% da população com 2 anos ou mais. no mundo, a &lt;a href="https://www.who.int/news-room/fact-sheets/detail/disability-and-health" rel="noopener noreferrer"&gt;organização mundial da saúde&lt;/a&gt; fala em &lt;strong&gt;1,3 bilhão de pessoas com alguma deficiência significativa&lt;/strong&gt;, uma em cada seis.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;VOCÊ NÃO É SEU USUÁRIO&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;nem todo mundo usa a internet do mesmo jeito que você. tem gente que ouve a página com um leitor de tela, navega só pelo teclado, usa zoom alto ou depende de legenda. são as &lt;strong&gt;tecnologias assistivas&lt;/strong&gt; e, se o site não foi pensado pra elas, ele simplesmente não funciona. e essas pessoas têm o mesmo direito de ler uma notícia, marcar uma consulta ou se candidatar a uma vaga.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;POR QUE OVERLAYS DE ACESSIBILIDADE NÃO RESOLVEM&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;estudando mais depois do projeto, aprendi que o menu é só a parte que aparece. mesmo assim, muita empresa instala um &lt;strong&gt;overlay de acessibilidade&lt;/strong&gt;, um menu pronto colocado com uma linha de script, e acha que o assunto está resolvido.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foc1i4vprf9f0kbd709p0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foc1i4vprf9f0kbd709p0.png" alt="ilustração de um site com um menu de acessibilidade aberto por cima, com opções de texto e leitura, cores e navegação. por baixo do menu, o site continua com erros marcados: contraste baixo, imagem sem alt, botão sem nome e campo sem label" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;o problema é que ele não muda o código. depois que a página carrega, ele remenda o html no chute, adivinhando &lt;code&gt;alt&lt;/code&gt;, &lt;code&gt;aria-label&lt;/code&gt; e &lt;code&gt;role&lt;/code&gt;. se erra, o leitor de tela lê algo que não existe; se o script não carrega, nada acontece.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- remendo: o leitor de tela lê "imagem, botão" e não recebe foco --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"comprar()"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"imagem"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- solução: o elemento certo, direto no código --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"comprar()"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;adicionar ao carrinho&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;a regra do w3c é simples: se já existe um elemento html pra isso, &lt;a href="https://www.w3.org/TR/using-aria/#rule1" rel="noopener noreferrer"&gt;use ele&lt;/a&gt;. o próprio guia do aria resume bem: &lt;a href="https://www.w3.org/WAI/ARIA/apg/practices/read-me-first/" rel="noopener noreferrer"&gt;nenhum aria é melhor do que um aria errado&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;e os especialistas concordam. o &lt;a href="https://overlayfactsheet.com/en/" rel="noopener noreferrer"&gt;overlay fact sheet&lt;/a&gt;, assinado por centenas deles, desaconselha essas ferramentas. em 2025, a &lt;a href="https://www.ftc.gov/news-events/news/press-releases/2025/04/ftc-approves-final-order-requiring-accessibe-pay-1-million" rel="noopener noreferrer"&gt;ftc&lt;/a&gt; dos estados unidos multou uma fornecedora em &lt;strong&gt;1 milhão de dólares&lt;/strong&gt; por prometer demais. enquanto isso, a &lt;a href="https://webaim.org/projects/million/" rel="noopener noreferrer"&gt;webaim&lt;/a&gt; analisou as páginas iniciais de um milhão de sites, em 2026, e achou erros detectáveis automaticamente em &lt;strong&gt;95,9%&lt;/strong&gt; delas, quase todos fáceis de corrigir no código.&lt;/p&gt;

&lt;p&gt;no meu portal, o menu faz parte do próprio site e só funciona porque a base está lá: teclado, foco visível, textos alternativos e animações que respeitam quem pede menos movimento.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;TAMBÉM É LEI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;e cuidar dessa base nem é opcional. no brasil, a &lt;a href="https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2015/lei/l13146.htm" rel="noopener noreferrer"&gt;lei brasileira de inclusão&lt;/a&gt; (lei 13.146/2015), no artigo 63, obriga os sites de empresas com sede ou representação comercial no país e os sites do governo a serem acessíveis. pro governo federal, o &lt;a href="https://emag.governoeletronico.gov.br/" rel="noopener noreferrer"&gt;emag&lt;/a&gt; detalha o que cada página precisa ter. a boa notícia é que quase tudo isso cabe em pequenos hábitos no código.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;COMO FAZER NA PRÁTICA&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;COMO LIDAR COM TEXTOS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;comece pela fonte em &lt;code&gt;rem&lt;/code&gt;, e não em &lt;code&gt;px&lt;/code&gt;: assim o texto respeita o tamanho que a pessoa escolheu no navegador. depois, dê um zoom de 200% e confira se nada ficou cortado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;na estrutura, use títulos em ordem (&lt;code&gt;h1&lt;/code&gt;, &lt;code&gt;h2&lt;/code&gt;, &lt;code&gt;h3&lt;/code&gt;), links que se explicam sozinhos ("baixar o edital em pdf", não "clique aqui"), frases curtas, nada de texto justificado e &lt;code&gt;&amp;lt;html lang="pt-br"&amp;gt;&lt;/code&gt; no topo. o leitor de tela agradece.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;COMO LIDAR COM CORES E CONTRASTE&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;comece pelo contraste: a &lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html" rel="noopener noreferrer"&gt;wcag&lt;/a&gt; pede pelo menos &lt;strong&gt;4,5:1&lt;/strong&gt; no texto comum e &lt;strong&gt;3:1&lt;/strong&gt; no texto grande, e o devtools mostra esse número pra você. depois, nunca passe informação só pela cor: se a borda do campo fica vermelha, escreva o erro do lado. e, se quiser ir além, ofereça um modo de alto contraste feito no próprio css, como o &lt;a href="https://emag.governoeletronico.gov.br/" rel="noopener noreferrer"&gt;emag&lt;/a&gt; exige nos sites do governo federal, com no mínimo &lt;strong&gt;7:1&lt;/strong&gt;. no meu portal, o contraste+ deixa o fundo preto, o texto branco e os destaques em amarelo. dá pra respeitar até quem já pediu mais contraste no sistema:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@media&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prefers-contrast&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;more&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="py"&gt;--fundo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;#000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="py"&gt;--texto&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;#fff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;COMO LIDAR COM IMAGENS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;antes de escrever o &lt;code&gt;alt&lt;/code&gt;, pergunte: se a imagem sumisse, o que faltaria?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"foto.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"foto"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- não diz nada --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"foto.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"duas pessoas testando um site com leitor de tela"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- diz o que importa --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;imagem decorativa leva &lt;code&gt;alt=""&lt;/code&gt;, como as fotos de fundo dos banners do meu portal, e o leitor de tela pula ela. já num gráfico, o &lt;code&gt;alt&lt;/code&gt; traz a conclusão: "as vendas dobraram no trimestre", e não "barras azuis".&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;COMO LIDAR COM ANIMAÇÕES&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;movimento demais pode causar &lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/animation-from-interactions.html" rel="noopener noreferrer"&gt;tontura e náusea&lt;/a&gt;, principalmente parallax e zoom de tela cheia. a saída é animar só pra quem não ligou o "reduzir movimento" no sistema, com a &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion" rel="noopener noreferrer"&gt;&lt;code&gt;prefers-reduced-motion&lt;/code&gt;&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@media&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prefers-reduced-motion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;no-preference&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nc"&gt;.card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;transition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;transform&lt;/span&gt; &lt;span class="m"&gt;0.3s&lt;/span&gt; &lt;span class="nb"&gt;ease-out&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.card&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;translateY&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;-4px&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;e mais duas regras: o que se mexe sozinho por mais de &lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html" rel="noopener noreferrer"&gt;cinco segundos&lt;/a&gt; precisa de um jeito de pausar, e nada pode piscar &lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/three-flashes-or-below-threshold.html" rel="noopener noreferrer"&gt;mais de três vezes em um segundo&lt;/a&gt;. no meu portal, o banner da home para quando o mouse ou o teclado chega nele e ainda tem botão de pausar.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;COMO LIDAR COM BOTÕES, LINKS E FORMULÁRIOS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;tudo que é clicável vira &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; ou &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;, nunca &lt;code&gt;&amp;lt;div onclick&amp;gt;&lt;/code&gt;, que não recebe foco pelo teclado. e botão só com ícone precisa de nome:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"apagar comentário"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;svg&lt;/span&gt; &lt;span class="na"&gt;aria-hidden=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;...&lt;span class="nt"&gt;&amp;lt;/svg&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;por fim, não apague o contorno de foco sem colocar outro destaque no lugar e use &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; em todo campo, porque o placeholder some quando a pessoa começa a digitar.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;COMO LIDAR COM VÍDEOS E ÁUDIOS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;todo vídeo precisa de legenda revisada, todo áudio de transcrição e, no que for importante, de libras. no meu portal, usei o &lt;a href="https://www.gov.br/governodigital/pt-br/acessibilidade-e-usuario/vlibras/vlibras" rel="noopener noreferrer"&gt;vlibras&lt;/a&gt;, do governo federal, que traduz o texto pra libras de graça. e nada de som tocando sozinho: ele atropela o leitor de tela.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;WEB VITALS TAMBÉM É ACESSIBILIDADE&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;sabe quando você vai clicar e um anúncio empurra tudo pra baixo? isso tem nome: &lt;strong&gt;cls&lt;/strong&gt; (cumulative layout shift), uma das &lt;a href="https://web.dev/articles/vitals" rel="noopener noreferrer"&gt;core web vitals&lt;/a&gt;, e faz a pessoa &lt;a href="https://web.dev/articles/cls" rel="noopener noreferrer"&gt;perder o ponto onde estava lendo&lt;/a&gt;. o ideal é &lt;strong&gt;0,1 ou menos&lt;/strong&gt;, e o segredo é reservar o espaço da imagem antes de ela carregar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"evento.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"plateia num evento de tecnologia"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"800"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"450"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;o outro número pra acompanhar é o &lt;strong&gt;inp&lt;/strong&gt;, o tempo que a página leva pra responder a um clique ou a uma tecla: o ideal é até &lt;a href="https://web.dev/articles/inp" rel="noopener noreferrer"&gt;&lt;strong&gt;200 ms&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;FERRAMENTAS PRA TESTAR SEM GASTAR NADA&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;a boa notícia é que boa parte desses erros aparece em minutos, com ferramentas gratuitas.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;LIGHTHOUSE&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;o &lt;a href="https://developer.chrome.com/docs/lighthouse/accessibility/scoring" rel="noopener noreferrer"&gt;lighthouse&lt;/a&gt; já vem no chrome: abra o devtools (f12), vá na aba &lt;strong&gt;lighthouse&lt;/strong&gt; e escolha a categoria &lt;strong&gt;accessibility&lt;/strong&gt;. ele dá uma nota de 0 a 100, aponta cada erro e dá pra rodar até pelo terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx lighthouse https://seusite.com.br &lt;span class="nt"&gt;--only-categories&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;accessibility &lt;span class="nt"&gt;--view&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;AXE DEVTOOLS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;o &lt;a href="https://www.deque.com/axe/devtools/" rel="noopener noreferrer"&gt;axe devtools&lt;/a&gt; é uma extensão gratuita pro chrome, pro edge e pro firefox. ele usa o mesmo motor do lighthouse, o axe-core, mas vai além e explica como corrigir cada erro.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;WAVE&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;já o &lt;a href="https://wave.webaim.org/" rel="noopener noreferrer"&gt;wave&lt;/a&gt;, da webaim, é o mais visual: marca cada erro com um ícone em cima da própria página.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;O DEVTOOLS DO NAVEGADOR&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;e, sem instalar nada, o próprio devtools mostra o contraste no seletor de cor, o nome que o leitor de tela vai ler (aba elements) e ainda simula diferentes tipos de visão (aba rendering).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;E O TESTE QUE NENHUMA FERRAMENTA FAZ&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;mas nota 100 não garante um site acessível. por isso, largue o mouse e navegue só pelo teclado, ligue um leitor de tela (o nvda é grátis), dê um zoom de 200% e, principalmente, converse com quem usa.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;PRA FECHAR&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;acessibilidade não é favor nem detalhe pro final: é fazer o trabalho direito. então, da próxima vez que criar uma tela, pergunte: &lt;strong&gt;quem está ficando de fora disso aqui?&lt;/strong&gt; e você, tem alguma dica de acessibilidade do dia a dia? conta aqui nos comentários.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;REFERÊNCIAS&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://agenciadenoticias.ibge.gov.br/agencia-noticias/2012-agencia-de-noticias/noticias/48091-desigualdades-afetam-acesso-a-espacos-participacao-e-direitos-das-pessoas-com-deficiencia" rel="noopener noreferrer"&gt;ibge: censo 2022, pessoas com deficiência&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.who.int/news-room/fact-sheets/detail/disability-and-health" rel="noopener noreferrer"&gt;organização mundial da saúde: disability and health&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://webaim.org/projects/million/" rel="noopener noreferrer"&gt;webaim million 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2015/lei/l13146.htm" rel="noopener noreferrer"&gt;lei 13.146/2015, lei brasileira de inclusão&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://emag.governoeletronico.gov.br/" rel="noopener noreferrer"&gt;emag: modelo de acessibilidade em governo eletrônico&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gov.br/governodigital/pt-br/acessibilidade-e-usuario/vlibras/vlibras" rel="noopener noreferrer"&gt;vlibras: governo digital&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/TR/using-aria/#rule1" rel="noopener noreferrer"&gt;w3c: using aria, primeira regra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/ARIA/apg/practices/read-me-first/" rel="noopener noreferrer"&gt;w3c: aria authoring practices guide, read me first&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://overlayfactsheet.com/en/" rel="noopener noreferrer"&gt;overlay fact sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ftc.gov/news-events/news/press-releases/2025/04/ftc-approves-final-order-requiring-accessibe-pay-1-million" rel="noopener noreferrer"&gt;ftc: ordem final contra a accessibe (2025)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html" rel="noopener noreferrer"&gt;w3c: contrast minimum (wcag 2.2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/animation-from-interactions.html" rel="noopener noreferrer"&gt;w3c: animation from interactions (wcag 2.2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html" rel="noopener noreferrer"&gt;w3c: pause, stop, hide (wcag 2.2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/three-flashes-or-below-threshold.html" rel="noopener noreferrer"&gt;w3c: three flashes or below threshold (wcag 2.2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion" rel="noopener noreferrer"&gt;mdn: prefers-reduced-motion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://web.dev/articles/cls" rel="noopener noreferrer"&gt;web.dev: cumulative layout shift (cls)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://web.dev/articles/inp" rel="noopener noreferrer"&gt;web.dev: interaction to next paint (inp)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>a11y</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
