Pular para o conteúdo

Como criar texto alternativo longo

Esse final de semana estava atualizando o site do meu casamento e me deparei com um problema. 

Minha noiva fez os textos alternativos longos e completos para a página de Galeria de fotos do nosso pré-wedding. 

Como utilizar esses textos alternativos de forma que pessoas não visuais possam ter a mesma experiência? 

Vem comigo nesse artigo, que vou te explicar como resolver esse problema de maneira prática. 

Entendendo o texto alternativo

A WCAG possui um critério de sucesso responsável por validar alternativas de texto. O critério é o 1.1.1 que nos informa: 

Todo conteúdo não textual que é apresentado ao usuário tem uma alternativa de texto que serve ao propósito equivalente

Existem algumas exceções, entretanto não é o objetivo esmiuçar elas. Esse critério tem a responsabilidade de dar uma experiência igualitária para as pessoas não-visuais ou de baixa visão.

Escrevi um guia completo sobre texto alternativo que pode ser muito útil para compreender todo o contexto. 

Meu cenário

Primeiramente tentei incluir os textos alternativos longos da forma que minha noiva fez, mas percebi que essa informação poderia ficar muito confusa. 

Dessa forma, optei por pesquisar outras soluções, graças a Deus a WCAG tem recursos muito interessantes que podem nos auxiliar para essa tarefa. 

Além dos critérios de sucesso, ela conta com o apoio das técnicas de sucesso. Basicamente são técnicas que orientam para que o conteúdo seja feito de forma acessível. 

No documento auxiliar Entendendo o Critério de Sucesso 1.1.1 (em inglês), existe uma sessão chamada técnicas, vamos basear nossos esforços nela. 

Entendendo a técnica de suficientes

O critério de sucesso 1.1.1 fornece diversas técnicas suficientes, atualmente existem 6 situações para seu uso, por exemplo:

  • Situação A: Se uma breve descrição pode servir ao mesmo propósito e apresentar o mesmo informações como o conteúdo não textual;
  • Situação B: Se uma breve descrição não puder servir o mesmo propósito e apresentar as mesmas informações que o conteúdo não textual (por exemplo, um gráfico ou diagrama);
  • Situação C: Se o conteúdo não textual for um controle ou aceitar a entrada do usuário;
  • Situação D: conteúdo não textual for mídia baseada em tempo (incluindo somente vídeo ao vivo e somente áudio ao vivo); um teste ou exercício que seria inválido se apresentado em texto; ou Destina-se principalmente a criar uma experiência sensorial específica;
  • Situação E: Se o conteúdo não textual for um CAPTCHA
  • Situação F: o conteúdo não textual deve ser ignorado pela tecnologia assistiva.

No meu caso, a situação que mais se encaixa era a Situação B: se uma breve descrição não puder servir o propósito e apresentar as mesmas informações que o conteúdo não textual. 

Analisando essa situação, encontramos a técnica alternativa para texto longo:

Pra minha solução vou precisar recorrer a um atributo ARIA chamado aria-describedby. O objetivo de usar essa técnica é garantir as descrições de imagens quando um texto alternativo curto não transmite adequadamente a função ou as informações fornecidas.

Basicamente o que iremos fazer é associar um texto descritivo a uma sessão com o auxilio do atributo ID. Isso é semelhante quando precisamos rotular um <label> com um <input>.

Compreendendo o aria-describedby

O atributo aria-describedby é um atributo global que identifica um elemento ou (elementos) que descrevam o elemento no qual o atributo é definido. 

Parece ser algo bem complexo não é mesmo? Vai por mim, é bem mais tranquilo do que parece. 

Descrição do aria-describedby

O atributo aria-describedby lista os id’s dos elementos que descrevem o objeto. Ele é usado para estabelecer uma relação entre widgets ou grupos e o texto que os descrevem.

Também podemos destacar uma semelhança com o atributo aria-labelledby, porém, isso fica para um próximo artigo.

Dessa forma, pensei que poderia usar uma descrição sucinta no atributo ALT e utilizar do aria-describedby para dar um suporte mais detalhado. 

Minha solução

Ao invés de colocar um texto alternativo extremamente grande no atributo ALT eu irei fazer da seguinte forma: 

<picture> 
   <source srcset="./images/couple.webp" type="image/webp"    <source srcset="./images/couple.jpg" type="image/jpeg">    <img src="/images/couple.jpg" alt="Bruno e Mari fazendo careta para a câmera." aria-describedby=”desc1”>
</picture>
<div class="visually-hidden id="desc1">
<p>Bruno é um homem branco, olhos escuros, usa gorro preto de lã e óculos de grau com armação preta arredondada e barba grande escura, está de casaco de zíper cinza escuro. Mariana é uma mulher branca, cabelos castanho claro longos, está com os olhos fechados apertados, está usando casaco preto e gola de lã cinza. Os dois estão com os rostos colados fazendo bico pra foto.</p> 
</div> 

Explicando o código:

Da linha 1 a 5 defino as imagens que serão carregadas, usando a tag <picture> o navegador irá decidir qual imagem será carregada, note que uso dois formatos: webp (um formato mais leve e novo) e o nosso velho conhecido jpg. 

Dessa forma, permito o browser decidir qual recurso ele irá carregar. 

Na linha 4, utilizo o atributo aria-describedby e passo o valor “desc1” para ele. 

Na linha 7 defino uma <div> que irá servir como um container para as informações ela possuí uma classe visually-hidden que permite que essa informação seja lida somente pelo leitor de telas e um id referenciando o mesmo valor que define no aria-describedby. 

Na linha 8, coloco a descrição longa que desejo. 

Leitura com o NVDA

O NVDA irá ler as duas informações, primeiramente o ALT curto e complementar com a descrição longa. 

Conclusão 

O uso do aria-describedby é uma técnica extremamente simples, porém, muito eficaz para esses cenários com um texto alternativo longo. 

Sempre é bom lembrar que usar atributos ARIA deve ser com muita cautela, pois, com grandes poderes vem grandes responsabilidades. 

11 Perguntas frequentes sobre acessibilidade

Acessibilidade é um tema em alta, por isso, traduzi as perguntas frequentes sobre acessibilidade.

Ele vai te ajudar em questionamentos básicos e clarear sua trajetória nesse universo de possibilidades.

Esse artigo é uma tradução livre com permissão do autor. O artigo original encontra-se em Answers to common (web) accessibility questions.

Inspirado nas respostas de Chris Coyier às perguntas comuns sobre design (web), que por sua vez foram inspiradas no post anterior de Dan Mall, aqui está uma lista de perguntas comuns sobre acessibilidade.

Sim.

Usamos links quando queremos levar o usuário a algum lugar, botões quando queremos que ele realize alguma ação.

Também usamos botões se a ação for enviar um formulário (mesmo se o usuário for redirecionado a algum lugar depois). Tentando evitar nuances neste post, mas aqui estão algumas nuances sobre botões e links.

2. Temos usuários com deficiência?

Sim.

É improvável que você conheça cada um de seus usuários e exatamente como eles usam a web. É ainda mais improvável que o grupo e as pessoas dentro dele permaneçam exatamente da mesma forma para sempre.

3. O que é uma auditoria de conformidade de acessibilidade?

Alguém verificará se o seu site atende a cada um dos 56 Critérios de Sucesso no WCAG (contando a versão 2.2, Níveis A e AA) ou não.

Escrevi um artigo falando sobre os novos critérios e seu uso.

Idealmente, eles também explicam quais são os problemas e como resolvê-los (para que você possa fazer isso). Isso também é chamado de avaliação de conformidade.

4. Quem deve “fazer” acessibilidade em nosso time?

Todos. Copywriters, desenvolvedores, designers e gerentes de produtos têm tarefas de acessibilidade a fazer.

5. Quais são alguns testes rápidos que posso fazer?

Use sua interface com as teclas Tab/ Shift Tab no teclado (verifique as configurações se estiver usando um Mac), você consegue acessar tudo sem um mouse? A ordem faz sentido?

Clique em rótulos para campos de formulário, eles devem focar no campo ao qual pertencem.

Verifique se seus vídeos e áudios (podcasts?) têm legendas/transcrições.

6. A acessibilidade já foi implementada?

Não. É um processo contínuo, mesmo que sua auditoria diga que você atende a todos os Critérios de Sucesso hoje, é comum deixar de atendê-los depois.

Os sites mudam. Você deve monitorar continuamente a acessibilidade, assim como faz com segurança e privacidade.

7. Temos obrigações legais para tornar nossos produtos acessíveis?

Muito provavelmente. Mesmo se você não for um órgão governamental (por exemplo, consulte a Lei de Acessibilidade Européia).

Existem políticas e leis em todo o mundo.

No Brasil, temos a Lei Brasileira de Inclusão.

8. É tudo culpa do meu site?

Não, alguns problemas podem ser resolvidos pelos navegadores, tecnologias assistivas e/ou ferramentas de autoria, como por exemplo, um CMS.

9. WCAG 3.0 será lançado em breve, certo?

Pouco provável. Os objetivos são bons e eu os apoio há muito tempo (ainda apoio), mas levará muitos anos para que isso se torne realidade.

A WCAG 3.0 ainda está em uma fase muito inicial. O algoritmo de cores que está sendo considerado é interessante para tentar atender desde já, pois atende melhor às necessidades do usuário do que o algoritmo atual do WCAG.

10. A “IA” melhorará a acessibilidade?

