As tags <form> e </form> são utilizadas para delimitar quais campos fazem parte de um formulário. Seus principais atributos são: action, method e name.
O atributo action indica qual é a página que receberá os dados do formulário.
O atributo method pode ter os valores get ou post. No get os dados do formulário vão juntamente com a URL. Garanta que a URL resultante não tenha comprimento maior que 255 caracteres, caso contrário, navegadores e servidores de proxy mais antigos podem não suportar essas URLs (Fielding et al., 1997). Uma alternativa interessante é utilizar cookies, pois podem ser recuperados via Javascript (client-side) ou via linguagem de programação server-side. A seguir um exemplo de uma URL de destino recebendo dados de um formulário via get.
http://www.exemplo.com.br/cadastro.php?nome=João&Idade=33
No post os dados são enviados juntamente com a requisição e o limite é configurável no servidor Web.
Note que se o formulário utilizar dados que não são caracteres (e.g., upload de arquivos) então o atributo method do formulário deve ser post.
O atributo name é utilizado para nomear o formulário para que ele possa ser referenciado dentro da página. Lembre-se que a especificação da linguagem XHTML 1.0 Strict não conta com o atributo name para a tag <form>.
Bluefish - Editor de páginas Web
HTML-Kit - Editor de páginas Web
W3C HTML 4.01 Specification - Especificação da linguagem de marcação HTML 4.01
Estrutura - A estrutura de documentos contribui para que o códigos possam ser corretamente interpretados nos diversos navegadores que podem ser utilizados para visualizar o website
Formulários - Formulários bem implementados permitem entrada de dados e interação com usuário de forma eficiente, independente de aplicações e equipamentos
Javascript deve ser usado para oferecer funcionalidades adicionais às já existentes e necessárias ao funcionamento da página Web. Dessa forma, caso o navegador do cliente não ofereça suporte a scripts a funcionalidade da página não será afetada. O Javascript permite que você informe a versão com que você deseja que seu código seja interpretado e também permite que você identifique a versão do navegador do cliente. No entanto, escrever códigos para versões restritas do Javascript não é um opção muito boa (apesar de amplamente adotada). O que sugerimos é a padronização e adoção de boas práticas de codificação que tornem o código Javascript menos sensível a versões dos navegadores e versões da própria linguagem.
A utilização de scripts também levanta questões relacionadas à acessibilidade. Existe a percepção que páginas que utilizam scripts não são acessíveis e que não é possível desenvolver páginas acessíveis fazendo uso de scripts. Ambas as afirmações estão incorretas e, neste site, são apresentadas formas de criar páginas acessíveis utilizando scripts.
Firefox Web Developer Add-on - Plug-in com várias ferramentas para desenvolvimento Web. É necessária a instalação do navegador Firefox.
W3Schools Javascript Reference - Referência da linguagem de programação Javascript
Compatibilidade - Compatibilidade entre navegadores, versões de linguagens, sistemas operacionais, etc
Codificação - Técnicas de codificação que contribuem para a construção de códigos válidos acessíveis e usáveis
Acessibilidade na Web significa que pessoas com diferentes tipos de deficiência também deveriam entender, navegar, interagir e contribuir com websites (WAI - Web Accessibility Initiative). Assim, o apoio à busca de acessibilidade na Web não exclui nenhum dos usuários e estende o conceito de usabilidade como um todo.
Relacionamento dos componentes essenciais da Acessibilidade Web. Desenvolvedores Web normalmente usam ferramentas de criação e ferramentas de aperfeiçoamento para criar conteúdo Web. Pessoas ("usuários") usam navegadores Web, players de mídia, tecnologias assistivas, ou outros "agentes de usuário" para acessar e interagir com o conteúdo (Silva, 2005).
Vídeo sobre acessibilidade na Web - Parte 1 (Acesso Digital)
Vídeo sobre acessibilidade na Web - Parte 2 (Acesso Digital)
Parte das 14 diretrizes para construção de websites acessíveis do W3C (WCAG - Web Content Accessibility Guidelines 1.0) podem ser atendidas com a construção de códigos HTML, CSS e Javascript válidos e bem estruturados. A seguir a lista de funcionalidades que contribuem para atender às diretrizes:
Com estes pontos, 8 das 14 diretrizes de conteúdo do W3C (WCAG 1.0) são atendidas. São elas:
Firefox Accessibility Extension - Plug-in com várias ferramentas relacionadas com acessibilidade. É necessária a instalação do navegador Firefox.
HTML-Kit - Editor de páginas Web
Bluefish - Editor de páginas Web
WAI - Web Accessibility Initiative do W3C
Definição - Esclarecimento de conceitos que são comuns na área de design para Web
Avaliação - Avaliação de código segundo padrões, diretrizes e heurísticas
Link para o tópico Acessibilidade na Web
Segundo o Decreto nº 5.296 (DECRETO nº 5.296 DE 2 DE DEZEMBRO DE 2004, 2004), acessibilidade está relacionada em fornecer condição para utilização, com segurança e autonomia, total ou assistida, dos espaços, mobiliários e equipamentos urbanos, das edificações, dos serviços de transporte e dos dispositivos, sistemas e meios de comunicação e informação, por pessoa portadora de deficiência ou com mobilidade reduzida. No mesmo documento, barreiras são definidas como qualquer entrave ou obstáculo que limite ou impeça o acesso, a liberdade de movimento, a circulação com segurança e a possibilidade de as pessoas se comunicarem ou terem acesso à informação (DECRETO nº 5.296 DE 2 DE DEZEMBRO DE 2004, 2004).
O programa Custe o que custar (CQC) da rede Bandeirantes de televisão fez uma matéria que ilustra bem como ainda há muito para ser feito sobre acessibilidade no Brasil.
Vídeo: CQC - Proteste Já! Vagas para Deficientes (parte 1 de 2). Fonte: Programa CQC da Bandeirantes.
Vídeo: CQC - Proteste Já! Vagas para Deficientes (parte 2 de 2). Fonte: Programa CQC da Bandeirantes.
Acessibilidade na Web significa que pessoas com diferentes tipos de deficiência também conseguem entender, navegar, interagir e contribuir com websites, inclusive idosos, que sofrem alterações em algumas de suas habilidades devido a idade (WAI - Web Accessibility Initiative).
Assim, podemos pensar na acessibilidade como sendo a qualidade de locais, dispositivos, meios de comunicação, sistemas e serviços, que podem ser utilizados por pessoas com diferentes necessidades. Note que por "pessoas com diferentes necessidades" nos referimos a qualquer indivíduo, uma vez que existem inúmeras situações em que um ou mais sentidos de uma pessoa não estão voltados para a mesma tarefa. A seguir são apresentados alguns cenários em que estão envolvidas barreiras e problemas de acessibilidade para pessoas com diferentes tipos de limitações:
Em torneiras que utilizam temporizador para controlar o fluxo da água, se uma torneira está mal regulada de forma que a água pare assim que o botão é liberado, um usuário que está com uma das mãos ocupadas não conseguirá utilizar a torneira. Basta que o usuário esteja com um dos braços engessado ou segurando um bebê para não conseguir utilizar a torneira em questão.
Em escritórios em que é permitido que se escute música com a utilização de fone de ouvido, um telefone sem indicativo visual de que está tocando não chamará a atenção do seu usuário e conseqüentemente não atingirá seu objetivo. Note que o usuário não precisa ter nenhum problema no aparelho auditivo para fazer uso da redundância obtida com a utilização do recurso visual.
Figura: Pessoa usando fone de ouvido enquanto trabalha. Fonte: Foto de muzo178 no flicker.
Na computação a redundância também é um recurso bastante útil para a garantia da acessibilidade. Um exemplo da relevância da redundância é a ferramenta de comunicação instantânea do webmail Gmail (Google Mail). Nele, notificações são informadas através de efeitos visuais e auditivos.
Figura: Informações redundantes sobre a chegada de nova mensagem na ferramenta de comunicação instantânea do GMail.
Vídeo: The Fountain. Fonte: aniBoom.
Por fim, o apoio à busca de acessibilidade não exclui nenhum dos usuários e estende o conceito de usabilidade como um todo. E, seguindo a definição de barreiras do Decreto nº 5.296 (DECRETO nº 5.296 DE 2 DE DEZEMBRO DE 2004, 2004), temos que uma forma de tornarmos algo mais acessível é identificar e eliminar quaisquer barreiras existentes entre os usuários e o que eles querem utilizar.
Vídeo: Acessibilidade - Siga esta idéia. Fonte: CONADE - Conselho Nacional dos Direitos das Pessoas Portadoras de Deficiência..
WAI - Web Accessibility Initiative do W3C
Definição - Esclarecimento de conceitos que são comuns na área de design para Web
As tags <a> e </a> são utilizadas para definir um hiperlink. Note que o hiperlink deve identificar claramente o local para onde o usuário será enviado. Não utilize palavras vagas nem repita o mesmo conteúdo para dois hiperlinks distintos. Toda âncora deve ter um conteúdo textual ou gráfico associado de forma que os usuários possam acessá-la.
Os atributos principais desta tag são: href, target, accesskey, longdesc e title. O atributo href indica qual é o destino do hiperlink, que pode ser uma página ou uma âncora. Para referenciar uma âncora basta colocar o nome da âncora após o sinal #.
Um uso comum dessas âncoras, para tornar páginas mais acessíveis aos usuários de leitores de tela, é nomear uma região do conteúdo principal e incluir um hiperlink no início da página que remeta o usuário diretamente para esse conteúdo, evitando que tenham que passar por cada um dos links até alcançarem o conteúdo principal. Este mecanismo é chamado de skip link.
...
<a href="#conteudo">Ir para conteúdo principal</a>
...
<a name="conteudo">Início do conteúdo</a>
...
O atributo accesskey indica um atalho pelo qual o usuário poderá acessar um hiperlink apenas combinando uma tecla especial (e.g., ALT) com o caractere associado a este atributo, sem necessitar do mouse. Note que o uso deste atributo deve ser consistente e único para cada hiperlink/função.
O atributo title é diferente da tag <title>. Aqui o atributo indica ao usuário o que há na página/âncora que o hiperlink remete, já a tag <title> se refere ao título da página.
O atributo longdesc contém uma descrição mais detalhada que a descrição apresentada no atributo title.
Bluefish - Editor de páginas Web
HTML-Kit - Editor de páginas Web
W3C HTML 4.01 Specification - Especificação da linguagem de marcação HTML 4.01
Navegação - Uma navegação adequada contribui para que usuários, independente das aplicações e equipamentos que estejam utilizando, possam acessar todas as áreas do website com eficiência
Os códigos em Javascript utilizados em uma página podem ser internos ou externos. Para utilização de código interno sugerimos que a estrutura utilizada seja a seguinte:
...
<script type="text/javascript"><!--
// código Javascript
//--></script>
...
Priorize a declaração de códigos Javascript no início dos documentos HTML, dentro da tag <head>. Com isso, você melhora a legibilidade do código e evita erros de escopo de declaração de variáveis e ordem de métodos.
Note que os comandos <!-- e //--> localizados após as tags script de abertura e fechamento, respectivamente, são usados para que código Javascript não seja mostrado por navegadores que não suportam scripts.
Sugerimos que as chamadas a scripts externos tenham a seguinte forma:
...
<script type="text/javascript" src="codigo.js"> </script>
...
Note que arquivos externos não precisam iniciar com os comandos utilizados nos scripts internos, pois o arquivo externo só será interpretado se o navegador suportar Javascript.
Firefox Web Developer Add-on - Plug-in com várias ferramentas para desenvolvimento Web. É necessária a instalação do navegador Firefox.
W3Schools Javascript Reference - Referência da linguagem de programação Javascript
Padronização - A padronização de código permite que o código possa ser facilmente entendido, reaproveitado e otimizado
Estrutura - A estrutura de documentos contribui para que o códigos possam ser corretamente interpretados nos diversos navegadores que podem ser utilizados para visualizar o website
Compatibilidade - Compatibilidade entre navegadores, versões de linguagens, sistemas operacionais, etc
A primeira linha de código de uma página HTML deve ser a declaração DOCTYPE. É por meio dela que é possível especificar uma DTD (Document Type Definition) e assim possibilitar que os navegadores e ferramentas de validação identifiquem a linguagem utilizada numa página, assim como suas tags, atributos e estrutura.
Note que ela deve ser a primeira linha do arquivo que o navegador recebe, ou seja, não há problema algum se houver programação no lado do servidor contanto que a página HTML resultante contenha em sua primeira linha a declaração DOCTYPE.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
A declaração DOCTYPE pode ser feita de várias formas. Na forma apresentada anteriormente temos a seguinte estrutura. Em que:
Por fim, HTML 4.01 possui três DTDs principais, são elas: Strict, que utiliza apenas os elementos consolidados; Frameset, que é usada em websites que contam com frames; Transitional, que permite a utilização dos mesmos elementos da Strict mais os elementos obsoletos, tendo em vista a compatibilidade com páginas mais antigas.
Assim, recomendamos a utilização da DTD Transitional nos casos em que esteja sendo realizada a recodificação do website e a Strict quando estiver sendo criado um novo website ou após a a verificação que o website seja um HTML válido, uma vez que temos como objetivo manter a apresentação de páginas antigas, tornar o código HTML válido e incluir elementos que aumentem a acessibilidade de um website.
Bluefish - Editor de páginas Web
HTML-Kit - Editor de páginas Web
W3C HTML 4.01 Specification - Especificação da linguagem de marcação HTML 4.01
Estrutura - A estrutura de documentos contribui para que o códigos possam ser corretamente interpretados nos diversos navegadores que podem ser utilizados para visualizar o website
Link para o tópico DOCTYPE - Declaração do cabeçalho de documentos HTML
A tag <input> é utilizada para definir um campo de entrada de dados em um formulário. Por meio do seu atributo type é possível escolher qual é o tipo de elemento a ser utilizado. Os principais valores para o atributo type são: text, checkbox, radio e submit.
Além do atributo type deve-se utilizar os atributos id, name e value. O atributo id serve para identificar o elemento e entre outras coisas possibilitar o uso da tag <label>.
O atributo name é utilizado para referenciar o elemento no formulário via programação no cliente ou no servidor. O atributo value indica qual é o valor inicial do campo.
Quando cabível com o tipo de input, para indicar que ele está selecionado, use o atributo checked com valor checked.
...
<label for="ex24_idade">Idade:</label><input type="text" id="ex24_idade" name="campo_idade" value="18"/>
<input type="submit" id="ex24_enviar" name="botao_enviar" value="Enviar"/>
...
...
...
Bluefish - Editor de páginas Web
HTML-Kit - Editor de páginas Web
W3C HTML 4.01 Specification - Especificação da linguagem de marcação HTML 4.01
Formulários - Formulários bem implementados permitem entrada de dados e interação com usuário de forma eficiente, independente de aplicações e equipamentos
Link para o tópico Campos de entrada de dados - A tag HTML <input>
A geração de conteúdo utilizando CSS é uma característica do CSS nível 2, o que indica que deve ser utilizada com cautela e acompanhada de testes com os navegadores mais utilizados pelo público alvo. A geração de conteúdo possibilita adicionar informações sobre o contexto de elementos que são destacados por atributos visuais como borda, imagens ou cores de fundo, etc.
Além dos pseudo-elementos before e after, o CSS nível 2 conta com as propriedades cue, cue-before e cue-after, que possibilitam que sons sejam tocados para auxiliar na identificação de conteúdo. Outras formas mais compatíveis de fornecer contexto e aumentar a acessibilidade de uma página Web são: a partir da utilização dos atributos display e visibility para esconder elementos de contexto que são redundâncias para informações visuais, ou tornar um texto desses pequeno e de cor igual à do fundo. Conforme comentado anteriormente, verifique sempre a compatibilidade das propriedades e elementos que deseja utilizar com os navegadores utilizados no seu website. A referência sugerida é Referência de CSS do W3 Schools.
Firefox Web Developer Add-on - Plug-in com várias ferramentas para desenvolvimento Web. É necessária a instalação do navegador Firefox.
W3C CSS Specification - Especificação de CSS
HTML-Kit - Editor de páginas Web
Bluefish - Editor de páginas Web
Legibilidade - Legibilidade e conteúdo textual
Codificação - Técnicas de codificação que contribuem para a construção de códigos válidos acessíveis e usáveis
Link para o tópico Conteúdos gerados pelo CSS: os pseudo-elementos before e after
No lugar de executar vários comandos de impressão (e.g., document.write), o que pode tornar o script muito lento, concatene a saída em uma variável e por fim envie o conteúdo da variável de uma única vez.
...
<script type="text/javascript"><!--
document.write( "<table>" ) ;
document.write( "<tr><td>" ) ;
document.write( "teste" ) ;
document.write( "<\/td><\/tr>" ) ;
document.write( "<\/table>" ) ;
//--></script>
...
...
<script type="text/javascript"><!--
var html_code = "<table>"
html_code += "<tr><td>" ;
html_code += "teste" ;
html_code += "<\/td><\/tr>" ;
html_code += "<\/table>" ;
document.write( html_code ) ;
//--></script>
...
Firefox Web Developer Add-on - Plug-in com várias ferramentas para desenvolvimento Web. É necessária a instalação do navegador Firefox.
W3Schools Javascript Reference - Referência da linguagem de programação Javascript
Padronização - A padronização de código permite que o código possa ser facilmente entendido, reaproveitado e otimizado
Codificação - Técnicas de codificação que contribuem para a construção de códigos válidos acessíveis e usáveis