E MAG
E MAG
E MAG
1.Introdução......................................................................................................6
3.1 Marcação................................................................................................16
Recomendação 1.1 – Respeitar os Padrões Web..............................................16
Recomendação 1.2 – Organizar o código HTML de forma lógica e semântica.......17
Recomendação 1.3 – Utilizar corretamente os níveis de cabeçalho.....................19
Recomendação 1.4 – Ordenar de forma lógica e intuitiva a leitura e tabulação....21
Recomendação 1.5 – Fornecer âncoras para ir direto a um bloco de conteúdo.....22
Recomendação 1.6 – Não utilizar tabelas para diagramação.............................24
Recomendação 1.7 – Separar links adjacentes................................................25
Recomendação 1.8 – Dividir as áreas de informação........................................27
Recomendação 1.9 – Não abrir novas instâncias sem a solicitação do usuário.....32
3.2 Comportamento (Document Object Model – DOM).......................................34
Recomendação 2.1 - Disponibilizar todas as funções da página via teclado.........34
Recomendação 2.2 – Garantir que os objetos programáveis sejam acessíveis ....37
Recomendação 2.3- Não criar páginas com atualização automática periódica......38
Recomendação 2.4 – Não utilizar redirecionamento automático de páginas........39
Recomendação 2.5 – Fornecer alternativa para modificar limite de tempo..........39
Recomendação 2.6 – Não incluir situações com intermitência de tela.................40
6 . Glossário....................................................................................................94
Uma das principais atribuições do Governo Federal é promover a inclusão social, com
distribuição de renda e diminuição das desigualdades. Entre as diversas iniciativas que
visam atingir esse objetivo, o governo investe no uso adequado e coordenado da
tecnologia porque compreende a inclusão digital como caminho para a inclusão social.
Muitas vezes, a deficiência não é severa o suficiente a ponto de tornar-se uma barreira
à utilização do computador. Entretanto, na maioria das páginas da Web, as pessoas
cegas ou com baixa visão, pessoas com deficiência auditiva, com dificuldade em
utilizar o mouse, por exemplo, encontram barreiras de acessibilidade que dificultam
ou impossibilitam o acesso aos seus conteúdos.
Um dos aliados das pessoas com deficiência para o uso do computador são os recursos
de tecnologia assistiva, que auxiliam na realização de tarefas antes muito difíceis ou
impossíveis de realizar, promovendo, desta maneira, a autonomia, independência,
qualidade de vida e inclusão social de pessoas com deficiência.
A revisão do modelo 2.0, que resultou na versão 3.0, foi desenvolvida através da
parceria entre o Departamento de Governo Eletrônico e o Projeto de Acessibilidade
Virtual da RENAPI (Rede de Pesquisa e Inovação em Tecnologias Digitais).
A versão 3.1 do eMAG apresenta melhorias no conteúdo do texto para torná-lo mais
compreensível.
1. Marcação;
3. Conteúdo/Informação;
4. Apresentação/Design;
5. Multimídia;
6. Formulário.
Por fim, os links de Recursos e Leitura complementar foram retirados para permitir
alterações mais dinâmicas ao conteúdo, que pode ser consultado na página do eMAG
no Portal do Programa de Governo Eletrônico:
http://www.governoeletronico.gov.br/eixos-de-atuacao/governo/acessibilidade/emag-
modelo-de-acessibilidade-em-governo-eletronico.
1.4 Legislação
Estão listados os principais documentos, que fazem parte da legislação que norteia o
processo de promoção da acessibilidade e a implementação do eMAG:
O WAI ainda desenvolveu especificações para aplicações web (Web Rica), ainda boa
parte em status de 'rascunho” chamado WAI-ARIA (Accessible Rich Internet
Applications – http://w3.org/standards/techs/aria#w3c_all), que busca resolver
muitos dos problemas da camada de comportamento (DOM), sendo parte já
implementada por alguns navegadores.
Deve-se lembrar que após cada teste, os ajustes devidos devem ser feitos e
novamente testados.
5. Teste com usuários reais. Outra etapa essencial da validação de uma página
é a realização de testes com usuários reais (pessoas com deficiência ou
limitações técnicas). Um usuário real poderá dizer se um sítio está realmente
acessível, compreensível e com boa usabilidade e não simplesmente
tecnicamente acessível. Quanto maior e mais diversificado o número de
usuários reais participando da avaliação de acessibilidade, mais eficaz e
robusto será o resultado.
Para facilitar a implementação das recomendações, no eMAG elas são separadas por
seções de acordo com as necessidades de implementação:
1. Marcação;
3. Conteúdo/Informação;
4. Apresentação/Design;
5. Multimídia;
6. Formulário.
3.1 Marcação
Os Padrões Web são recomendações do W3C (World Wide Web Consortium), as quais
são destinadas a orientar os desenvolvedores para o uso de boas práticas que tornam
a web acessível para todos, permitindo assim que os desenvolvedores criem
experiências ricas, alimentadas por um vasto armazenamento de dados, os quais
estão disponíveis para qualquer dispositivo e compatíveis com atuais e futuros agentes
de usuário (ex: navegadores).
Assim, marcação semântica adequada deve ser utilizada para designar os cabeçalhos
(h1, h2, h3), as listas (ul, ol, dl), texto enfatizado (strong), marcação de código
(code), marcação de abreviaturas (abbr), marcação de citações longas (blockquote),
etc. Dessa forma, as páginas poderão ser apresentadas e compreendidas sem
recursos de estilização, tal como as folhas de estilo. Além disso, o código
semanticamente correto é muito importante para usuários com deficiência visual, pois
os leitores de tela descrevem primeiro o tipo de elemento e depois realizam a leitura
do conteúdo que está dentro desse elemento.
<h2>Web Semântica</h2>
<p>
O poder da web está em sua universalidade. Ser
acessada por todos, independente de
deficiência, é um aspecto essencial.
</p>
<p>Tim Berners Lee</p>
Exemplo correto
<h1>Padrões Web</h1>
<ul>
<li><a href="menu1.html">Menu 1</a></li>
<li><a href="menu2.html">Menu 2</a></li>
</ul>
<h2>Web Semântica</h2>
<blockquote>
O poder da web está em sua universalidade. Ser
acessada por todos, independente de
deficiência, é um aspecto essencial.
</blockquote>
<cite xml:lang="en">Tim Berners Lee</cite>
<header role="banner">
<h1>Padrões Web</h1>
</header>
<nav role="navigation">
<ul>
<li><a href="menu1.html">Menu 1</a></li>
<li><a href="menu2.html">Menu 2</a></li>
</ul>
</nav>
<div role="main">
<h2>Web Semântica</h2>
<blockquote>
O poder da web está em sua universalidade. Ser acessada por todos,
independente de deficiência, é um aspecto essencial.
</blockquote>
<cite xml:lang="en">Tim Berners Lee</cite>
</div>
Exemplo
HTML
<h1>Técnicas culinárias</h1>
<p>A seguir os segredos que facilitam a vida na cozinha.</p>
<h2>Legumes, folhas e vegetais</h2>
<h3>Baba do quiabo</h3>
<p>Para eliminar a baba do quiabo, lave-o ainda inteiro, seque-o e coloque-o
numa tigela com um pouco de suco de limão, deixando repousar durante 15
minutos. Depois lave ligeiramente, corte e cozinhe.</p>
<h3>Feijão</h3>
<p>1 xícara de feijão cru serve trás pessoas depois de pronto.</p>
<h3>Cenouras e aipos</h3>
<p>Para resolver o problema de cenouras e aipos meio murchos, mergulhe-os em
água gelada misturada com uma colher de chá de mel por uma hora. Escorra e
Deve-se criar o código HTML com uma sequência lógica de leitura para percorrer links,
controles de formulários e objetos. Essa sequência é determinada pela ordem que se
encontra no código HTML.
Para facilitar a utilização das âncoras, podem ser disponibilizados atalhos por teclado,
utilizando o atributo accesskey nos links relevantes. Não pode haver repetição do
mesmo accesskey em uma página. Para o governo federal são recomendados atalhos
para o menu principal, para o conteúdo e para a caixa de pesquisa. Maiores detalhes a
esse respeito podem ser encontrados no capítulo 3 – Elementos de acessibilidade nas
páginas do Governo Federal.
Devem ser utilizados ambos os atributos name e id para que as âncoras funcionem em
todos os navegadores e tecnologias assistivas, tanto textuais quanto gráficos, já que
há os que suportam ambos os atributos e os que suportam apenas um deles.
Os links indicadores de início e fim de conteúdo e início e fim de menu podem estar
ocultos na página utilizando folhas de estilo. No entanto, é necessário tomar o cuidado
de ocultá-los de forma que eles continuem acessíveis aos leitores de tela. Os
mecanismos para ocultar elementos e seus efeitos na acessibilidade são os seguintes:
Exemplo
<ul id="atalhos">
<li><a href="#irconteudo" accesskey="1">Ir Conteudo[1]</a></li>
<li><a href="#irmenu" accesskey="2">Ir para menu principal[2]</a></li>
<li><a href="#irbusca">Ir para busca [3]</a></li>
</ul>
Conteúdo da Página
<div>
<a href="#" id="irconteudo" class="oculto">Início do conteúdo</a>
<!-- Conteúdo →
</div>
<form action="#"method="post">
<fieldset>
<legend>Buscar</legend>
<label for="busca">Pesquise aqui</label>
<input type="text" href="#" id="irbusca" value="Pesquise aqui" />
<input type="submit" value="Buscar" class="buscar" name="buscar" />
</fieldset>
</form>
As tabelas devem ser utilizadas apenas para dados tabulares e não para efeitos de
disposição dos elementos na página. Para este fim, utilize as folhas de estilo.
Links adjacentes devem ser separados por mais do que simples espaços, para que não
fiquem confusos, em especial para usuários que utilizam leitor de tela. Para isso, é
recomendado o uso de listas, onde cada elemento dentro da lista é um link. As listas
podem ser estilizadas visualmente com CSS para que os itens sejam mostrados da
maneira desejada, como um ao lado do outro.
Exemplo incorreto
<p id="menu">
<a href="#menu">Pular o menu</a><br />
<a href="home.html">Home</a><br />
<a href="pesquisa.html">Pesquisa</a><br />
<a href="mapasite.html">Mapa do Site</a>
</p>
<!-- Conteudo do Site -->
Em HTML5 e ARIA
Existem três roles da especificação ARIA que podem ser utilizados para as listas: o
role navigation, que indica o menu principal do site (esse role possui a mesma função
que a elemento NAV do HTML5). O segundo e o terceiro roles são muito semelhantes,
o role menu e o role menubar. Os dois possuem a função de indicar menus que não
são o principal da página. A diferença entre os dois é que o role menu possui um
sentindo mais geral enquanto o menubar é ideal para criações de menu na horizontal.
Um exemplo de uso de menu pode ser a utilização de sub-menus dentro do menu
principal. Os roles menu e menubar podem possuir filhos com role menuitem para
indicar que se trata de um item daquele menu.
...
</head>
<body>
<header id="topo" role="banner">
<div>
<!--barra de acessibilidade-->
</div>
<h1>Exemplo com tabela</h1>
</header>
<nav id="menu" role="navigation">
<ul>
<li><a href="menu1.html">Menu 1</a></li>
<li><a href="menu2.html">Menu 2</a></li>
<li><a href="menu3.html">Menu 3</a></li>
<li><a href="menu4.html">Menu 4</a></li>
<li><a href="menu5.html">Menu 5</a></li>
<ul>
</nav>
<div role="main">
<div id="central">
<!--conteúdo principal da página-->
</div>
<div id="lateral">
<!--conteúdo da lateral da página-->
</div>
Exemplo
<div id="topo">
<a href="#inicioTopo" id="inicioTopo">Topo</a>
<h1>NOME DA INSTITUIÇÃO</h1>
<div id="barraAcessibilidade">
Exemplo
Em HTML5 e ARIA
• <header>
Contém informações introdutórias para uma página ou para uma seção dela.
• <nav>
É utilizada para seções da página que contenham links para outras páginas ou
seções, como o menu principal, por exemplo.
• <section>
Representa uma seção genérica ou uma seção que contém uma aplicação.
Funciona de maneira parecida com a elemento <div>, separando seções do
documento.
• <article>
Representa uma seção da página independente, como uma postagem em um
blog, um comentário em um fórum, entre outros.
• <aside>
Contém conteúdo relacionado à área principal do documento.
• <footer>
É utilizada para demarcar o rodapé da página ou de uma seção do conteúdo.
• Banner
Contém informações voltadas ao site como um todo e não somente à página.
Representa as informações normalmente contidas no topo das páginas, como o
título e o logo do site e a barra de acessibilidade.
• Complementary
Conteúdo adicional ou complementar ao conteúdo principal.
• Contentinfo
Contém informações gerais do site como um todo, que normalmente aparecem
no rodapé, como copyright, contato, etc.
• Main
Contém o conteúdo principal da página.
• Navigation
Contém os links para navegar pelas partes do site ou da página, como é o caso
do menu.
• Search
Esta seção contém o formulário de busca do site.
O elemento HEADER pode ser utilizado várias vezes em uma mesma página sem
problemas de semântica, pois ele possui duas funções diferentes. A primeira é a de
O elemento FOOTER, assim como o HEADER, pode ser utilizado mais que uma vez na
mesma página, pois ele pode ser utilizado para dois objetivos. O primeiro é para o
rodapé geral da página que deve receber o valor contentinfo para o role. O segundo é
para indicar rodapé em seções e, nesse caso, deve ser utilizado o role complementary.
Toda divisão de conteúdo que possua um significado importante deve ser feita
utilizando o elemento SECTION no lugar do elemento DIV, pois o DIV no HTML5 possui
a função de apenas agrupar elementos que precisam ser agrupados, mas não
possuem uma separação semântica dos demais elementos.
<header role="banner">
<a href="#inicioTopo" id="inicioTopo">Topo</a>
<h1>NOME DA INSTITUIÇÃO</h1>
<div id="barraAcessibilidade">
<p>Barra de Acessibilidade</p>
<ul>
<li><a href="#inicioConteudo">Ir para conteúdo [1]</a></li>
<li><a href="#inicioMenu">Ir para menu principal [2]</a></li>
<li><a href="#busca">Ir para Busca [3]</a></li>
</ul>
</div>
</header>
<nav role="navigation">
<a href="#inicioMenu" id="inicioMenu" accesskey="2">Menu</a>
<ul>
<li>Itens de menu</li>
<li>...</li>
</ul>
</nav>
<div id="conteudo" role="main">
<a href="#inicioConteudo" id="inicioConteudo" accesskey="1">Conteúdo</a>
<section role="section" aria-label="Formulário de busca">
<form action="#" method="post">
<fieldset>
<legend>Buscar</legend>
<label for="busca">Pesquise aqui</label>
<input type="text" id="busca" name="busca" accesskey="3"
value="Pesquise aqui" />
<input type="submit" value="Buscar" class="buscar" name="buscar" />
</fieldset>
</form>
</section>
<section role="section" aria-label="Conteúdo Principal">
<header role="heading">
<h2>BEM VINDO</h2>
</header>
<p>Seja bem vindo ao nosso site.</p>
</section>
</div>
<footer role="contentinfo">
<a href="#inicioRodape" id="inicioRodape">Rodapé</a>
<address> Rua XXX</address>
</footer>
• Pop-ups;
• Entre outros elementos, que não tenham sido solicitadas pelo usuário.
É muito importante que os links abram na guia ou janela atual de navegação, pois os
usuários com deficiência visual podem ter dificuldade em identificar que uma nova
janela foi aberta. Além disso, estando em uma nova janela, não conseguirão retornar
à página anterior utilizando a opção voltar do navegador. Quando for realmente
necessária a abertura de um link em nova janela, é recomendado que tal ação seja
informada ao usuário no próprio texto do link. Isso permite ao usuário decidir se quer
ou não sair da janela ou aba em que se encontra e, caso decida acessar o link, ele
saberá que se trata de uma nova aba ou janela.
Exemplo
As janelas modais, como as lightbox, fazem com que o foco do teclado permaneça
“atrás” da janela, ou seja, o usuário navegando pelo teclado não tem acesso ao
conteúdo dessas janelas. Além disso, as janelas modais, em geral, não apresentam
um bom nível de acessibilidade em dispositivos móveis. Assim, se houver real
necessidade de utilizar esse tipo de elemento, é preciso garantir que o foco seja
remetido para o início do conteúdo da janela modal, que o conteúdo dentro da mesma
seja acessível e que seja possível retornar facilmente para o site navegando pelo
teclado.
Exemplo
Um exemplo simples para criação de uma janela modal foi colocado abaixo contendo
apenas HTML e CSS3.
HTML
<div id="conteudo" role="main">
<a href="#openModal">Abrir Janela Modal</a>
<div id="openModal" class="modalDialog">
<div>
<a href="#close" class="close">Fechar</a>
<h2>Janela Modal</h2>
<p>
Esta é uma janela modal acessível e foi criada utilizando apenas
HTML e CSS3.
</p>
<p>É importante disponibilizar o link abaixo para sinalizar o final da janela
modal.</p>
<a href="#close">Fim do conteúdo modal, clique aqui para retornar</a>
</div>
</div>
</div>
CSS3
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 99999;
display:none;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
display: block;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
Algumas funções específicas do mouse possuem uma função lógica correspondente via
teclado, conforme mostrado na tabela a seguir:
onkeydown onmousedown
onkeyup onmouseup
onkeypress onclick*
onfocus* onmouseover
onblur* onmouseout
Exemplo:
HTML
Existem funções do mouse que não possuem uma função correspondente via teclado,
como é o caso de duplo clique (dblclick). Nesses casos, é necessário implementar a
função de maneira alternativa, como, por exemplo, incluindo botões que executem,
pelo teclado, a função de forma equivalente. O evento onclick já funciona pelo teclado
(tecla ENTER) na maioria dos navegadores. Os menus do tipo dropdown e outros que
contiverem subitens devem ser acessíveis pelo teclado.
Em HTML5 e ARIA
Menus suspensos são ótimos para organizar sites muito grandes, porém esses menus
podem acarretar problemas na acessibilidade, especialmente no que diz respeito ao
HTML5
<nav role="navigation" aria-label="Menu principal" class="topnav" id="menu">
<ul>
<li><a href="index.php">Página inicial</a></li>
<li><a href="noticias.php">Notícias</a></li>
<li><a href="eventos.php">Eventos</a></li>
<li>
<a href="acessibilidade-web.php">Acessibilidade Web</a>
<p><a href="#" class="expandir">Expandir menu Acessibilidade Web</a></p>
<ul class="subnav" role="menu">
<li role="menuitem"><a href="#">Projetos acessibilidade web</a></li>
<li role="menuitem"><a href="#">Notícias acessibilidade web</a></li>
<li role="menuitem"><a href="#">Dicas acessibilidade web</a></li>
<li role="menuitem"><a href="#">Manuais acessibilidade web</a></li>
</ul>
</li>
</ul>
</nav>
CSS
$(".expandir").click(function() {
$(this).parent().next().slideToggle('slow');
return false;
});
});
Exemplo incorreto
Página HTML
Nesse caso, se o navegador não tiver suporte a scripts, o usuário ficará impossibilitado
de acessar o link.
Exemplo correto
Página HTML
<script src="js/exemplo.js" type="text/javascript"></script>
A função “alert” do javascript não gera um pop-up e sim uma mensagem que é lida
por todos os leitores de tela.
Quando não for possível que o elemento programável seja diretamente acessível, deve
ser fornecida uma alternativa em HTML para o conteúdo.
Quando o script for utilizado em uma página da Web, uma forma de fornecer uma
alternativa para ele é através do elemento NOSCRIPT. Este elemento pode ser
utilizado para mostrar conteúdos em navegadores que não suportam scripts ou que
tenham o script desabilitado. No entanto, se o navegador tiver suporte a scripts e
estes estiverem habilitados, o elemento NOSCRIPT será ignorado. Dessa forma, a
utilização do elemento NOSCRIPT para um script inacessível não garante que o objeto
seja acessível. Assim, a recomendação é que o próprio script seja desenvolvido
tomando-se o cuidado para que ele seja acessível, e o elemento NOSCRIPT deve ser
utilizado para abranger os casos em que scripts não são suportados.
Como exemplo de uma boa prática, em uma interface Web para e-mail (Webmail), um
desenvolvedor pode fornecer um botão ou link para buscar novos e-mails recebidos
Figura 7: O Webmail Expresso possui um botão de atualizar para carregamento de novas mensagens
em vez de atualizar automaticamente. Em páginas onde o limite de tempo é
absolutamente necessário, o usuário deverá ser informado que a página é atualizada
automaticamente.
Exemplo:
Não devem ser utilizadas marcações para redirecionar a uma nova página, como o uso
do atributo http-equiv com conteúdo “refresh” do elemento META. Ao invés disso,
deve-se configurar o servidor para que o redirecionamento seja transparente para o
usuário (ver ePWG - Cartilha de Codificação em
http://epwg.governoeletronico.gov.br/cartilha-codificacao).
Em uma página onde há limite de tempo para realizar uma tarefa deve haver a opção
de desligar, ajustar ou prolongar esse limite. Essa recomendação não se aplica a
eventos em que o limite de tempo é absolutamente necessário.
Deve-se lembrar que, em ambos os casos, o limite de tempo deve ser informado.
Exemplos:
Em HTML 4.01
<html lang="pt-BR">
<head>
<title>documento escrito em português do Brasil</title>
Em XHTML 1.1
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-BR" lang="pt-BR">
<head>
<title>documento escrito em português do Brasil</title>
Em HTML5
<html lang="pt-br">
<head>
<title>documento escrito em português do Brasil</title>
Exemplo
XHTML
<p xml:lang="de">
Da dachte der Herr daran, ihn aus dem Futter zu schaffen,
aber der Esel merkte, daß kein guter Wind wehte, lief fort
und machte sich auf den Weg nach Bremen: dort, meinte er,
könnte er ja Stadtmusikant werden.
</p>
HTML
<p lang="de">
Da dachte der Herr daran, ihn aus dem Futter zu schaffen,
aber der Esel merkte, daß kein guter Wind wehte, lief fort
und machte sich auf den Weg nach Bremen: dort, meinte er,
könnte er ja Stadtmusikant werden.
</p>
<p>
O leitor de tela <span lang="en">JAWS</span> (acrônimo para <span
lang="en">Job Access With Speech</span>) é um software desenvolvido pela
empresa americana <span lang="en">FreedomScientific</span> e é, atualmente,
um dos mais populares no mundo. Trata-se de um <span lang="en">software
pago</span>, desenvolvido para o sistema operacional <span
lang="en">Microsoft Windows</span>.
</p>
Exemplo 1
A página inicial do Projeto de Acessibilidade Virtual apresenta o seguinte título:
<title>
Projeto Acessibilidade Virtual
</title>
<title>
Contato - Projeto Acessibilidade Virtual
</title>
Exemplo 3
A página interna “Publicações” do sítio do Ministério da Educação apresenta o seguinte
título:
<title>
Publicações – Ministério da Educação
</title>
Para mais detalhes a respeito do título descritivo, ver ePWG - Cartilha de Codificação
do ePWG (disponível em: http://epwg.governoeletronico.gov.br/cartilha-codificacao)
Exemplo
Um usuário navegando por um sítio de uma universidade encontra-se na seção de
editais, que está dentro do menu “Ensino”. Acima do conteúdo, é disponibilizada a
seguinte Migalha de pão:
OBS: Na migalha de pão, todas as páginas do caminho, com exceção da qual está o
usuário (posição atual), deverão estar implementadas como links e contidas dentro de
uma lista.
É preciso tomar cuidado para não utilizar a mesma descrição para dois ou mais links
que apontem para destinos diferentes. Da mesma forma, links que remetem ao
mesmo destino devem ter a mesma descrição.
Exemplo Incorreto
<h2>Educação Superior</h2>
<p>Tomam posse os reitores das federais da Bahia e Triângulo</p>
<p> <a href="notici5125.html" title=”Leia mais notícias sobre Educação
Superior”>Leia mais notícias sobre Educação Superior</a> </p>
Exemplo correto
<h2>Educação Superior</h2>
<p>Tomam posse os reitores das federais da Bahia e Triângulo</p>
Repare no exemplo incorreto acima que não há necessidade de utilizar o atributo title
em links, já que esse atributo não é bem suportado por recursos de tecnologia
assistiva, como leitores de tela, não tem utilidade para quem navega apenas pelo
teclado e não tem bom suporte em dispositivos móveis, como celulares, entre outros
problemas. Assim, se você quiser fornecer informações adicionais para um link, faça-o
no próprio texto do link ou no contexto, e jamais repita o conteúdo do link no atributo
title.
Exemplo incorreto:
Exemplo correto:
OBS: Não se deve fazer a utilização de links do tipo “clique aqui”, “leia mais”, “mais”,
“saiba mais”, “veja mais”, “acesse a lista”, pois estas expressões não fazem sentido
fora do contexto. Muitos usuários de leitores de tela navegam por links, tornando
descrições como “Clique aqui”, “Veja mais” insuficientes para o usuário saber o destino
do link, ou localizá-lo na página.
Exemplo
Deve ser fornecida uma descrição para as imagens da página, utilizando-se, para
tanto o atributo alt.
Exemplo 1
No código:
<img src="foto-porto-alegre.jpg" alt="Foto de uma bicicleta de carga verde com
caixas laranjas encostada numa parede" />
Exemplo 2
No código:
<a href="http://www.dominiopublico.gov.br/">
<img src="guia.png" alt="Guia de Serviços – Consulte serviços públicos de
forma fácil" />
</a>
Apesar de não haver um limite de caracteres para o atributo alt, ele é utilizado para
descrições sintéticas, em poucas palavras ou em uma frase curta. Para imagens mais
complexas que exigem uma descrição mais detalhada, como infográficos, por
exemplo, deve-se fornecer, além do alt, a descrição no próprio contexto ou um link
para a descrição longa logo após a imagem. Deve ficar claro para o usuário que esse
link remete para a descrição longa da imagem, conforme o exemplo a seguir.
Exemplo 3
Em HTML5
Foram incorporados ao HTML5 os elementos FIGURE e FIGCAPTION, que são utilizados
em conjunto com o objetivo de agrupar uma imagem IMG com a sua legenda, a qual
aparecerá visualmente.
O elemento FIGURE não é usado apenas para marcação de imagens, ele define um
bloco de conteúdo independente que normalmente contém linhas de códigos,
imagens, gráficos, diagramas e vídeos que fazem referência ao conteúdo principal do
documento. O elemento FIGCAPTION é opcional e exibe uma legenda para o elemento
FIGURE. Esse novo elemento age como subtítulo opcional ou legenda para qualquer
conteúdo contido dentro do elemento FIGURE e não substitui o atributo alt nas
descrições das imagens. Pode-se ter várias imagens, vídeos, gráficos, dentro de um
único elemento FIGURE. Caso haja um elemento FIGCAPTION este deve ser o primeiro
ou o último filho do elemento FIGURE e só um FIGCAPTION irá representar a legenda.
Exemplo
OBS:
Imagens que não transmitem conteúdo, ou seja, imagens decorativas, devem ser
inseridas por CSS. No exemplo a seguir, o separador pontilhado logo abaixo do título
de nível 3 “Acessibilidade web” é uma imagem decorativa cuja função foi inserida
através das folhas de estilo. Note que em alguns casos a imagem pode ser substituída
por um código CSS.
Exemplo
HTML
<h3>Acessibilidade web</h3>
CSS
h3 {
color: #64860B;
font-size: 1.4em;
Esse recurso não deve ser utilizado para menus ou seleção de regiões para serviços.
Para mapas de imagem do lado do cliente, devem ser fornecidas descrições através do
atributo alt para cada uma das zonas ativas, ou seja, para cada um dos links que
receberá o foco.
O título da tabela deve ser definido pelo elemento CAPTION e deve ser o primeiro
elemento utilizado após a declaração do elemento TABLE. Em casos de tabelas
Exemplo
<table summary="Esta tabela exibe os copos de café consumidos por cada senador,
o tipo de café (descafeinado ou normal), com açúcar ou sem açúcar.">
<caption>Copos de café por Senador</caption>
...
Exemplo 1
<table>
<caption>Demonstrativo do Patrimônio</caption>
<thead>
<tr>
<th>Tipos</th>
<th>Valores (R$)</th>
<th>Percentual</th>
</tr>
</thead>
<tfoot>
<tr>
<td>Total</td>
<td>110.740,22</td>
<td>100%</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>Recursos Financeiro</td>
<td>56.879,63</td>
<td>51,36%</td>
</tr>
<tr>
<td>Bens Móveis</td>
<td>25.691,23</td>
<td>23,20%</td>
</tr>
<tr>
Para tabelas mais complexas, é necessário utilizar marcações para associar as células
de dados com as células de cabeçalho. A maneira mais adequada de realizar esse
procedimento é utilizar os atributos id/headers ou scope/col. No primeiro, pode-se
associar qualquer célula de conteúdo a qualquer célula de cabeçalho, utilizando o
mesmo valor para o atributo id e para o header. No segundo caso, a associação é
automática, sendo mais utilizado em tabelas de associação direta, nas quais é dado o
valor col para o atributo scope nos cabeçalhos. Nos exemplos a seguir, é possível
verificar a utilização do id/headers e do scope/col.
Exemplo 2
<table summary="...">
<caption>Resultado do Concurso</caption>
<tr>
<th id="vaga">Vaga</th>
<th id="candidato">Nome do candidato</th>
<th id="basico">Prova de Conhecimento Básico</th>
<th id="especifico">Prova de Conhecimento Específico</th>
</tr>
<tr>
<td id="adm" rowspan="2">Técnico Administrativo</td>
<td id="PaulodaSilva">Paulo da Silva</td>
<td headers="adm basico PaulodaSilva">8</td>
<td headers="adm especifico PaulodaSilva">16</td>
</tr>
<tr>
<td id="PedroPontes">Pedro Pontes</td>
<td headers="adm basico PedroPontes">7</td>
<td headers="adm especifico PedroPontes">15</td>
</tr>
<tr>
<td id="inf">Técnico em Informática</td>
<td id="JoaoPereira">João Pereira</td>
<td headers="inf basico JoaoPereira">9</td>
<td headers="inf especifico JoaoPereira">17</td>
</tr>
</table>
Exemplo 3
<table summary="Tabela de vendas de maçã e banana efetuadas no ano de 2010">
<caption>Vendas 2010</caption>
<tr>
<th scope="col">Mês</th>
<th scope="colgroup" colspan="2">Rio Grande do Sul</th>
<th scope="colgroup" colspan="2">Santa Catarina</th>
</tr>
<tr>
<td>Janeiro</td>
<td scope="col">Maçã</td>
<td scope="col">Banana</td>
<td scope="col">Maçã</td>
<td scope="col">Banana</td>
</tr>
<tr>
<td>Feveiro</td>
<td>1000</td>
<td>1500</td>
<td>3000</td>
<td>1000</td>
</tr>
<tr>
<td>Março</td>
<td>2000</td>
<td>1500</td>
<td>3500</td>
<td>500</td>
</tr>
</table>
Exemplo 4
O texto de um sítio deve ser de fácil leitura e compreensão, não exigindo do usuário
um nível de instrução mais avançado do que o ensino fundamental completo. Quando
o texto exigir uma capacidade de leitura mais avançada, devem ser disponibilizadas
informações suplementares que expliquem ou ilustrem o conteúdo principal. Outra
alternativa é uma versão simplificada do conteúdo em texto.
Para mais informações sobre como escrever textos para web, acesse ePWG Cartilha de
Redação Web (http://epwg.governoeletronico.gov.br/cartilha-redacao) e o manual
Um site sobre desenvolvimento Web fornece um link de menu para o Glossário, que
contém explicações para termos como HTML, CSS, Tag, atributo, etc.
HTML
CSS
a.recomendado{
color: #FF0000;
}
Exemplo correto
HTML
<ul>
<li><a href="#">Procedimento A</a></li>
<li><a href="#" class="recomendado">Procedimento B (Recomendado)</a></li>
<li><a href="#">Procedimento C</a></li>
</ul>
CSS
a.recomendado{
color: #FF0000;
}
A página deve continuar legível e funcional mesmo quando redimensionada para até
200%. Assim, é preciso garantir que, quando a página for redimensionada, não
ocorram sobreposições nem o aparecimento de uma barra horizontal.
Exemplo
A área que recebe o foco pelo teclado deve ser claramente marcada, devendo a área
de seleção ser passível de ser clicada.
Exemplo
CSS
a:focus, a:hover {
border: 2px solid #F00;
}
HTML
<ul>
<li><a href="/acessibilidade/index.php">Página Inicial</a></li>
<li><a href="/acessibilidade/eventos.php">Eventos</a></li>
<li><a href="/acessibilidade/quemsomos.php">Quem Somos</a></li>
<li><a href="/acessibilidade/ead.php">Ensino a Distância (EaD)</a></li>
<li><a href="/acessibilidade/videoaulas.php">Vídeoaulas</a></li>
<li><a href="/acessibilidade/video.php">Vídeo em Libras</a></li>
<li><a href="/acessibilidade/oa.php">Objetos de Aprendizagem</a></li>
<li><a href="/acessibilidade/trabalhos.php">Trabalhos Realizados</a></li>
<li><a href="/acessibilidade/mapa.php">Mapa do Site</a></li>
</ul>
3.5 Multimídia
Deve haver uma alternativa sonora ou textual para vídeos que não incluem faixas de
áudio. Para vídeos que contêm áudio falado e no idioma natural da página, devem ser
fornecidas legendas. Além de essencial para pessoas com deficiência visual, a
alternativa em texto também é importante para usuários que não possuem
equipamento de som, que desejam apenas realizar a leitura do material ou não
dispõem de tempo para ouvir um arquivo multimídia.
Exemplo 1
Um vídeo mostra como produzir uma tecnologia assistiva de baixo custo. Não há
áudio, mas o vídeo inclui uma série de números para representar cada etapa do
processo. Nesse caso, junto ao vídeo, deve ser disponibilizado um arquivo com a
alternativa de texto que indica o conteúdo do vídeo e a descrição de cada uma das
etapas.
Exemplo 2
É importante salientar que o player de vídeo deve ser acessível. Deve ser possível
acessar os controles via teclado e os mesmos devem estar devidamente descritos,
para serem interpretados pelos leitores de tela.
HTML
<button onclick="playPause()">Play/Pause</button>
<button onclick="grande()">Grande</button>
Javascript
var meuVideo=document.getElementById("video");
function playPause()
{
if (meuVideo.paused)
meuVideo.play();
else
meuVideo.pause();
}
function grande()
{
meuVideo.width=500;
}
function pequeno()
{
meuVideo.width=300;
}
function normal()
{
meuVideo.width=420;
}
Áudio gravado deve possuir uma transcrição descritiva. Além de essencial para
pessoas com deficiência auditiva, a alternativa em texto também é importante para
usuários que não possuem equipamento de som, que desejam apenas realizar a
leitura do material ou não dispõem de tempo para ouvir um arquivo multimídia. Neste
caso, também é desejável a alternativa em Libras.
Exemplo
Vídeos que transmitem conteúdo visual que não está disponível na faixa de áudio
devem possuir uma audiodescrição.
Exemplo
Deve ser fornecido um mecanismo para parar, pausar, silenciar ou ajustar o volume de
qualquer som que se reproduza na página.
HTML5
<button onclick="playPause()">Play/Pause</button>
<audio controls id="audio">
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Seu navegador não suporta a elemento audio.
</audio>
Javascript
var meuAudio=document.getElementById("audio");
function playPause()
{
if (meuAudio.paused)
meuAudio.play();
else
meuAudio.pause();
}
Para qualquer animação que inicie automaticamente na página devem ser fornecidos
mecanismos para que o usuário possa pausar, parar ou ocultar tal animação.
Ilustração 32: Gif animado de pessoas num ponto de ônibus com controle de
animação
Ao serem utilizados botões do tipo imagem (input type=”image”), que servem para o
mesmo propósito do botão do tipo submit, deve ser fornecida uma descrição textual
para o botão através do atributo alt, conforme o exemplo a seguir.
Exemplo 1
Código:
<input type="image" name="enviar" src="enviar.jpg" alt="enviar" />
Já para outros tipos de botões (reset e button), é preciso substituir o botão pela
imagem que se deseja utilizar através do CSS. Nesse caso, para que o botão seja
acessível, ele deve possuir um value descritivo, conforme o exemplo a seguir.
Exemplo 2
CSS
input.btLimpar{
As etiquetas de texto (elemento LABEL) devem estar associadas aos seus campos
(elementos INPUT, SELECT e TEXTAREA, à exceção do elemento BUTTON)
Exemplo
<label for="nome">Nome: </label>
<input type="text" name="nome" id="nome" />
<fieldset>
<legend>Sexo:</legend>
<input type="radio" id="fem" name="sexo" />
<label for="fem">Feminino</label>
<input type="radio" id="mas" name="sexo" />
<label for="mas">Masculino</label>
</fieldset>
Quando um elemento de formulário receber o foco, não deve ser iniciada uma
mudança automática na página que confunda ou desoriente o usuário. Assim, as
mudanças devem ocorrer através do acionamento de um botão.
Exemplo Incorreto
Exemplo Correto
Para conteúdo que exigir entrada de dados por parte do usuário, devem ser fornecidas
quando necessário, instruções de preenchimento juntamente com as etiquetas
(elemento LABEL). A utilização de caracteres pré-definidos em áreas de entrada de
texto só deve ocorrer se:
• O texto for incluído após a entrada de dados pelo usuário (por exemplo, sugerir
um novo nome de usuário caso o escolhido já exista);
Exemplo 1
O seguinte exemplo indica que a data precisa ser inserida no formato dia (dd) – mês
(mm) – ano (aaaa).
Exemplo 2
<label for="nome">Nome:
<img src="images/icon_asterisk.gif" alt="obrigatório"/>
</label>
<input type=text name="nome" id="nome" />
Exemplo 3
HTML
<label for="nome">Nome:
<span>Obrigatório<span/>
</label>
<input type=text name="nome" id="nome" />
CSS
label span{
background-image: images/icon_asterisk.gif;
text-indent: -20000px;
font-size: 0;
width: 0.1 em;
height: 0.2em;
}
<label for="nome">Nome:</label>
<input type=text name="nome" id="nome" required />
<input type="submit" value="Enviar" />
Renderização
Exemplo
Após a validação dos dados, antes de enviar o formulário, uma tela de confirmação
deverá aparecer, conforme no exemplo a seguir, permitindo que o usuário verifique e,
se necessário, edite as informações antes de enviá-las.
Exemplo
<input type="email">
<input type="submit" value="Inscrever-se">
Exemplo
<form method="post" action="...">
<fieldset>
<legend>Dados Pessoais</legend>
<label for="nome">O seu Nome: </label>
<input type="text" name="nome" id="nome" />
...
</fieldset>
<fieldset>
<legend>Dados Profissionais</legend>
<label for="profissao">Sua profissão:</label>
<input type="text" id="profissao" name="profissao" />
...
</fieldset>
<fieldset>
<legend>Informações de Contato</legend>
<label for="email">E-mail: </label>
<input type="text" id="email" name="email" />
...
</fieldset>
</form>
No caso do elemento SELECT, pode ser utilizado o elemento OPTGROUP para agrupar
os itens da lista de seleção.
Exemplo 2
<label for="instituto">Qual a sua instituição?</label>
CAPTCHAs são utilizados para impedir que softwares automatizados, conhecidos como
bots, executem ações que degradem a qualidade do serviço de um sistema,
provocando danos em áreas e e-serviços de sítios em um curto espaço de tempo,
podendo sobrecarregar servidores e deixar sítios indisponíveis por um dado período.
Limites de conexão;
Monitoramento;
Consistência nas políticas de segurança;
Uso de técnicas de desenvolvimento de serviços e formulários seguros.
Caso o uso de CAPTCHA seja estritamente necessário, o mesmo deverá ser fornecido
em forma de pergunta simples de interpretação (CAPTCHA Humano), e este
preferencialmente só deverá ser apresentado após pelo menos 2 tentativas de envio
do formulário, por exemplo. Tais perguntas poderão ser respondidas apenas por um
ser humano. No entanto, é preciso garantir que a pergunta não seja de difícil
resolução, permitindo que a mesma possa ser respondida por pessoas de variadas
culturas e níveis de instrução. Para tal, podem ser utilizadas perguntas de senso
comum, como por exemplo, “qual é a cor do céu?” ou “o fogo é quente ou frio?”.
Também podem ser utilizados testes matemáticos. No entanto, é preciso tomar
cuidado para que esses testes não sejam facilmente “quebrados” por determinados
programas. Uma alternativa é solicitar que o usuário escreva o resultado do teste
matemático por extenso, como “escreva por extenso quanto é 2 + 3”, ou ainda
“responda por extenso quanto é dois mais três”.
Exemplo
<form action="action.php" method="post">
<fieldset>
<legend>CAPTCHA</legend>
</form>
1. Teclas de atalho
3. Barra de acessibilidade
Esses elementos já fazem parte da identidade digital de governo para mais detalhes
dessa iniciativa visite: http://portalpadrao.plone.org.br/manuais
• 1: para ir ao conteúdo;
A opção alto contraste deve gerar uma página em que a relação de contraste entre o
plano de fundo e os elementos do primeiro plano seja de, no mínimo 7:1 (contraste
otimizado). Desta forma, a folha principal de autocontraste deve obedecer a seguinte
configuração de cores:
• Cor de texto : independente da cor utilizada, ela deve ser alterada para
branco (#FFFFFF) ;
• Links : O modo normal do link deve ser sublinhado (para que ele se diferencie
do texto normal), assim como o modo hover e o modo active. O link deve ser
alterado para amarelo (#FFF333) ;
• Alto contraste
Acessibilidade
Este portal segue as diretrizes do eMAG (Modelo de Acessibilidade em Governo
Eletrônico), conforme as normas do Governo Federal, em obediência ao Decreto
5.296, de 2.12.2004 .
Esses atalhos valem para o navegador Chrome, mas existem algumas variações para
outros navegadores:
Ao final desse texto, você poderá baixar alguns arquivos que explicam melhor o termo
acessibilidade e como deve ser implementado nos sites da Internet.
Agente de Usuário: Qualquer software que recupera e apresenta conteúdo Web para
seus usuários, possibilitando que o usuário interaja com o conteúdo Web.
Leitor de tela: Software que fornece informações através de síntese de voz sobre os
elementos exibidos na tela do computador. Esses softwares interagem com o sistema
operacional, capturando as informações apresentadas na forma de texto e
transformando-as em resposta falada através de um sintetizador de voz. Para navegar
utilizando um leitor de tela, o usuário faz uso de comandos pelo teclado. O leitor de
tela também pode transformar o conteúdo em informação tátil, exibida dinamicamente
em Braille por um hardware chamado de linha ou display Braille, servindo, em
especial, a usuários com surdocegueira.
Padrões Web (Web Standards): Padrões Web são regras de tecnologia definidas
pelo W3C e outros órgãos da área utilizados para criar e interpretar o conteúdo Web.