A aprendizagem de máquina ou Machine Learning, pode ser uma ótima ferramenta para automatizar parte do processo de legendagem em muitos idiomas, e várias outras coisas.

Mas é improvável que as Large Language Models ou LLMs, frequentemente chamadas de “IA”, gerem código acessível.

Para treinar uma LLM assim, seria necessário um conjunto enorme de código muito acessível (o que não existe).

A construção de componentes e a semântica de acessibilidade também exigem intencionalidade, que esses sistemas especificamente não são bons em fazer.

11. O score do Axe ou Page Insights é tudo o que importa para o meu site? Ou o resultado da auditoria WCAG?

Não. Qualquer sistema que pontue seu site e retorne um número (incluindo auditorias WCAG) não descreve completamente sua situação de acessibilidade.

A acessibilidade é, em última análise, sobre pessoas e se elas podem usar seu site. Trata-se de reconhecer e remover barreiras.

As métricas podem ajudar de várias maneiras, mas não são o objetivo final. E o mais facilmente mensurável nem sempre é o mais impactante.

Postagens de acessibilidade mais detalhadas podem ser encontradas em outros lugares no blog do Hidde.

WCAG 2.2: As últimas atualizações e como elas afetam a acessibilidade

Se você descobriu a WCAG a pouco tempo, vim te contar que irá acontecer grandes mudanças da WCAG 2.2.

Semana passada, a WCAG 2.2 mudou de status e passou para Proposed Recommendation.

O objetivo nesse estágio é garantir que o documento tenha qualidade suficiente para se tornar um Padrão da W3C.

Iremos percorrer por suas novidades e o que irá impactar de forma prática nos testes de acessibilidade. De forma resumido:

Vamos lá?

Comparação com a WCAG 2.1

A WCAG 2.2, vai continuar o bom trabalho da sua versão anterior. Dessa forma, a nova versão concentrou seus esforços em três grandes grupos:

  • usuários com dificuldades cognitivas ou de aprendizagem;
  • usuários com baixa visão;
  • usuários com deficiências em dispositivos mobile.

Curiosidades

A nova versão é compatível com a anterior, ou seja, um site que está em compliance com a WCAG 2.2 estaria também com a WCAG 2.1.

Um ponto interessante, o critério 4.1.1 Parsing foi descontinuado na WCAG 2.2.

Bem como, o critério 2.4.7 – Foco visível se tornou uma técnica obrigatória de implementação.

WCAG 2.2 e seus novos critérios

A WCAG 2.2 incluiu 9 novos critérios de sucesso. Eles são:

  • 2.4.11 Foco não obscurecido (mínimo) (Nível AA)
  • 2.4.12 Foco não obscurecido (aprimorado) (Nível AAA)
  • 2.4.13 Aparência do Foco (Nível AAA)
  • 2.5.7 Movimentos de Arrasto (Nível AA)
  • 2.5.8 Tamanho do Alvo (Mínimo) (Nível AA)
  • 3.2.6 Ajuda consistente (Nível A)
  • 3.3.7 Entrada Redundante (Nível A)
  • 3.3.8 Autenticação Acessível (Nível AA)
  • 3.3.9 Autenticação Acessível (aprimorado) (Nível AAA)

Vamos explicar cada critério de sucesso e como atendê-lo.

2.4.11 Foco não obscurecido (mínimo)

O critério 2.4.11 diz que o elemento que recebe foco não seja obscurecido pelo desenvolvedor. Embora existam algumas exceções como do sistema operacional e navegadores.

O foco será aplicado somente nos conteúdos que estão de fato focados. no momento.

Como atender 2.4.11

Para atender esse critério se faz necessário que o foco esteja visível e perceptível ao usuário, dessa forma, ele conseguirá interagir com os componentes.

O público mais beneficiado seria pessoas que utilizam o teclado, em especial, usuários com algum tipo de deficiência cognitiva ou de memória. Garantindo assim, que seja fácil de identificar os elementos focados.

2.4.12 Foco não obscurecido (aprimorado)

O critério 2.4.12 é o mesmo que o 2.4.11, exceto que é menos permissivo. O critério falha se qualquer parte do elemento focado esteja obscurecido.

2.4.13 Aparência do Foco

O critério 2.4.13 exige que o “indicador de foco” seja visualmente claro e conciso.

Possui relação com os critérios: 2.4.7 – Foco visível e 1.4.11 – Contraste não textual. Entretanto, possui algumas diferenças:

  • Critério 2.4.7: valida a existência de um indicador de foco;
  • Critério 1.4.11: define o nível mínimo de visibilidade.

Como atender 2.4.13

De maneira prática, uma vez que, podemos pensar em soluções como, usar contornos sólidos para a indicação de foco.

Entretanto, existem outras possibilidade para atendê-lo.

Recomendo verificar as técnicas de sucesso para cumprir esse critério. Um exemplo seria a imagem abaixo:

Critério 2.4.13 da WCAG 2.2, existem 2 botões azuis com um retângulo de foco de deslocamento escuro de 1 pixel de espessura ao redor do segundo.
Figura 1 Passes: Um retângulo de foco sólido em torno do segundo de dois botões.

2.5.7 Movimentos de arrastar

O critério 2.5.7 lida com interfaces que possibilitam arrastar os componentes. Semelhantemente, podemos citar alguns exemplos:

  • um mapa permite que os usuários arrastem sua visualização;
  • um board de Kanban que permite o usuário movimentar os cards.

Interfaces que possuem a funcionalidade de movimentos de arrastar, tem quatro ações distintas:

  • toque ou clique para estabelecer um ponto de partida e, em seguida,
  • pressionar e manter esse contato enquanto…
  • realizar o reposicionamento do ponteiro;
  • liberar o ponteiro no ponto final.

Não cumprir esse critério, prejudica pessoas com mobilidade reduzida, ou deficiências cognitivas. Contudo o ideal é fornecer outros meios de entrada para o usuário interagir com a interface.

Como atender 2.5.7

Para atender esse critério, se faz necessário ter outros meios de entrada para o usuário.

Um componente, por exemplo, color picker se enquadra nesse critério. Ele é acionado pelo movimento de arrasto.

Mas possui campos de texto para a entrada numérica de valores de cor permitem a definição de uma cor sem a necessidade de movimentos de arrastamento.

2.5.8 Tamanho do Alvo (mínimo)

A princípio o critério 2.5.8 tem como premissa garantir que os usuários possam ativar elementos sem clicar acidentalmente em outro elemento próximo.

Entretanto, existem algumas exceções:

  • Espaçamento: O deslocamento do alvo é de pelo menos 24×24 pixels para cada alvo adjacente;
  • Equivalente: A função pode ser alcançada através de um controle diferente na mesma página que atenda a esse critério.
  • Inline: O alvo está em uma frase ou bloco de texto;
  • Controle do agente do usuário: O tamanho do destino é determinado pelo agente do usuário;
  • Essencial: Uma apresentação particular do alvo é essencial.

Como atender 2.5.8

A princípio, podemos usar técnicas básicas para cumprir esse critério. O recomendável é utilizar um espaçamento entre os elementos seja 24×24 pixels.

Não necessariamente o elemento deve ter 24×24 pixels, mas a soma do alvo tenha esse tamanho.

Curiosidade: Ao cumprir o critério 2.5.5, automaticamente o 2.5.8 é satisfeito.

3.2.6 Ajuda consistente

O critério 3.2.6, exige que, os usuários consigam ajuda para concluir uma tarefa em um website.

O acesso aos mecanismos de ajuda pode ser diretamente pela página onde o usuário se encontra, ou através de um link para uma outra página com as informações de ajuda.

Dessa forma, o usuário tem opções para encontrar possíveis soluções.

Como atender 3.2.6

O website deve ter um modelo de design consistente, com hierarquia das informações de modo claro.

Se você for oferecer esse tipo de recurso, tenha em mente, de colocá-lo no mesmo local para manter conformidade.

3.3.7 Entrada Redundante

O critério 3.3.7 exige que informações previamente inseridas ou fornecidas pelo usuário sejam preenchidas de maneira automática, ou estejam disponíveis para que o próprio usuário as selecione, se for necessário.

Como atender 3.3.7

É extremamente simples implementar a lógica de sessão para pré-preencher campos usando informações que o usuário já inseriu.

Dessa forma, conseguimos manter a entrada redundante das informações.

3.3.8 Autenticação Acessível

O critério 3.3.8 está preocupado com testes de função cognitiva que são usados para autenticar usuários, como por exemplo, CAPTCHA onde devemos digitar uma série de caracteres, ou identificar um tipo específico de objeto.

Dessa forma, usuários com deficiência cognitiva ou problemas de memória, dislexia, discalculia serão extremamente beneficiadas com ele.

Como atender 3.3.8

Primeiramente atender esse critério é garantir que todas as formas de entrada de autenticação (como campos de nome de usuário e senha) suportem a cópia de seus valores.

