{"id":3615,"date":"2014-10-29T08:59:57","date_gmt":"2014-10-29T10:59:57","guid":{"rendered":"http:\/\/blog.turbosite.com.br\/?p=3615"},"modified":"2014-10-29T08:59:57","modified_gmt":"2014-10-29T10:59:57","slug":"praticas-web-acessiveis","status":"publish","type":"post","link":"https:\/\/www.turbosite.com.br\/blog\/praticas-web-acessiveis\/","title":{"rendered":"Pr\u00e1ticas Web acess\u00edveis"},"content":{"rendered":"<p>Tornar uma p\u00e1gina responsiva, tanto \u00e0 diferentes resolu\u00e7\u00f5es de telas quanto a dispositivos variados, praticamente j\u00e1 tornou-se lei de mercado para que uma p\u00e1gina tenha uma boa qualidade na transmiss\u00e3o da informa\u00e7\u00e3o. Por\u00e9m, apenas \u00a0adaptar o <em>layout<\/em> da p\u00e1gina para respeitar padr\u00f5es <strong>responsivos<\/strong>,\u00a0n\u00e3o \u00e9 o bastante para deixar a p\u00e1gina <strong>acess\u00edvel<\/strong>.<\/p>\n<p>Hoje, se voc\u00ea tem interesse em criar uma\u00a0\u00a0p\u00e1gina acess\u00edvel \u00e0 v\u00e1rios ambientes, apenas adaptar o <em>layout<\/em> \u00e0 varia\u00e7\u00f5es de resolu\u00e7\u00e3o n\u00e3o basta. Algumas metodologias devem ser revistas para uma completa adequa\u00e7\u00e3o. Eventos\u00a0gerenciados pelo DOM, como key press, mouse over e mouse out, n\u00e3o funcionam muito bem em dispositivos m\u00f3veis. Enquanto conte\u00fados que s\u00e3o ativados por meio de alguma a\u00e7\u00e3o, n\u00e3o ser\u00e3o bem aproveitados para usu\u00e1rios com alguma defici\u00eancia, por exemplo.<\/p>\n<p>Alguns t\u00f3picos ser\u00e3o levantados durante esse artigo, envolvendo quest\u00f5es quanto \u00e1 portabilidade e acessibilidade.<\/p>\n<p>&nbsp;<\/p>\n<h3>Independ\u00eancia de dispositivo<\/h3>\n<p>Eventos que funcionam somente pelo <span lang=\"en\">mouse<\/span> s\u00e3o um grande problema para a acessibilidade, pois nem todas as pessoas conseguem utilizar o <span lang=\"en\">mouse<\/span>. Quem utiliza leitor de tela, por exemplo, navega exclusivamente pelo teclado. Pessoas com determinados tipos de defici\u00eancia f\u00edsica poder\u00e3o n\u00e3o ter a habilidade de usar o <span lang=\"en\">mouse<\/span> convencional e poder\u00e3o utilizar teclados e <span lang=\"en\">mouses\u00a0<\/span>adaptados. Por isso, todas as fun\u00e7\u00f5es de uma p\u00e1gina devem ser dispositivo-independentes, ou seja, devem funcionar pelo <strong><span lang=\"en\">mouse<\/span><\/strong>, <strong>teclado<\/strong> ou <strong>outro dispositivo<\/strong>. Al\u00e9m disso, o foco do teclado n\u00e3o deve ficar fixado ou \u201cpreso\u201d em algum elemento, pois o usu\u00e1rio deve poder percorrer toda a p\u00e1gina pelo teclado facilmente. Valendo lembrar que em dispositivos m\u00f3veis, muitos eventos s\u00e3o inexistentes.<\/p>\n<p>Como exemplo, aquele <em>popover<\/em> que aparece na p\u00e1gina, coma op\u00e7\u00e3o de fechar ao click de um bot\u00e3o gera uma\u00a0excelente usabilidade, mas uma acessibilidade terr\u00edvel para usu\u00e1rios que n\u00e3o conseguem alcan\u00e7ar aquele bot\u00e3o. Uma simples adi\u00e7\u00e3o de c\u00f3digo aplica \u00e0 tecla &#8220;ESC&#8221; do teclado a a\u00e7\u00e3o de fechar o <em>popover<\/em>.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:js decode:true  \">window.onload = function(){\n\tdocument.onkeydown = function(e){\n\t\t\/\/ tecla ESC\n\t\tif(e.keyCode==13){\n\t\t\tfecha_popover();\n\t\t}\n\t}\n}\n<\/pre>\n<p>Se forem utilizados eventos de JavaScript espec\u00edficos para <span lang=\"en\">mouse<\/span>, devem ser utilizados os correspondentes para teclado:<\/p>\n<table style=\"height: 192px;\" width=\"416\">\n<caption>Eventos correspondentes para <span lang=\"en\">mouse<\/span> e teclado<\/caption>\n<thead>\n<tr>\n<th>Evento do teclado<\/th>\n<th>Evento correspondente do <span lang=\"en\">mouse<\/span><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>onkeydown<\/td>\n<td>onmousedown<\/td>\n<\/tr>\n<tr>\n<td>onkeyup<\/td>\n<td>onmouseup<\/td>\n<\/tr>\n<tr>\n<td>onkeypress<\/td>\n<td>onclick<\/td>\n<\/tr>\n<tr>\n<td>onfocus<\/td>\n<td>onmouseover<\/td>\n<\/tr>\n<tr>\n<td>onmouseover<\/td>\n<td>onmouseout<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Adequar a navega\u00e7\u00e3o\u00a0da p\u00e1gina pela tecla &#8220;TAB&#8221; do teclado \u00e9 outra dica importante. Ordene o conte\u00fado da sua p\u00e1gina para que este tipo de navega\u00e7\u00e3o passe apenas por conte\u00fados utiliz\u00e1veis, como formul\u00e1rios e links.<\/p>\n<p>Por fim, sempre teste o site navegando por todo o conte\u00fado somente pelo teclado, com setas e &#8220;TAB&#8221;, e em diferentes navegadores.<\/p>\n<p>&nbsp;<\/p>\n<h3>Altera\u00e7\u00f5es temporais do conte\u00fado<\/h3>\n<p>\u00c9 muito comum a utiliza\u00e7\u00e3o de conte\u00fados que se movem, como os <em>slideshows<\/em>. Esse tipo de elemento n\u00e3o deve mover-se automaticamente, pois o usu\u00e1rio \u00e9 quem deve decidir se quer \u201crolar\u201d o conte\u00fado ou n\u00e3o. Assim, devem ser oferecidos controles para <strong>iniciar, pausar e reiniciar\u00a0<\/strong>tais rolagens. Esses controles devem ser acess\u00edveis tamb\u00e9m pelo teclado e devem estar bem descritos, para quem utiliza leitor de tela.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-3617 aligncenter\" src=\"https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/10\/slide-show-1024x292.png\" alt=\"slide show\" width=\"680\" height=\"193\" srcset=\"https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/10\/slide-show-1024x292.png 1024w, https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/10\/slide-show-300x86.png 300w, https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/10\/slide-show-768x219.png 768w, https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/10\/slide-show.png 1075w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>Atualiza\u00e7\u00e3o e redirecionamento autom\u00e1ticos<\/h3>\n<p>Quando ocorre uma mudan\u00e7a, atualiza\u00e7\u00e3o ou redirecionamento repentino na p\u00e1gina, o usu\u00e1rio pode sentir-se confuso ou desorientado, especialmente se estiver utilizando algum recurso de Tecnologia Assistiva, como um leitor de tela, por exemplo. Isso ocorre em p\u00e1ginas com atualiza\u00e7\u00e3o ou redirecionamento autom\u00e1ticos. A atualiza\u00e7\u00e3o autom\u00e1tica peri\u00f3dica \u2013 muito utilizada por canais de not\u00edcias &#8211; \u00e9 comumente realizada atrav\u00e9s do uso do o atributo <em>http-equiv<\/em> com conte\u00fado \u201c<em>refresh<\/em>\u201d do elemento <em>meta<\/em> no <em>HEAD<\/em> do documento.<\/p>\n<p>Em p\u00e1ginas onde a atualiza\u00e7\u00e3o \u00e9 absolutamente necess\u00e1ria, o usu\u00e1rio dever\u00e1 ser informado que a p\u00e1gina \u00e9 atualizada automaticamente.<\/p>\n<p>Quanto ao redirecionamento autom\u00e1tico, o mesmo deve ocorrer de forma transparente para o usu\u00e1rio. Ou seja, n\u00e3o devem ser utilizadas marca\u00e7\u00f5es para redirecionar a uma nova p\u00e1gina, como o uso do atributo <em>http-equiv<\/em> com conte\u00fado \u201c<em>refresh<\/em>\u201d do elemento <em>META<\/em>.<\/p>\n<p>&nbsp;<\/p>\n<h3>Limite de tempo<\/h3>\n<p>Em uma p\u00e1gina onde h\u00e1 limite de tempo para realizar uma tarefa deve haver a op\u00e7\u00e3o de <strong>desligar<\/strong>, <strong>ajustar<\/strong> ou <strong>prolongar<\/strong> esse limite. Essa recomenda\u00e7\u00e3o n\u00e3o se aplica a eventos em que o limite de tempo \u00e9 absolutamente necess\u00e1rio. Deve-se lembrar que, em ambos os casos, o limite de tempo deve ser informado.<\/p>\n<p>Ao especificar o tempo limite para o usu\u00e1rio conclua\u00a0a a\u00e7\u00e3o, n\u00e3o se deve tomar como modelo um desktop conectado a teclado e mouse convencionais. Dispositivos m\u00f3veis mostram uma ergonomia mais prec\u00e1ria, comparadas ao desktop, exigindo um esfor\u00e7o maior e mais prolongado para resolver algumas a\u00e7\u00f5es. Defici\u00eancias motoras retardam\u00a0a conclus\u00e3o de alguns trabalhos na p\u00e1gina da web. \u00c9 importante adequar o tempo levando em conta o dispositivo que o usu\u00e1rio esteja utilizando, e a\u00a0dificuldade que usu\u00e1rios possam ter concluir trabalhos convencionais.<\/p>\n<p>&nbsp;<\/p>\n<h3>Intermit\u00eancia de tela<\/h3>\n<p>N\u00e3o apenas pela acessibilidade, mas tamb\u00e9m pelo bom gosto. N\u00e3o devem ser utilizados efeitos visuais piscantes, intermitentes ou cintilantes. Em pessoas com epilepsia fotosensitiva, o cintilar ou piscar pode desencadear um ataque epil\u00e9tico. Al\u00e9m disso, elementos piscantes podem causar desconforto, desaten\u00e7\u00e3o e confus\u00e3o para os usu\u00e1rios.<\/p>\n<p>&nbsp;<\/p>\n<h3>A import\u00e2ncia do contraste para usu\u00e1rios com Daltonismo<\/h3>\n<p>A defici\u00eancia de cor vermelho\/verde \u00e9 o tipo mais comum de Daltonismo. Por isso, deve-se evitar a utiliza\u00e7\u00e3o de <strong>contrastes<\/strong> entre essas duas cores.<\/p>\n<ul>\n<li>Utilizando combina\u00e7\u00e3o de cores verde\/vermelho: com a defici\u00eancia de cor n\u00e3o \u00e9 poss\u00edvel perceber o contraste entre as cores.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"imagem aligncenter\" src=\"http:\/\/emag.governoeletronico.gov.br\/cursodesenvolvedor\/desenvolvimento-web\/imagens\/img-43.jpg\" alt=\"Representa\u00e7\u00e3o de como uma pessoa com vis\u00e3o normal e uma pessoa com daltonismo encherga a imagem com conbina\u00e7\u00f5es de cores verde e vermelho\" \/><\/p>\n<ul>\n<li>Utilizando combina\u00e7\u00e3o de cores verde\/lil\u00e1s: mesmo com a defici\u00eancia de cor, ainda \u00e9 poss\u00edvel perceber o contraste.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"imagem aligncenter\" src=\"http:\/\/emag.governoeletronico.gov.br\/cursodesenvolvedor\/desenvolvimento-web\/imagens\/img-44.jpg\" alt=\"Representa\u00e7\u00e3o de como uma pessoa com vis\u00e3o normal e uma pessoa com daltonismo encherga a imagem com conbina\u00e7\u00f5es de cores verde e lil\u00e1s\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Elementos ocultos na tela<\/strong><\/p>\n<p>\u00c9 bastante comum, e deixa a p\u00e1gina &#8220;inteligente&#8221;, ocultar texto que devem ser mostrar apenas se o usu\u00e1rio desejar velos. Mutas vezes por alguma a\u00e7\u00e3o do mouse over \u00a0aplicada a um \u00edcone de ajuda, por exemplo, para configurar uma\u00a0capacidade de aprendizagem. Por\u00e9m, dependendo m\u00e9todo aplicado ao elemento para esconde-lo da p\u00e1gina, aplicativos de <strong>leitores de tela<\/strong> n\u00e3o conseguem alcan\u00e7ar o conte\u00fado. Dependendo do m\u00e9todo, a acessibilidade \u00e0 aquela ajuda, n\u00e3o exite.<\/p>\n<p>Abaixo \u00e9 mostrado os diferentes m\u00e9todos para esconder um elemento da p\u00e1gina, e sua rea\u00e7\u00e3o aos aplicativos leitores de tela.<\/p>\n<table class=\"tabela\">\n<caption>Formas de ocultar elementos e efeitos na acessibilidade<\/caption>\n<tbody>\n<tr>\n<th scope=\"col\">CSS<\/th>\n<th scope=\"col\">Efeito na tela<\/th>\n<th scope=\"col\">Efeito na acessibilidade<\/th>\n<\/tr>\n<tr>\n<td>visibility:hidden;<\/td>\n<td>O elemento fica oculto, mas continua a ocupar o espa\u00e7o que normalmente ocuparia<\/td>\n<td>O conte\u00fado \u00e9 ignorado pelos leitores de tela<\/td>\n<\/tr>\n<tr>\n<td>display:none;<\/td>\n<td>O elemento fica oculto e n\u00e3o ocupa espa\u00e7o<\/td>\n<td>O conte\u00fado \u00e9 ignorado pelos leitores de tela<\/td>\n<\/tr>\n<tr>\n<td>height: 0; width: 0; overflow: hidden;<\/td>\n<td>O elemento fica oculto e n\u00e3o ocupa espa\u00e7o<\/td>\n<td>O conte\u00fado \u00e9 ignorado pelos leitores de tela<\/td>\n<\/tr>\n<tr>\n<td>text-indent: -999em;<\/td>\n<td>O conte\u00fado \u00e9 movido para &#8220;fora da tela&#8221;, n\u00e3o sendo mais vis\u00edvel, mas links podem ser focalizados de maneira imprevis\u00edvel<\/td>\n<td>Os leitores de tela acessam o conte\u00fado, mas somente texto e elementos inline<\/td>\n<\/tr>\n<tr>\n<td>position: absolute; left: -999em;<\/td>\n<td>O conte\u00fado \u00e9 removido de sua posi\u00e7\u00e3o, n\u00e3o ocupando espa\u00e7o e \u00e9 movido para &#8220;fora da tela&#8221;, ficando oculto<\/td>\n<td>Os leitores de tela acessam o conte\u00fado<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><strong>Elementos ocultos na tela<\/strong><\/p>\n<p>Por fim, para a avaliar se sua p\u00e1gina \u00e9 <strong>Web acess\u00edvel<\/strong>, existem ferramentas autom\u00e1ticas que auxiliam na avalia\u00e7\u00e3o de acessibilidade. O aplicativo\u00a0eMAG sugere um passo a passo para avaliar a acessibilidade de um site:<\/p>\n<ol>\n<li>Validar os c\u00f3digos de conte\u00fado HTML e folhas de estilo;<\/li>\n<li>Verificar o fluxo de leitura da p\u00e1gina, utilizando um navegador textual ou um software leitor de tela;<\/li>\n<li>Checar o fluxo de leitura das p\u00e1ginas sem estilos, sem scripts e sem as imagens;<\/li>\n<li>Verificar as funcionalidades dispon\u00edveis na barra de acessibilidade, como atalhos e contraste;<\/li>\n<li>Efetuar a valida\u00e7\u00e3o autom\u00e1tica de acessibilidade, atrav\u00e9s de avaliadores autom\u00e1ticos;<\/li>\n<li>Realizar a valida\u00e7\u00e3o manual, com uso de checklists de valida\u00e7\u00e3o humana.<\/li>\n<\/ol>\n<p>Um recurso bastante \u00fatil na avalia\u00e7\u00e3o de acessibilidade de um site s\u00e3o as extens\u00f5es para navegadores para an\u00e1lise de acessibilidade:<\/p>\n<ul>\n<li>Para Firefox: <a href=\"https:\/\/addons.mozilla.org\/en-us\/firefox\/addon\/accessibility-evaluation-toolb\/\"><span lang=\"en\">Accessibility Evaluation Toolbar<\/span> (link para um novo site)<\/a><\/li>\n<li>Para Google Chrome: <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/accessibility-developer-t\/fpkknkljclfencbdbgkenhalefipecmb?hl=en\"><span lang=\"en\">Accessibility Developer Tools<\/span> (link para um novo site)<\/a><\/li>\n<li>Para Internet Explorer: <a href=\"http:\/\/www.paciellogroup.com\/resources\/wat\"><span lang=\"en\">Web Accessibility Toolbar for Internet Explorer<\/span> (link para um novo site)<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Artigo Retirado de <a title=\"Curso eMAG \/ Desenvolvedor\" href=\"http:\/\/emag.governoeletronico.gov.br\/cursodesenvolvedor\/desenvolvimento-web\/recomendacoes-de-acessibilidade-definicao.html\" target=\"_blank\">Curso eMAG &#8211; gov.br<\/a> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tornar uma p\u00e1gina responsiva \u00e9 uma boa pr\u00e1tica que deve ser sempre aplicada para a transmiss\u00e3o da informa\u00e7\u00e3o, porem, apenas isso  n\u00e3o \u00e9 o bastante para deixar a p\u00e1gina acess\u00edvel.<\/p>\n","protected":false},"author":1,"featured_media":3620,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,15],"tags":[34,185,331],"class_list":["post-3615","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html-2","category-javascript","tag-acessibilidade","tag-dicas","tag-html"],"_links":{"self":[{"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/posts\/3615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3615"}],"version-history":[{"count":0,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/posts\/3615\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/media\/3620"}],"wp:attachment":[{"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}