Revisão de Acessibilidade HTML

Introdução à Acessibilidade

  • Diretrizes de Acessibilidade para Conteúdo Web: As Diretrizes de Acessibilidade para Conteúdo Web (WCAG) são um conjunto de diretrizes para tornar o conteúdo web mais acessível para pessoas com deficiências. Os quatro princípios do WCAG são POUR que significa Perceptível, Operável, Compreensível e Robusto.

Tecnologia Assistiva para Acessibilidade

  • Leitores de tela: Programas de software que leem o conteúdo da tela do computador em voz alta. Eles são usados por pessoas cegas ou com deficiência visual para acessar a web.
  • Teclados grandes ou braille: Usados por pessoas com deficiência visual para acessar a web.
  • Ampliadores de tela: Programas de software que ampliam o conteúdo da tela do computador. Eles são usados por pessoas com baixa visão para acessar a web.
  • Dispositivos de apontamento alternativos: Usados por pessoas com deficiências de mobilidade para acessar a web. Isso inclui dispositivos como joysticks, trackballs e touchpads.
  • Reconhecimento de voz: Usado por pessoas com deficiências de mobilidade para acessar a web. Permite que os usuários controlem um computador usando a voz.

Ferramentas de Auditoria de Acessibilidade

  • Ferramentas Comuns de Acessibilidade: Google Lighthouse, Wave, IBM Equal Accessibility Checker e axe DevTools são algumas das ferramentas comuns de acessibilidade usadas para auditar a acessibilidade de um site.

Melhores Práticas de Acessibilidade

  • Estrutura adequada de níveis de título: Você deve usar níveis de título adequados para criar uma estrutura lógica para seu conteúdo. Isso ajuda pessoas que usam tecnologias assistivas a entender o conteúdo do seu site.
  • Acessibilidade e Tabelas: Ao usar tabelas, você deve usar o elemento th para definir células de cabeçalho e o elemento td para definir células de dados. Isso ajuda pessoas que usam tecnologias assistivas a entender a estrutura da tabela. Com o elemento caption, você pode escrever a legenda (ou título) de uma tabela, para que os usuários, especialmente aqueles que usam tecnologias assistivas, possam entender rapidamente o propósito e o conteúdo da tabela. Você deve colocar o elemento caption imediatamente após a tag de abertura do elemento table. Dessa forma, leitores de tela e outras tecnologias assistivas podem fornecer mais contexto anunciando a legenda antes de ler o conteúdo.
  • Importância de os inputs terem um rótulo associado: Você deve usar o elemento label para associar rótulos aos inputs de formulário. Isso ajuda pessoas que usam tecnologias assistivas a entender o propósito do input.
  • Importância de um bom texto alt: Você deve usar o atributo alt para fornecer uma alternativa em texto para imagens. Isso ajuda pessoas que usam tecnologias assistivas a entender o conteúdo da imagem.
  • Importância de um bom texto de link: Você deve usar texto de link descritivo para ajudar os usuários a entender o propósito do link. Isso ajuda pessoas que usam tecnologias assistivas a entender o propósito do link.
  • Melhores práticas para tornar conteúdo de áudio e vídeo acessível: Você deve fornecer legendas e transcrições para conteúdo de áudio e vídeo para torná-lo acessível a pessoas com deficiência auditiva. Você também deve fornecer descrições em áudio para conteúdo de vídeo para torná-lo acessível a pessoas com deficiência visual.
  • Atributo tabindex: Usado para tornar elementos focáveis e definir a ordem relativa na qual eles devem ser navegados usando o teclado. É importante nunca usar o atributo tabindex com um valor maior que 0. Em vez disso, você deve usar um valor de 0 ou -1.
<p tabindex="-1">Sorry, there was an error with your submission.</p>
  • Atributo accesskey: Usado para definir um atalho de teclado para um elemento. Isso pode ajudar usuários com deficiências de mobilidade a navegar no site com mais facilidade.
<button accesskey="s">Save</button>
<button accesskey="c">Cancel</button>
<a href="index.html" accesskey="h">Home</a>

WAI-ARIA, Roles e Attributes

  • WAI-ARIA: Significa Web Accessibility Initiative - Accessible Rich Internet Applications. É um conjunto de atributos que podem ser adicionados aos elementos HTML para melhorar a acessibilidade. Ele fornece informações adicionais para tecnologias assistivas sobre o propósito e a estrutura do conteúdo.
  • Funções ARIA: Um conjunto de funções predefinidas que podem ser adicionadas a elementos HTML para definir seu propósito. Isso ajuda pessoas que usam tecnologias assistivas a entender o conteúdo do site. Exemplos incluem role="tab", role="menu" e role="alert".
Existem seis categorias principais de funções ARIA:
  • Funções da estrutura do documento: Essas funções definem a estrutura geral da página web. Com essas funções, tecnologias assistivas podem entender as relações entre diferentes seções e ajudar os usuários a navegar pelo conteúdo.
  • Funções de widget: Essas funções definem o propósito e a funcionalidade de elementos interativos, como barras de rolagem.
  • Funções de marco: Essas funções classificam e rotulam as seções principais de uma página web. Leitores de tela as utilizam para fornecer navegação conveniente para seções importantes de uma página.
  • Funções de região ao vivo: Essas funções definem elementos com conteúdo que mudará dinamicamente. Dessa forma, leitores de tela e outras tecnologias assistivas podem anunciar mudanças para usuários com deficiências visuais.
  • Funções de janela: Essas funções definem sub-janelas, como diálogos modais pop-up. Essas funções incluem alertdialog e dialog.
  • Funções abstratas: Essas funções ajudam a organizar o documento. Elas são destinadas apenas para uso interno pelo navegador, não pelos desenvolvedores, então você deve saber que elas existem mas não deve usá-las em seus sites ou aplicações web.
  • Atributos aria-label e aria-labelledby: Esses atributos são usados para dar a um elemento um nome programático (ou acessível), o que ajuda pessoas que usam tecnologia assistiva (como leitores de tela) a entender o propósito do elemento. Eles são frequentemente usados quando o rótulo visual de um elemento é uma imagem ou símbolo em vez de texto. aria-label permite definir o nome diretamente no atributo enquanto aria-labelledby permite referenciar texto existente na página.
<button aria-label="Search">
    <i class="fas fa-search"></i>
</button>
<input type="text" aria-labelledby="search-btn">
<button type="button" id="search-btn">Search</button>
  • Atributo aria-hidden: Usado para ocultar um elemento de tecnologias assistivas como leitores de tela. Por exemplo, isso pode ser usado para ocultar imagens decorativas que não fornecem nenhum conteúdo significativo.
<button>
    <i class="fa-solid fa-gear" aria-hidden="true"></i>
    <span class="label">Settings</span>
</button>
  • Atributo aria-describedby: Usado para fornecer informações adicionais sobre um elemento associando-o a outro elemento que contém a informação. Isso dá às pessoas que usam leitores de tela acesso imediato às informações adicionais quando navegam até o elemento. O uso comum incluiria associar instruções de formatação a uma entrada de texto ou uma mensagem de erro a uma entrada após uma submissão de formulário inválida.
<form>
    <label for="password">Password:</label>
    <input type="password" id="password" aria-describedby="password-help" />
    <p id="password-help">Your password must be at least 8 characters long.</p>
</form>