Acessibilidade

29 set, 2015

Acessibilidade com jQuery Validate

Publicidade

Se você desenvolve aplicativos, sites ou mesmo sistemas, sabe o quanto não é nada divertido criar, validar e salvar formulários. No entanto, eles são fundamentais e precisam funcionar corretamente para que o fluxo da navegação atinja seu objetivo. E se o usuário estiver sem o mouse, ou utilizando algum leitor de tela? Será que essa validação realmente funciona?

O trabalho do desenvolvedor web nada mais é do que criar interfaces navegáveis, funcionais e principalmente usáveis. E como se aplica esse conceito aos formulários? Utilizando WAI-ARIA e jQuery Validate, podemos criar formulários acessíveis, ou melhor, incríveis.

O que é WAI-ARIA?

Define uma forma de tornar o conteúdo e aplicativos web mais acessíveis a pessoas com deficiências. Ele contribui especialmente com conteúdo dinâmico e interface de controles de usuário avançadas, desenvolvidos com Ajax, HTML, JavaScript e tecnologias relacionadas. Resumidamente, ele serve para estender o significado das interações da sua aplicação.

O que é jQuery Validate?

É um plugin jquery utilizado para criar validações front-end em formulários. A grande vantagem está na facilidade em implementá-lo e personalizá-lo, de acordo com seu projeto.

O que é  acessibilidade Web?

Significa que pessoas portadoras de necessidades especiais sejam capazes de usar a Web, mais concretamente, significa uma Web projetada de modo que essas pessoas possam perceber, entender, navegar e interagir de uma maneira efetiva com ela, bem como criar e contribuir com conteúdos (W3C).

Sobre leitores de tela

É um programa que interage com o sistema operacional do computador, captura toda e qualquer informação apresentada na forma de texto e a transforma em uma resposta falada, utilizando um sintetizador de voz.

Hoje existem excelentes leitores de tela que podem atender às mais diversas necessidades dos deficientes visuais, alguns são pagos e outros gratuitos. Os mais utilizados são:

  • NVDA (Windows) – gratuito
  • JAWS (Windows) – pago
  • Voice Over (Mac) – gratuito
  • DosVox (Windows) – gratuito
  • Virtual Vision (Windows) – pago

Iniciando o formulário

Após escrever todo seu HTML, criar seu estilo via CSS e implementar, via JavaScript, toda a sua regra aos campos de formulário, vamos personalizar o plugin para deixá-lo acessível. Existem alguns métodos do plugin – neste exemplo usaremos errorPlacement, highlight e unhighlight.

$('form').validate({
    errorClass: 'help-block',
    errorElement: 'p',
    errorPlacement: function(error, element) {
      element.parents('.form-group').append(error);
      var msg = $(element).next('.help-block').text();
      $(element).attr('aria-label', msg );
    },
    highlight: function(element, errorClass){
      $(element)
      .attr('aria-invalid', true)
      .parents('.form-group')
      .addClass('has-error');
    },
    unhighlight: function(element, errorClass){
      $(element).removeAttr('aria-invalid')
      .removeAttr('aria-label')
      .parents('.form-group').removeClass('has-error');
    }
  });
  • errorPlacement: É adicionado no elemento (campo de input), no valor do atributo aria-label, a mesma mensagem de erro. Assim, quando o leitor dá um foco no campo, ele lê a informação para o usuário.
  • highlight: É adicionado no elemento (campo de input) o atributo aria-invalid=”true”, informando ao leitor que há erro no campo.
  • unhighlight: São removidos os atributos aria-invalid e aria-label, já que na função unhightlight, acontece quando não existe mais erro nos campos.
<div role="alert" class="alert alert-success">
	Cadastro feito com sucesso! Verifique seu e-mail.
</div>

Conclusão

Criar formulários é um pouco chato, mas deve ser pensado e desenvolvido de uma forma simples, pra que ele tenha um fluxo de fácil entendimento e compreensão por parte do usuário. As mensagens de erro precisam ser bem descritivas, com visual de destaque e acessível aos leitores de tela. Dessa forma, todos ganham: quem vende, quem compra, quem cadastra, quem reclama, ou mesmo aqueles que querem apenas fazer um elogio, crítica ou sugestão.

Façam testes usando somente o teclado, e apenas depois com os leitores de tela.

O grande lance de trabalhar com web é que podemos melhorar diretamente a vida das pessoas, sendo quando elas compram produtos, viagens, roupas, objetos etc. E pra tudo isso precisamos de um formulário.

Façam sites acessíveis, consequentemente formulários acessíveis. Esse pensamento deve fazer parte de todas as áreas: Vendas, Gerência, UX, Designer, Front-end, Back-end, Redatores, Social Mídia e QA.

Acessibilidade não é caridade, e sim uma questão de consciência. Se a Web é conteúdo, então que esse conteúdo chegue a todos!

Veja um exemplo online de um formulário com JQuery Validate http://ow.ly/OsGSp

Finalizando o formulário

Quando o usuário preenche todos os campos obrigatórios e não há mais a necessidade de exibição da validação, chegamos à última fase do formulário, que é a de exibir uma mensagem de feedback, ou seja, do que aconteceu depois da ação desse usuário. Um exemplo fácil será uma mensagem escrita: Formulário enviado com sucesso!

No entanto, essa mensagem precisa receber o foco na hora da exibição. Assim, tanto o usuário vidente quanto aquele que utiliza o leitor de tela consegue receber claramente a mensagem final.

Dica final: utilize a role=”alert” conforme no exemplo, assim o leitor entenderá que é um elemento de alerta.

***

Artigo publicado originalmente na Revista iMasters #15: http://issuu.com/imasters/docs/revista_imasters_15_agosto2015