Contudo, é uma boa ideia incluir um atributo em todos os campos que pedem as próprias informações de um usuário (conforme descrito no critério 1.3.5, embora isso não seja estritamente exigido pelo 3.3.8.

3.3.9 Autenticação Acessível (aprimorada)

Esse critério é idêntico ao 3.3.8, exceto que não possui exceções para testes de reconhecimento de objetos ou conteúdo pessoal.

3 dicas de produtividade para se organizar

Cada vez mais somos cobrados sobre produtividade, entretanto é muito comum nos encontramos perdidos, não é mesmo?

Por isso, quero trazer para vocês pequenas dicas sobre produtividade e como podemos melhorá-la.

Com esse pequeno guia, você vai conseguir ficar mais organizado e focado em seu cotidiano.

Vamos lá?

Por que isso é importante

Antes de mais nada, precisamos entender que nossa vida digital é extremamente exaustiva.

E realizar uma faxina digital torna-se necessário. Para se organizar de forma otimizada iremos basicamente de três tipos de softwares.

  1. Compromissos;
  2. Gerenciador de tarefas;
  3. Anotações.

Compromissos 📆

Tela de um smartphone com o Proton Calendar instalado
Proton Calendar

Compromissos são todos eventos que possuem data, hora e local para acontecer, por exemplo:

  • aniversários;
  • reuniões de trabalho;
  • casamentos;
  • palestras e etc.

Eu utilizo o Proton Calendar, que é integrante da suíte do Protonmail, mudei a um tempo do Google para o Proton por razões de privacidade de dados.

Nesse calendário, anoto todos os meus compromissos, dessa forma tenho uma visão geral. Isso me ajuda bastante a ter uma clareza dos meus compromissos.

A agenda digital funciona muito bem, porém, se você tem familiaridade com uma agenda manual não tem problema.

A ideia é organizar nossos compromissos de forma clara e otimizada.

Se esqueço de algum compromisso, recorro ao calendário e num fração de segundos tenho a resposta que preciso.

Gerenciador de tarefas 📌

Todoist

Além de um calendário, necessitamos de ter um local para armazenar nossas tarefas. O gerenciamento de tarefas é essencial para tirarmos de nossa cabeça preocupações desnecessárias.

Atualmente utilizo o Todoist na versão Pro, o valor da assinatura é baixo e seus benefícios são excelentes.

Uma das razões por assiná-lo é devido a suas integrações com outras ferramentas e uma inteligência artificial embutida. Percebo que, consigo ser mais produtivo utilizando ele.

Organizo minhas tarefas por ordem de prioridade, dessa forma quando olho para o Todoist seu que preciso de realizar algumas atividades antes de outras.

Mais uma vez a sensação de clareza e tranquilidade retorna em minha mente.

Anotações ✍

Para anotações digitais existem diversos softwares, entre os mais famosos estão: Evernote e o Notion.

Já utilizei ambos, mas me encontrei usando o Obsidian. Gosto dele pela escrita ser em markdown e outras funcionalidades.

Cada vez que anoto alguma ideia ou projeto, organizo de forma que consigo rastrear de forma rápida. Até então, tem em atendido prontamente.

Considerações finais

Com esses três softwares você irá conseguir sair de um caos completo para um ambiente organizado e controlado.

Lembrando que, foi essa forma que funcionou para mim. Pode ser que você precise de adaptar alguns pontos e está tudo bem. 😄

Acessibilidade Web: como começar do jeito certo

A acessibilidade web é um assunto cada vez mais importante para as pessoas interessadas em tornar a internet mais inclusiva. É essencial compreender como criar conteúdo acessível para que todos possam contar com a mesma experiência de navegação.


Neste artigo, vamos discutir sobre o que é acessibilidade na web e como você pode tornar seu conteúdo disponível para todos.

Vamos começar?

O propósito da web

Desde sua fundação, a web tem como propósito ser universal e acessível para todos. Tim Berns-Lee possuí uma frase que exemplifica isso:

O poder da Web está em sua universalidade.
O acesso por todos, independentemente da deficiência, é um aspecto essencial.

Tim Berns-Lee, fundador da web.

O fato curioso é que as especificações e princípios adotados pela W3C, eram e são extremamente passíveis de serem usados

Um deles é o princípio da interoperabilidade, que nada mais é do que sua aplicação conseguir funcionar para todas as pessoas independente do seu hardware, software, idioma, localização ou capacidade.

Quando isso acontece conseguimos incluir pessoas que foram excluídas ao longo de sua vida.

Dessa forma, as pessoas com deficiência são beneficiadas com o acesso, promovendo inclusão digital e autonomia para realizarem tomadas de decisões.

Mas para isso ocorrer necessitamos da acessibilidade, ela é essencial para desenvolvedores e organizações que desejam criar sites e ferramentas da web de alta qualidade e não excluir as pessoas de usar seus produtos e serviços.

Afinal, o que é acessibilidade na web?

Acessibilidade na web significa que nossos sites e aplicativos estejam preparados para serem acessados por qualquer pessoal, independente de sua necessidade específica.

Esses usuários devem poder perceber, compreender, navegar e interagir com o conteúdo sem restrição.

Ela abrange todas as deficiências que afetam o acesso, incluíndo:

  • auditivo;
  • cognitivo;
  • neurológico;
  • físico;
  • discurso;
  • visual.

Acessibilidade então é somente para pessoas com deficiência?

Esse é um mito extremamente comum quando somos leigos no assunto. Em uma explicação bem resumida é: NÃO.

Eu escrevi um artigo sobre 5 mitos de acessibilidade: conceitos incorretos e como corrigí-los, que reforça essa ideia que acessibilidade é para todos.

A acessibilidade traz muitos benefícios para pessoas que não possuem alguma deficiência também, por exemplo:

  • usuários de smartphones, smartwatch, outros dispositivos inteligentes como assistentes virtuais;
  • pessoas idosas que necessitam de uma nova forma de aprendizado devido a idade;
  • pessoas com deficiência temporárias, por exemplo, alguém que quebrou o braço;
  • pessoas que necessitam ver um vídeo e não conseguem habilitar o aúdio;
  • pessoas com “limitações situacionais”, como enxergar o conteúdo da tela do smartphone contra a luz solar;
  • pessoas que utilizam uma internet com conexão lenta.

Técnicas para deixar nossos produtos e serviços mais acessíveis

Diversos aspectos da acessibilidade são extremamente simples de serem implementados, outras são mais complexas.

Por isso a acessibilidade deve ser pensando no início do projeto para evitar retrabalho.

Descreve suas imagens

Carinha sorridente amarela utilizando um óculos escuros pretos. Ela exemplifica o uso do texto alternativo em imagens

Imagens são um dos elementos mais utilizados para transmitir informação na web. Dessa forma, devemos permitir que pessoas com deficiência visual possam compreender a informação da mesma maneira que nós.

Para deixarmos as imagens acessíveis devemos utilizar o atributo alt nas imagens. Ele permite que a imagem forneça um texto alternativo equivalente a sua representação visual.

Assim, os não-visuais conseguem compreender o conteúdo da mesma forma.

Você pode conferir o Guia Definitivo de texto alternativo que traduzi, nele contém dicas e informações valiosas sobre descrição de imagens.

Teclado de um iMac, com as teclas mais baixas. Sua estrutura é prata e as teclas brancas.
Foto de Clay Banks na Unsplash

Quando projetamos conteúdo para web, devemos pensar que as pessoas tem diversos tipos de entrada, como, por exemplo:

  • navegação através da fala;
  • navegação através do mouse;
  • navegação através do teclado;
  • navegação com leitores de telas.

Todos esses tipos de navegação conseguimos contemplar quando projetamos pensando em várias entradas.

O que devemos ter em mente: todos os recursos disponíveis via teclado devem estar disponíveis para o teclado.

Evite o baixo contraste

Existem 6 círculos na imagem conteúdo números ao centro de cada círculo. Devido ao daltonismo algum deles não são exibidos. Isso exemplifica o uso correto de contraste

Contraste é o campeão quando se trata de problemas de acessibilidade. Para garantir um bom contraste podemos utilizar ferramentas como o Color Contrast Analyzer.

Esssa ferramenta analisa o contraste e traz o resultado se possuí um baixo contraste ou não.

Pessoas que possuem daltonismo e baixa visão são extremamente prejudicadas quando não cumprimos isso.

Nesse sentido, gravei um vídeo usando o Accesible Colors. Ele é uma alternativa para o Color Contrast Analyzer.

Defina rótulos para os formulários

Formulário HTML que possuí os campos de: primeiro nome, último nome, data de nascimento, email e telefone celular. Existem dois botões um para enviar e outro para limpar o formulário
Foto de TutorialBrain

Um leitor de telas necessita que os inputs de um forrmulário estejam atrelados a um rótulo.

Esse rótulo deve representar o propósito do input.

Para resolver esse problema é extremamente simples, confira o trecho de código abaixo:

<label for="firstName">First Name</label>
<input type="text" name="firstName" id="firstName" />

Com o uso do atributo for, criamos um vínculo entre a label e o input. Dessa forma, quando o leitor de telas navegar pelo campo irá identificar corretamente qual é o seu objetivo de preenchimento.

Pode parecer extremamente trivial, entretanto, é bem comum vermos formulários sem esse atributo.

Minha dica é adota hoje mesmo o uso dos atributos corretos para uma melhor navegação nos seus formulários.

Defina o idioma da sua página

Talvez esse seja o defeito mais ignorado de acessibilidade. O atributo lang, é um aliado extremamente poderoso, contudo poucas pessoas utilizam ele da maneira correta.

Já escrevi sobre o uso correto do atributo lang. Basicamente, precisamos definir o idioma padrão do documento, para que, os leitores de tela e outras tecnologias assistivas possam ler da maneira correta.

Conclusão

Acessibilidade é um direto de todas pessoas para promover autonomia e facilidade no assim. Nesse sentido, devemos trabalhar para que os ambientes digitais sejam cada vez mais democráticos e inclusivos.

Desenvolver um produto ou serviço sem pensar em acessibilidade e dar um tiro no pé.

Referências

Algumas informações neste artigo são do documento Web Accessibility Initiative (WAI): Introduction to Web Accessibility. Shawn Lawton Henry. Copyright © 2010 W3C® (MIT, ERCIM, Keio). Status: Atualizado em 31 Março de 2022. https://www.w3.org/WAI/fundamentals/accessibility-intro/

5 mitos sobre acessibilidade que você precisa esclarecer

Ao longo da minha carreira já ouvi muita bobagem sobre acessibilidade.
Hoje vou mostrar os 5 mitos sobre acessibilidade.

Vamos lá…

1. Acessibilidade é somente para deficiente

O objetivo da acessibilidade é garantir que o conteúdo da web seja acessível por todos.
Um grupo de pessoas são mais beneficiadas, como por exemplo:

  • alguém com mãos ocupadas;
  • canhotos (como eu);
  • idosos;
  • crianças;
  • pessoas com baixo letramento.

Ou seja, todos.

Entretanto, Tim Berns-Lee certa vez comentou sobre o tema:

O poder da Web está em sua universalidade. O acesso de todos, independentemente da deficiência, é um aspecto essencial.
Tim Berns-Lee, citado em 1989.

Quando contemplamos acessibilidade, pensamos em todos.

2. Ninguém liga para isso

Não quer dizer que você ou sua empresa não se importa que todos seguem o mesmo fluxo.

Segundo o censo do IBGE de 2010, 45 milhões brasileiros necessitam de acessibilidade diariamente, para interagir com seus produtos e serviços na web.

Além disso, é constatado por uma pesquisa que menos de 1% dos sites brasileiroso são acessíveis.

A pandemia, aumentou drasticamente o pensamento de produtos e serviços acessíveis.

3. Não é meu público alvo

A web é multidisciplinar e extremamente diversa, pensar em um público específico é limitar o poder que emana dela.

Pense de forma universal, uma das formas de alcançar isso é utilizar o Design Universal para alcançar esse objetivo.

Não devemos setorizar as pessoas, muito menos pela sua deficiência.

4. Vou criar um site específico para acessibilidade

Lembro como se fosse hoje quando ouvi isso em um meetup. Algo que deve ficar claro: acessibilidade não é vilã dos padrões web.

Soluções como: Flexbox, CSS Grid e propriedades CSS3 contribuem para um site mais acessível.

Além de não fazer sentido, teríamos um custo a mais para desenvolver e segregaríamos as pessoas com deficiência.

5. Acessibilidade é perda de tempo

Ela em si não é perda de tempo, pois iria beneficiar possíveis clientes e novos usuários para nossas aplicações.

Também, iríamos alcançar diversas pessoas. O que pode ocorrer e ter um trabalho a mais devido um mau planejamento.

Outro ponto importante, cumprimos legislações nacionais e diretrizes internacionais.

Conhecendo o Web Accessibility Initiative

Se você é desenvolvedor web, ter conhecimento sobre o Web Accessibility Initiative (WAI) é essencial. Neste artigo, vamos explorar sobre a iniciativa e os recursos que ela disponibiliza para tornar a web um local mais acesssível e inclusivo para todas as pessoas.

O que é o Web Accessibility Initiative?

O Web Accessibility Initiative (WAI) é uma iniciativa conjunta entre o W3C e diversas empresas e grupos de usuários que trabalham com foco em acessibilidade digital. O objetivo do WAI é a criação de recursos e recomendações para ajudar desenvolvedores web a criarem conteúdos e websites que contribuam para melhorar acessibilidade digital.

Em outras palavras, é o local ideal para iniciarmos nossa jornada quando o assunto é acessibilidade na web.

Apesar disso, poucos profissionais conhecem o WAI e todos os recursos que ele pode oferecer. Portanto, conhecer a iniciativa é um grande diferencial para nossa carreira como desenvolvedor.

Quais recursos podemos encontrar?

O site é repleto de recursos que irão te auxiliar sobre acesssibilidade, contando com as seguintes categorias:

Fundamentos de acessibilidade

Essa sessão é um guia introdutório sobre acessibilidade, nela podemos encontrar uma breve introdução, os objetivos da acessibilidade, os princípios e recomendações de cursos.

Em outras palavras, esse é o lugar para dar seus primeiros passos no assunto.

Planejamento e políticas de acessibilidade

O planjemanto e as políticas são recursos para a visão empresarial. Se você quer adequar sua empresa em acessibilidade aqui é um excelente ponto de partida.

Conta com uma visão ampla de como implementar e os passos que podem ser tomadas para isso. \

Design e Desenvolvimento

Às vezes, é bem difícil encontrar um conteúdo de qualidade sobre acessibilidade. Nessa sessão temos excelente recursos que irão ajudar a desenvolver soluções acessíveis.

Em contrapartida, essa sessão não se destina somente para programadores e designers. Existem recursos para redatores e copywriters também.

Além disso, conta com diversos tutoriais para melhorar a acessibilidade das páginas, como:

  • estrutura de uma página;
  • construção de menu;
  • imagens acessíveis;
  • tabelas acessíveis;
  • formulários acessíveis;
  • carousels acessíveis.

Testes e avaliação

Uma das etapas mais importantes na construção de um software e sua testabilidade. Essa sessão concentra seus esforços em oferecer ferramentas para essa tarefa.

Em suma, você encontrará diversos recursos desde um checklist básica a uma validação mais avançada.

Guias de ensino

A princípio, essa parte é dedicada para pessoas que querem ser porta vozes da causa da acessibilidade. Nela contém referências e guias para evangelizar as pessoas e empresas em relação a acessibilidade.

Acredito que, é um excelente ponto de partida para pessoas que querem produzir conteúdo.

Padrões e diretrizes

Na estrutura do WAI, penso que, essa é a parte mais importante de todo o conteúdo. Nela temos as diretrizes e normas de acessibilidade para tornar o conteúdo acessível.

Dessa forma, temos a documentação oficial e demais recursos para auxiliar nossa jornada.

Recursos extra

Além de todos esses recursos, a iniciativa conta com outras frentes bem interessantes, como, por exemplo:

Conclusão

O Web Accessibility Initiative (WAI) é uma fonte de recursos voltados para acessibilidade, ativo a mais de 20 anos que auxilia a melhorar a acessibilidade digital em todo o mundo.

Se você é desenvolvedor web, então você deve considerar aprender as ferramentas e recursos do WAI para ajudar a tornar o seu conteúdo mais acessível para todos.

Acesse o site da Web Accessibility Initiative e descubra mais sobre o que eles fazem para ajudar a melhorar a acessibilidade digital.

Referências

Texto alternativo: o guia definitivo

Esta publicação contém tudo o que você precisa saber sobre texto alternativo! Quando usá-los e como desenhá-los perfeitamente. Por mim, Daniel, um desenvolvedor web com deficiência visual que usa um leitor de tela no meu dia-a-dia.


Texto postado originalmente em https://axesslab.com/alt-texts/ escrito por Daniel Göransson, adaptado e traduzido por Bruno Pulis.

Minhas experiência com imagens na web

Eu uso uma combinação de ampliação e leitores de tela ao navegar na web.

Como princípio básico, uso ampliação em telas maiores e leitores de tela em dispositivos menores.

Eu, como qualquer um, encontro várias imagens surfando na web. Se eu estiver usando um leitor de tela e depender de obter uma descrição da imagem — o texto alternativo — mostra essa informação.

Muitas vezes o texto alternativo não ajuda, sendo um desperdício do meu tempo porque não transmite qualquer significado.

Deixe-me ilustrar isso na página inicial do The Verge. Isto é o que exibe para pessoas com visão:

Listagem de notícias com imagem e título do artigo.

Abaixo é o que eu vejo. Eu substituí as imagens com o que meu leitor de tela lê:

Nomes de arquivos estranhos em balões de fala em vez de imagens na lista de notícias.

Não ajuda muito, não é?

Aqui estão algumas falhas comuns de texto alternativo que encontro:

  • “cropped_img32_900px.png” ou “1521591232.jpg” — o nome dos arquivos, provavelmente porque a imagem não tem o atributo alt definido.
  • “ — em todas as imagens do artigo, provavelmente para melhorar o ranking de busca (SEO).
  • “Fotografa: Emma Lee” — provavelmente porque o editor da redação não sabe para que serve um texto alternativo

Os textos alternativos nem sempre são tão ruins, mas geralmente há muito a melhorar. Então, se você é um iniciante ou quer levar o seu “jogo” para o próximo nível, aqui está o nosso guia final para textos alternativos!

O que é um texto alternativo

Um texto alternativo é uma descrição de uma imagem mostrada para pessoas que por alguma razão não conseguem ver a imagem. Entre outros, textos alternativos auxiliam:

  • pessoas com baixa visão ou cegas;
  • pessoa que desabilitaram imagem para economizar dados;
  • motores de busca (ex: Google, Bing).

O primeiro grupo — pessoas com baixa visão ou cegas — é o grupo que mais se beneficia com os textos alternativos. Eles utilizam algo chamado leitores de tela para navegar na web. Um leitor de tela transforma uma informação visual em fala ou braile. Para fazer isso com precisão, as imagens do seu site precisam ter textos alternativos.

Textos alternativos são super importantes! Tão importantes que o WCAG tem textos alternativos como sua primeira guideline a ser seguida:

Todo o conteúdo não textual que é apresentado ao usuário tem um texto alternativo com o propósito de ser equivalente.

– WCAG guideline 1.1.1

Como eu adiciono um texto alternativo?

No HTML, um texto alternativo é um atributo em um elemento de imagem:

<img src="cachorro.png" alt="Cachorro brincando no prado." />

A maioria dos gerenciadores de conteúdo, como WordPress, permite a você criar um texto alternativo quando subir a imagem:

Campo de descricao alternativa do WordPress

Esse campo geralmente é chamado de Texto Alternativo mas em algumas interfaces é chamado de “descrição da imagem” ou algo similar.

6 passos para criar textos alternativos fabulosos

1. Descreva a imagem

Pode parecer óbvio, mas um texto alternativo deve descrever uma imagem. Por exemplo:

“Grupo de pessoas em uma estação de trem.”
“Bebê feliz brincando numa caixa de areia.”
“Cinco pessoas na fila do supermercado.”

As coisas que não pertencem a um texto alternativo são:

  • O nome do fotógrafo. Isso é bem comum, mas não faz sentido.
  • Palavras chave para SEO. Não preencha o texto alternativo com palavras irrelevantes que você espera classificar no page rank do Google. Não é para isso que os textos alternativos servem e só irá confundir seus usuários.

2. Conteúdo do texto alternativo depende do seu contexto

Como você descreve a imagem depende do seu contexto. Deixe-me dar-lhe um exemplo:

Homem de meia idade parecendo tenso na chuva. Fotografia em tons de cinza com fundo fora de foco.

Se essa imagem fosse exibida em um artigo sobre fotografia, o texto alternativo poderia ser algo ao longo das linhas de:

“Close, fotografia em tons cinza de homem em ambiente externo, rosto em foco, fundo desfocado”.

Se a imagem estiver em um site sobre uma série de TV, um texto alternativo apropriado pode ser completamente diferente:

“Estrela do show, Adam Lee, parecendo tenso, lá fora na chuva”.

Então, escreva um texto alternativo que seja o mais significativo possível para o usuário no contexto em que eles estão.

3. Mantenha-o conciso

Lendo a sessão anterior, você pode estar pensando consigo: “Eu como um usuário vidente, posso perceber vários detalhes das imagens, como quem é, como é fotografado, tipo de jaqueta, idade aproximada do cara e muito mais.

Por que não escrever um texto alternativo detalhado e longo para que um usuário com deficiência visual obtenha tanta informação quanto eu?

Fico contente por ter perguntado!

Francamente, você pode obter as informações necessárias da imagem num piscar de olhos, e é isso que estamos tentando conseguir, também, para usuários com leitores de tela.

Dê as informações necessárias no texto alternativo, mas torne-o o mais curto e conciso possível.

Uma das poucas vezes que você deve escrever textos alternativos longos é quando você está descrevendo uma imagem contendo texto importante. Idealmente, você não deve ter imagens de texto, mas às vezes você precisa. Como em algumas capturas de tela ou fotos.

Mas a regra geral é mantê-lo conciso e evitar uma experiência prolixa.

4. Não diga isso é uma imagem

Não inicie um texto alternativo com “Imagem de”, “Foto de” ou similar. O leitor de tela adiciona isso por padrão. Então se você escrever “Imagem de” no texto alternativo, o leitor de tela dirá “Imagem Imagem de…” e bom, isso não é muito agradável.

Uma coisa que você pode fazer é encerrar o texto alternativo afirmando se é um tipo especial de imagem, como uma ilustração.

“Cão pulando através de um aro. Ilustração.”

5. Finalize com a pontuação

Sempre termine um texto alternativo com pontuação .

Isso fará com que os leitores de tela, utilizem pausas após a última palavra no texto alternativo, o que cria uma experiência de leitura mais agradável para o usuário.

6. Não utilize o atributo title

Muitas interfaces têm um campo para adicionar textos no title a imagens próximas de onde você pode adicionar um texto alternativo.

Ignore o texto no atributo title! Ninguém os usa — eles não trabalham em telas sensíveis ao toque e no desktop eles exigem que o usuário passe o cursor sobre a imagem por algum tempo, o que ninguém faz.

Além disso, adicionar um atributo title faz com que alguns leitores de tela leiam o title e o texto alternativo, que se torna redundante. Então, não adicione um atributo title.

Quando não usar um texto alternativo

Na maioria dos casos você deve usar um texto alternativo para imagens, mas existem algumas execeções onde você deve deixar o atributo alt em branco.

Nota importante: nunca remova o atributo alt, pois irá quebra o padrão html.

Mas você pode defini-lo como uma string vazia, ou seja: alt=””. Faça isso nos seguinte casos.

Imagens repetidas em feeds

Imagine que você está percorrendo seu feed do Twitter. Toda vez que quiser ler um novo tweet, primeiro você deve ouvir “Foto de perfil do usuário <nome de usuário da pessoa que postou>”. Na minha opinião, isso seria super irritante!

Outros exemplos de feeds são:

  • Uma lista de links para artigos. Como o da página Artigos;
  • Chat ou feed de mensagens;
  • Feeds de comentários.

Portanto, para uma experiência de usuário ideal, deixe o texto alternativo em branco para imagens que são usadas repetidamente em feeds.

Ícones em labels

Você sempre deve ter labels ao lado de ícones. Supondo que você faça, o ícone não deve ter um texto alternativo. Deixe-me explicar o porquê!

Vamos dar um exemplo de mídia social como exemplo:

Ícones do Facebook e twitter com rótulos de texto.

Se você escrevesse um texto alternativo para o ícone do Facebook, um leitor de tela diria algo ao longo da linha: “Facebook Facebook”. Muito redundante!

OK, isso não é tecnicamente sobre textos alternativos, mas ainda é importante: certifique-se de que tanto o ícone quanto o texto do link estão no mesmo atributo de link, para obter uma experiência fluída. Como isso:

<a href="...">
  <img src="fb_icon.png" alt="" />
  Facebook
</a>

Outro erro comum está nos botões de menus:

Ícone do menu com e sem rótulo.

Se o botão de menu não tiver um label visual — o que, de maneira direta, é realmente ruim para a experiência do usuário, ele precisa de um texto alternativo (ou outra maneira de descrever sua função no código, como aria-label).

Explique a função do ícone, como “Menu”. Não escreva “Três linhas horizontais” ou “Hambúrguer principal”, que infelizmente são exemplos reais em que eu tropecei.

Se o ícone do menu tiver um label, você deve deixar o texto alternativo em branco. Muitas vezes eu encontro botões de menu que são lidos como “Menu Menu”. Uma vez, encontrei um “menu menu hambúrguer”. Um pouco confuso, não diria?

Imagens em links

Geralmente, uma imagem com um link é acompanhada com um texto. Como o exemplo abaixo:

Imagem acima de um link em um site de notícias.

Nesse caso, a imagem e o link devem estar na mesma tag de link no HTML. Você pode simplesmente deixar o texto alternativo em branco. O importante para o usuário é ouvir o texto do link.

Um texto alternativo da imagem só distrai, adicionando informações que o usuário não achará necessário. A imagem provavelmente é encontrada na página que está vinculada, e então você pode dar uma boa explicação sobre ela no atributo alt.

Se você realmente, precisar ter uma imagem em um link sem um texto de acompanhamento, então o texto alternativo deve descrever o destino do link, e não a imagem.

Imagens decorativas

De preferência, imagens decorativas que não transmitam nenhum significado ao usuário devem ser colocadas como imagens de fundo em CSS. Provavelmente nem é preciso dizer, mas isso significa que você não precisa de textos alternativos nelas.

Eu classificaria a maioria das imagens em que você coloca texto como decorativas. Você não precisa de um texto alternativo nelas. Um exemplo é a imagem de fundo na página inicial do Netflix:

Página inicial do Netflix com texto no topo de uma imagem de fundo mostrando capas de filmes.

Casos especiais

Logos no banner

Logos no banner quase sempre ligam para a página inicial do site. As opiniões variam um pouco sobre o tema de textos alternativos para logotipos.

Alguns dizem que deve incluir o nome da empresa, o fato de ser um logotipo e o destino do link. Como tal:

“Axess Lab, logotipo, ir para página inicial.”

Na minha opinião, isso é um pouco detalhado. Muito barulho! Como meu leitor de tela já me diz que é uma imagem e um link, só sinto que preciso ouvir o nome da empresa. Pelo fato de ser uma imagem, suponho que seja um logotipo e, pelo fato de ser um link, suponho que siga as convenções e os links para a página de início.

SVG

Gráficos vetoriais escaláveis (SVG) é um formato de imagem que está se tornando cada vez mais popular na web. E eu amo eles! Eles mantêm sua nitidez enquanto fazem zoom e ocupam menos espaço para que os sites carregem mais rápido.

Existem dois caminhos principais para adicionar um SVG a uma página HTML.

  1. Dentro de um elemento img.
    Nesse caso, basta adicionar um texto alternativo como de costume:
<img src="dog.svg" alt="Cachorro brincando na grama." />

2. Usando uma tag svg. Se você usar esse método, não pode adicionar um atributo alt porque não há suporte para isso.

No entanto, você pode contornar isso adicionando dois atributos WAI-ARIA: role=“img” e aria-label = “texto alternativo”.

Na verdade, para o segundo caso, você deve ser capaz de adicionar seu alt-text como um elemento de título no svg, mas não há suporte suficiente para isso em navegadores e tecnologias assistivas no momento.

O computador não pode fazer isso por mim?

Embora a Machine Learning e a inteligência artificial melhorem rapidamente e possam descrever algumas imagens com bastante precisão, elas não são suficientemente boas para entender o contexto relevante no momento.

Além disso, as máquinas não são suficientemente boas para decidir o que é “conciso”, e muitas vezes descreverão demais ou muito pouco da imagem.

Facebook e Instagram, atualmente incluíram uma feature que descreve imagens automaticamente. Mas eu percebo que as descrições são muito genéricas. Uma imagem no meu feed agora é descrita como: “Gatos dentro de casa”. A foto atual exibe um gato caçando um rato de brinquedo.

Então me desculpe, você ainda deve escrever textos alternativos!

Obrigado por criar uma web melhor!

Estou feliz por você ter lido até aqui! Isso quer dizer que você se importa em tornar a web um lugar melhor para todos os usuários. Compartilhe o conhecimento e continue sendo incrível!

Afinal, o quê significa A11y?

Talvez você já tenha visto pessoas utilizando o termo a11y ou até mesmo a hashtag #a11y e não compreendeu a correlação dele com acessibilidade. Este termo refere-se a palavra inglesa accessibility.

Os dois caracteres do meio são o número um, não ” L” s minúsculos . Diga como “A-um-um-Y” ou “A-onze-Y”. Pode ser pronunciado também como, ally ou aliado em português.

Qual o sentido e significado de A11y?

O termo, representa a ideia de ser aliado das pessoas com deficiência, afim de, reivindicar, promover e celebrar o direito ao acesso a informação.

Quando utilizamos, dizemos que somos aliados de uma causa tão nobre e em contrapartida, referenciando a acessibilidade digital em si.

Sigla A11y exemplificada

Existem outros termos que utilizam a mesma lógica, por exemplo:

  • A internacionalização é representado pela sigla i18n;
  • A localização é representada pela sigla i10n;
  • World Wide Web, pode ser representado por W3

Voce conhecia esse termo?

Comente abaixo e se esse artigo te ajudou considere me apoiar.

Acessibilidade para iniciantes


Importante

Este artigo foi originalmente escrito por Karina Chow e traduzido e adaptado por mim. Houve a autorização da autora para realizar a tradução.


No mundo atual da computação ubíqua e no desejo de todo o setor de melhorar a diversidade e inclusão de empresas e produtos, não há mais uma desculpa para não investir em acessibilidade na web. Dito isso, começar a acessibilidade na web pode ser uma tarefa difícil. É difícil saber por onde começar e o que você pode fazer agora para melhorar seu produto!

Quando eu estava começando, estava muito confusa e sentia que estava constantemente pesquisando definições no Google. Felizmente para mim, eu tinha uma colega que era muito qualificado e respondeu implacavelmente a muitas das minhas perguntas. Agora, se você me permitir, gostaria de ser seu colega e apresentar uma introdução abrangente à acessibilidade na web.

Se você trabalha com produtos e gostaria de defender a acessibilidade na web, mas não sabe por onde começar, este é o guia para você!

Se você – ou a liderança da sua empresa – ainda precisa ser convencido de por que vale a pena gastar tempo ou dinheiro em acessibilidade, recomendo a leitura do guia sobre Como convencer a liderança da empresa a se preocupar com a acessibilidade.

O que é acessibilidade web?

Ser acessível significa que sites, ferramentas e tecnologias são projetados e desenvolvidos para que pessoas com deficiência possam usá-los. Dizemos que deve ser P.O.U.R .: Perceptível, Operável, Compreensível e Robusto. Voltaremos ao que tudo isso significa mais profundamente em um momento!

O que é a11y?

Existem onze letras entre o A e Y na palavra accessibility, então as pessoas começaram a abreviá-la como a11y. Tem a vantagem adicional de se parecer com a palavra aliado, por isso as pessoas às vezes a usam como tal. Na maioria das vezes, ouço as pessoas dizerem em voz alta como “a-eleven-y”, mas nesse ponto você também pode dizer “acessibilidade”!

A palavra a11y é o termo usado em inglës para 'accessibility'

Fonte: The A11y Project

Quem define o que é acessível ou não?

As Diretrizes de Acessibilidade de Conteúdo da Web (WCAG) são o norte quando se trata em medir quão acessível o seu produto digital é. Elas foram criadas pelo  World Wide Web Consortium (W3C), o mesmo grupo que define os padrões web para interatividade, internacionalização, segurança, computação mobile e muito mais. Estes são os padrões internacionais que todos os nossos navegadores seguem.

No contexto americano, se você receber uma ação judicial da ADA, muitas vezes será citada que seu site não está em conformidade com a WCAG como evidência objetiva de sua falta de acessibilidade.

No Brasil, temos a Lei Brasileira de Inclusão, ou LBI, que regulamenta as questões que envolvem acessibilidade no contexto digital.

Como as pessoas podem tentar interagir com meu site?

Assim como a conformidade com HIPAA é um padrão em constante mudança conforme o setor de saúde e a Internet se expandem, a conformidade com WCAG também está sempre evoluindo e não está confinada a uma pequena lista de TODOs do tipo definir e esquecer. Uma equipe não pode “resolver” a acessibilidade em uma empresa; em vez disso, eles devem se comprometer a lidar com isso continuamente.

O padrão WCAG mais recente (no momento da redação deste artigo em 2021) é WCAG 2.1. A WCAG é medida com três níveis de conformidade, de A (mais baixo), AA, a AAA (mais alto). Para medir a acessibilidade do seu site, você mede o quão compatível ele é com qualquer um desses níveis WCAG.

“Conformidade WCAG 2.1 AA” significa “Precisamos aderir ao padrão WCAG 2.1, com conformidade duplo A”

Por exemplo, para mídia baseada em tempo, aqui estão alguns exemplos das diferenças entre os níveis de conformidade:

  • A – “Conformidade mínima” – Legendas para vídeo/áudio pré-gravado, alternativas fornecidas para vídeo/áudio pré-gravado (por exemplo, transcrições);
  • AA – “Conformidade aceitável” – Tudo em A legendas para vídeo/áudio ao vivo, narrações adicionais fornecidas durante o vídeo pré-gravado;
  • AAA – “Optimal Compliance” – Tudo em AA e interpretação em linguagem de sinais para vídeo, narrações mais detalhadas fornecidas durante e em pausas para vídeo pré-gravado, transcrições ao vivo
    Ao estabelecer metas de acessibilidade, pode ser aconselhável definir o nível de conformidade que você gostaria de atender, para que todos que trabalham no projeto possam trabalhar para a mesma meta.

Se você não sabe qual nível de conformidade seguir, a conformidade WCAG 2.1 AA é considerada aceitável e cobrirá a grande maioria dos casos de uso.

Quais são os diferentes tipos de deficiência?

Ao projetar seu produto para a web, você provavelmente está sempre imaginando uma pessoa com um teclado e um mouse. No entanto, diferentes tipos de deficiência proíbem as pessoas de interagir com seu produto dessa maneira tradicional.

Com quais ferramentas as pessoas podem acessar a internet?

As deficiências mais comumente consideradas são as deficiências visuais, mas existem muitas outras categorias, todas as quais você deve considerar ao tornar seu produto acessível:

  • Visual – cegueira, daltonismo, baixa visão, glaucoma;
  • Audição – surdez, deficiência auditiva;
  • Motora – Controle de motor fino limitado;
  • Cognitiva – Focalização difícil, dificuldades de aprendizagem;
  • Convulsões.

Como devo considerá-los ao testar meu produto digital?

Diferentes tipos de deficiências ditam como você pode acessar e interagir com os sites. Uma lista com algumas alternativas populares:

  • Teclado
    Algumas pessoas não utilizam o mouse somente o teclado. Isso é comum entre pessoas com deficiências motoras que não conseguem operar os movimentos finos que um mouse exige.
  • Leitores de tela
    Tecnologia assistiva que lê o que está na tela, mais comumente usada por pessoas com cegueira ou baixa visão. Normalmente operado usando apenas um teclado.
  • Zoom do Browser (idealmente, suporte até 200%)
    Pessoas com deficiência visual podem usar o recurso de zoom em seus navegadores para compreender melhor o texto e ver as imagens.
  • Estilos customizados
    Pessoas com baixa visão ou daltonismo podem ter suas próprias folhas de estilo personalizadas para ajustar estilos como tamanho e cor da fonte

Como aprendo a usar um leitor de tela?

Muitas pessoas veem “acessibilidade” e imediatamente consideram isso “uso do leitor de tela”. O fato é que você não precisa aprender a usar um leitor de tela para tornar seu produto acessível. As diretrizes WCAG são detalhadas o suficiente para que você possa simplesmente segui-las e usar a navegação do teclado para testar a maioria das coisas. E, como aprendemos acima, há muitas maneiras de um usuário usar seu site, além de um leitor de tela.

Dito isso, pessoalmente acho útil aprender a usar um leitor de tela porque ele pode ajudar a desenvolver empatia em você pelo que os usuários que os usam passam e pode ajudar a identificar fluxos de produtos insatisfatórios. As diretrizes podem ensiná-lo a marcar seu HTML corretamente e dar bons conselhos sobre como projetar com acessibilidade em mente, mas nada ilustra verdadeiramente como seu produto pode ser confuso do que ouvir seu conteúdo lido em voz alta em uma ordem sem sentido. Para esse propósito, eu gosto de recomendar que as pessoas pelo menos tentem aprender o básico.

Existem muitas ferramentas interessantes online para ensinar a proficiência básica do leitor de tela. Eu recomendaria este guia Codecademy sobre como inicializar um leitor de tela pela primeira vez. Dependendo de qual leitor de tela você usa, também há guias para cada um individualmente. O VoiceOver do Mac OSX tem muita documentação e também há este glossário de comandos que é útil. O JAWS é muito popular para Windows e também tem uma boa lista de comandos.

Depois de aprender um pouco, você pode praticar suas coisas neste divertido guia prático.

Os sites devem ser P.O.U.R

Vamos circular todo o caminho de volta à nossa declaração inicial. De acordo com as WCAG, existem 4 Princípios da Acessibilidade que todo produto deveria aderir a:

  1. Perceptível — as informações precisam estar disponíveis para pelo menos um sentido (visão, audição, tato);
  2. Operável — um usuário deve ser capaz de realizar todas as ações da interface (ou seja, com um teclado);
  3. Compreensível — um usuário deve entender o idioma em uma página e como operá-lo;
  4. Robusto — diferentes agentes de usuário, incluindo tecnologias assistivas, o conteúdo deve ser capaz de acessar todo o conteúdo.

O principal objetivo dos entusiastas de acessibilidade é atingir todos os quatro itens para todos os tipos de deficiência e tipos de dispositivos de entrada. Conforme mencionado anteriormente, existem muitos tipos de deficiência e mais dispositivos de entrada estão sendo inventados o tempo todo, então é uma missão para toda a vida, em vez de um objetivo único.

Espero que você se sinta um pouco menos assustado com o mundo da acessibilidade na web. Gostaria de agradecer a Jenna Lee, aquela colega que me ensinou praticamente tudo o que sei.

Fique atento para artigos futuros sobre como incorporar o trabalho de acessibilidade em seus ciclos de vida de produto, bem como instruções mais acionáveis sobre o que fazer em suas bases de código. Desejo-lhe boa sorte e obrigado pelo seu interesse em ser um defensor da acessibilidade!

Recursos adicionais

Gostaria de aprender ainda mais? Aqui estão alguns ótimos recursos:

  • Google’s A11ycasts, uma série de vídeos ensinando o básico de acessibilidade pelo time de desenvolvimento da Google;
  • WCAG 2.1 Guidelines, versão atual das diretrizes de acessibilidade;
  • WebAIM, muita informação de acessibilidade e até mesmo treinamentos de certificação;
  • Awesome A11y, uma lista com recursos sobre acessibilidade;
  • ANDI, uma ferramenta de teste de acessibilidade automatizada para executar em suas páginas da web;
  • Lighthouse, uma ferramenta automatizada para SEO, acessibilidade e desempenho;
  • The A11y Project, educação sobre como fazer designs acessíveis;
  • Mozilla’s a11y documentation, documentação sobre a11y fácil de compreender.

Acessibilidade e critérios de aceite: o quê eles tem um comum?

Como QA, somos responsáveis por garantir a qualidade do software.

Uma das etapas mais importantes é a análise dos critérios de aceite.

Essa etapa consiste em analisar, validar e verificar os artefatos de cada estória.

Um dos aliados aos critérios de aceite é a acessibilidade. Neste artigo, vamos explorar a sua relação.

Recapitulando, o que é acessibilidade na web?

Antes de mais nada, devemos recapitular o que é acessibilidade na web.

Acessibilidade na web é a capacidade de pessoas com deficiência poderem consumir produtos e serviços na internet de forma autônoma, promovendo assim, liberdade de escolha e qualidade de vida.

Foi dada a largada de mais uma sprint, como um bom analista de qualidade você inicia os preparativos para manter seu trabalho de forma organizada, clara e documentada.

Assim, fazemos uma análise dos requisitos de cadas estória que será trabalhada durante a sprint. Percebemos que o produto não está conformidade as diretrizes de acessibilidade e, por consequencia, quebra um dos pilares da qualidade descritos na ISO 25010.

O que fazer nessa situação?

Conceito de Critério de Aceite

Os critérios de aceitação são as condições que um produto de software deve atender para ser aceito por um usuário, cliente ou outro sistema. Eles são exclusivos para cada história de usuário e definem o comportamento do recurso da perspectiva do usuário final. Critérios de aceitação bem escritos ajudam a evitar resultados inesperados no final de um estágio de desenvolvimento e garantem que todas as partes interessadas e usuários fiquem satisfeitos com o que obtêm[1].

Podemos utilizar os critérios de aceite das mais variadas formas, como, por exemplo:

  • Orientado a cenários (Gherkin);
  • Checklist;
  • Formatos personalizados.

Garantindo a acessibilidade nos critérios

Num ambiente ágil, ocorre a famosa reunião dos Three Amigos, onde PO, QA e líder técnico fazem o refinamento de funcionalidades que são candidatas para uma sprint.

O objetivo dessa reunião e ter uma visão do mesmo problema em aspectos diferentes. O negócio exige determinados aspectos, enquanto o líder técnico apresenta as possibilidades de desenvolvimento. Em contrapartida, nós analistas de qualidade visamos criticar o produto e levantar cenários de testes funcionais e não funcionais.

Neste momento, podemos elencar critérios de acessibilidade. Para exercitarmos, iremos pensar num componente de interface bem comum no cotidiano: uma janela modal.

Escrevendo a estória de usuário

Como descrição da atividade o PO levou para o refinamento os seguintes critérios:

Na aplicação da ACME Corportarion, no fluxo de Compras devemos exibir um botão onde o usuário poderá incluir seu endereço de entrega. Ao clicar nesse botão deve ser exibido uma modal para o preenchimento do seu endereço.

A estória de usuário foi definida, de acordo, com a especificação abaixo:

Como usuário gostaria quando selecionar "Add Delivery Address" seja exibido um formulário para preencher meu endereço.

Em um brainstorming, foi levantado o protótipo que tem o objetivo de concluir a jornada de cadastro de endereço.

Uma janela modal, nela existem informações sobre o endereço do usuário

Exemplo de modal

Pensando de forma analítica, costumo prestar atenção nos detalhes especificamente quando temos palavras mágicas como: alta retenção, jornada de compras. Sabendo da importância disso, comecei imaginar alguns critérios.

Definindo os critérios

Aparentemente é uma tela inocente de fácil implementação, porém, como diz o ditado “o diabo mora nos detalhes”. Ela servirá de um bom exercício para identificarmos critérios de aceite voltados para a acessibilidade especificamente.

Comportamentos

Devemos prever os comportamentos desse componente, por exemplo:

  • quais são as teclas que exibem e ocultam a modal?
  • quais teclas de atalho deverão ser mapeadas?
  • como será a apresentação desse componente na tela?
  • existirá algum elemento que receberá o foco quando ela for exibida?

Com esses questionamentos, poderiamos refinar os critérios conforme abaixo.

[ACME-123] Cadastro de Endereço de Entrega

Como usuário gostaria quando selecionar "Add Delivery Address" seja exibido um formulário para preencher meu endereço.

Critérios de Aceite

A modal deve ocupar 100% da tela, permitindo o conteúdo ser mais fácil de ler e ser exibido em telas pequenas;
Deve ser seguido o mapeamento das teclas de acordo com a tabela Suporte ao teclado
Deve ser exibida a modal através do clique no botão "Add Delivery Address";
Deve ser exibida a modal através do teclado no botão "Add Delivery Address":
deve ser aberta com a tecla ENTER;
deve ser aberta com a tecla SPACE.
A navegação deve ser somente na modal;
Não deve focar outros elementos que não estão no contexto da modal;
O foco inicial deve ser no primeiro input do formulário;
A janela modal não precisa de uma descrição extra (aria-describedy);
O botão de "Cancel" fecha a modal e retornar o foco para o botão "Add Delivery Address";
A tecla ESC deve fechar a modal e retornar o foco para o botão "Add Delivery Address";

Suporte do teclado

TeclaFuncionalidade
TabMove o foco para o próximo elemento focalizável dentro da modal.
Quando o foco está no último elemento focalizável da modal, move o foco para o primeiro elemento focalizável da modal.
Shift + TabMove o foco para o elemento focalizável anterior dentro da modal.
Quando o foco está no primeiro elemento focalizável da modal, move o foco para o último elemento focalizável na modal.
ESCFecha a modal.

Conclusão

Dessa forma, conseguimos prevenir possíveis inconsistências relacionadas a acessibilidade, garantindo assim, o cumprimento das diretrizes de acessibilidade.

Note que fizemos um bom apanhando de critérios e fomos, de certa forma, bem minuciosos. A dica é começar a exercitar isso aos poucos.

E você já conseguiu contribuir com algum critério de aceite, pensando em acessibilidade?

Referências

6 maiores erros de acessibilidade digital

Neste post, mergulharemos nos 6 maiores erros de acessibilidade digital que empresas e desenvolvedores cometem com frequência, sem sequer perceber. Através da conscientização e compreensão desses erros, podemos dar os primeiros passos rumo a uma web mais inclusiva, onde pessoas com deficiência ou necessidades específicas possam navegar e interagir de forma independente.

Ao explorar esses erros, examinaremos os desafios que eles representam e destacaremos soluções práticas para corrigi-los. Afinal, o objetivo final é capacitar todos os usuários a aproveitarem plenamente os benefícios do mundo digital, independentemente de suas limitações.

Então, vamos começar essa jornada para tornar a web mais inclusiva para todos.

Sumário

1. Texto com baixo contraste

hd wallpaper, colorful, painting-2468874.jpg

Diariamente sofro na pele com isso, para quem não me acompanha ou está chegando por agora no blog, eu possuo ceratocone, uma doença na córnea que aumenta o grau exponencialmente. Algumas combinações de cores e informações ficam bastante confusas para mim.

Para amenizar esse problema eu adotei algumas práticas:

  • dar zoom em textos com baixo contraste;
  • mudo as cores dos textos para uma com maior contraste via Inspetor de elementos do navegador;
  • usar tema escuro.

Guia sobre contraste

Para aplicarmos as correções de maneira efetiva, devemos consultar as recomendações da WCAG. Abaixo as regras que se aplicam ao contraste:

Ferramentas para verificação

Atualmente utilizo o Accessible Colors, é uma boa alternativa para realizar esse tipo de teste.

A grande vantagem dele é seu feedback claro e objetivo, como por exemplo:

Resultado de uma avalição das cores: #ccc para textos do tamanho de fonte 16px e background do site #fff.

Após realizar o teste, podemos abrir os bugs. Uma curiosidade a maioria desses erros conseguimos resolver com poucas linhas de CSS.

No Awesome A11y você pode encontrar diversas ferramentas para validar contraste.

2. Imagens sem texto alternativo

Campo de descricao alternativa do WordPress

Segundo uma pesquisa do Web AIM, em uma amostragem de 1 milhão de páginas iniciais dos sites mais populares do mundo. Foram encontradas 38,426,701 imagens, ou 38.4% por página inicial em média.

Cerca de 31.3% de todas as páginas iniciais (12 por página em média) não possuíam texto alternativo (sem contar o alt="") que é uma forma válida. Mais da metade das imagens sem texto alternativo.

Fundo degradê roxo com um homem negro vestindo um terno cinza e blusa salmão. Ele está colocando as mãos na cabeça se sentido surpreso. Escrito em branco ao centro "Oh, lord, Jesus. What!?"

Existe uma discussão ao redor do atributo <strong>alt</strong>, Reinaldo Ferraz escreveu um artigo, onde demonstra os benefícios do atributo. Além de contribuir para a acessibilidade ele também ajuda no SEO das páginas.

De forma prática a correção desse erro é uma das mais banais, basta preencher o atributo alt com a descrição correta da imagem.

Ex:

<img src="/imagens/duck.png" alt="Pato de borracha amarelo olhando fixamente" />

Traduzi um guia super completo de como escrever um texto alternativo.

3. Links vazios

Esse erro é bem comum, entretanto não deveria ser tão encontrado nas páginas web.

Frequentemente encontramos em ícones ou botões de ação sem nenhuma ação, não é mesmo? Para entendermos isso, vamos consultar a definição do propósito do elemento <strong><a></strong>:

O elemento <strong><em><a></em></strong> em HTML (ou elemento âncora), com o atributo href cria-se um hiperligação nas páginas web, arquivos, endereços de e-mails, ligações na mesma página ou endereços na URL. O conteúdo dentro de cada <a> precisa indicar o destino do link.

Usar sem definir o conteúdo textual descumpre a especificação do HTML e a recomendação 2.4.4 – Finalidade do link (em contexto) [A] – WCAG 2.0 (em inglês).

Exemplo prático

Temos um link que inclui um ícone de rede social, mas não possuí um texto para descrever a ação. Dessa forma, os leitores de tela irão ler: “Link”.

<a href="https://twitter.com/obrunopulis">
  <i class="fa fa-twitter"></i>
</a>

Qualquer validador de acessibilidade vai encontrar esse problema, pois o elemento <strong><em><a></em></strong> encontra-se sem nenhum conteúdo textual, descumprindo seu propósito.

Dessa forma, os leitores de tela não conseguem identificar o link em questão.

Uma possível solução, seria adicionar o texto visualmente ao lado dos ícones, pois eles nem sempre são tão claros para os usuários quanto pensamos.

No caso dos ícones sociais, acho que é bastante claro o que são e o padrão é usado com bastante frequência. Nesse caso, você pode adicionar conteúdo visualmente oculto.

Corrigindo

Queremos adicionar texto para ser lido por um leitor de tela e ter certeza de que o conteúdo adicionado via CSS não seja lido.

<a href="https://twitter.com/obrunopulis">
  <span class="fa fa-twitter" aria-hidden="true"></span>
  <span class="sr-only">Perfil de Bruno Pulis no twitter</span>
</a>

Com essa abordagem os validadores de acessibilidade não encontrarão nenhum problema, pois o link contém um texto oculto que informa o seu destino.

Observação importante

Nem sempre ter um conteúdo oculto é uma boa solução. É preciso haver uma compreensão visual de qual é o conteúdo e os links para usuários videntes, bem como para usuários de leitores de tela.

4. Labels de formulários ausentes

Dos 4,2 milhões de formulário identificados na pesquisa do WebAIM, 55% não estavam usando o elemento <strong><label></strong>, <strong><em>aria-label</em></strong> ou <strong><em>aria-labelledby</em></strong>.

Páginas com pelo menos um controle de formulário sem rótulo tiveram em média mais 43 erros detectáveis do que páginas sem nenhum erro de rótulo.

Com efeito, é preocupante o descuido pela escrita do HTML, a grande maioria dos problemas são originados de uma escrita descuidada.

A saber, formulários são um dos componentes mais importantes para web, podemos dizer que depois do elemento <a> esse componente é o mais importante.

Com essas violações também ferem a recomendação 3.3.2 – Rótulos e instruções [A] – WCAG 2.0 – (em inglês).

Uma das coisas que percebo muito com formulários é o uso inadequado do placeholder, a maioria dos designers e desenvolvedores utilizam o atributo placeholder com a função de um <label>.

Exemplo incorreto

<form>
  <input type="email" placeholder="insira o seu melhor e-mail" />
</form>

O atributo placeholder é uma string que fornece uma breve dica ao usuário quanto ao tipo de informação esperado no campo. Deve ser uma palavra ou frase curta que demonstre o tipo de dados esperado, ao invés de uma mensagem explicativa.

Nota: O atributo placeholder não é semanticamente útil como outras maneiras de explicar seu formulário e pode causar problemas técnicos inesperados com seu conteúdo.

Vale lembrar, para rotular um formulário o elemento correto para ser usado é o label

Exemplo correto

<form>
  <label for="email">E-mail</label>
  <input type="email" id="email" placeholder="insira o seu melhor e-mail" />
</form>

5. Botões vazios

Semelhantemente com os links vazios, os botões vazios querem dizer que o elemento não possuí uma informação textual definida. Quando navegamos no botão, um texto descritivo deve ser apresentado ao leitor de tela para indicar qual tipo de função que o botão possuí.

Além disso, essa violação fere duas recomendações da WCAG:

O exemplo a seguir, demonstra o problema de um botão sem informação textual.

<button type="submit">
  <svg id="search" viewBox="0 0 16 16.9">
    <path d="M16, 15.7L11.3,11C12.4,9.8,13, 8.2,13,6.5C13"></path>
  </svg>
</button>

Qualquer validador de acessibilidade notificará a inconsistência da violação das guidelines citadas acima, Para eles não existe um conteúdo textual definido, uma abordagem para correção seria inserir o elemento <title> no SVG, pois ele garante que SVGs sejam acessíveis. Scott O’Hara escreveu um artigo imagens acessíveis e SVGS (em inglês).

<button type="submit">
  <svg
    id="search"
    role="img"
    aria-describedby="searchIcon"
    viewBox="0 0 16 16.9"
  >
    <title id="searchIcon">Search</title>
    <path d="M16, 15.7L11.3,11C12.4,9.8,13, 8.2,13,6.5C13"></path>
  </svg>
</button>

6. HTML sem idioma definido

A linguagem no documento HTML na maioria das vezes é ignorada ou esquecida. Já fiz diversas avaliações em sites com conteúdos totalmente em português e a definição do idioma em inglês.

Usuários de leitores de tela, utilizam o sintetizador de voz embutido nos softwares para ler o conteúdo. Dessa forma, uma das primeiras coisas que o sintetizador de voz faz é identificar o idioma atribuído a página.

Além disso, é configurado a entonação, ritmo e sotaque da língua definida no documento. Em contrapartida, se não encontrar um idioma ele define o inglês como padrão.

Além dessa confusão, ele descumpre a recomendação 3.1.1 – Idioma da página [A]- WCAG 2.0 (em inglês)

Corrigindo

<!DOCTYPE html>
<html lang="pt-br">
  ...
</html>

Você também pode, explorar mais sobre o atributo lang em outro artigo que escrevi.

Conclusão

Percorremos todos os bugs, entretanto fica nítido que precisamos de conscientização para resolver esses problemas.

Além disso, os desenvolvedores devem aprender de maneira correta os padrões web e HTML semântico. Dessa forma, grande parte desses problemas vão desaparecer.

Em conclusão, reciclar nosso conhecimento é primordial

E para reflexão gostaria de deixar uma frase do Tim Berners-Lee:

O poder da Web está na sua universalidade. O acesso por todas as pessoas, não obstante a sua incapacidade, é um aspecto essencial.

Referências