O HTML 5 E SUAS NOVAS API’s David William Rosa de Souza1, Rafael Cunha Cardoso1 1 Tecnologia de Sistemas para a Internet Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense (IF-Sul) – Pça. 20 de Setembro, 455 – CEP 96020-080 – Centro – Pelotas – RS - Brasil. [email protected], [email protected] Abstract: This paper aims to present an introduction to HTML, since its inception to its current version. The paper also presents the history of HTML, W3C and WHATWG groups. In the following are discussed the HTML news and the case study that was done to get the structural tags that we have today. After that, the paper focuses some of the new API’s available along with HTML 5: web forms, geolocation, audio and video, canvas, local storage and offline aplications. Keywords: HTML5, W3C, API’s Resumo: Este trabalho tem por objetivo apresentar uma introdução do HTML, desde seu surgimento a sua versão atual. O artigo também apresenta a historia do HTML, e dos grupos W3C e WHATWG. A seguir, são abordadas as novidades do HTML e o estudo de caso que foi feito para chegar as tags estruturais que temos hoje. Após isso, o artigo enfoca em alguma das novas API’s disponíveis juntamente com o HTML 5: campos de formulários, geolocalização, áudio e vídeo, canvas, armazenamento local e aplicações offline. Palavras-chave: HTML5, W3C, API’s 1. Introdução O padrão HTML 4 foi criado em 1997 pela W3C (World Wide Web Consortium) [W3C, 1997], entidade que regula os padrões Web. Os padrões definidos pela W3C deveriam ser seguidos por todas as empresas desenvolvedoras de navegadores Web com intuito de garantir uma renderização uniforme de documentos por todos estes navegadores. Porém na prática, cada navegador usa uma engine1 de processamento próprio, fazendo com que o código fonte de uma página Web seja apresentado de forma diferente em navegadores distintos. Aliado a esse problema de incompatibilidade, a evolução, tanto da velocidade das conexões com a internet, quanto do hardware dos computadores, fez com que o HTML 4 fosse se tornando obsoleto. Assim, com o intuito de enfrentar os desafios advindos dessa nova realidade da Web, em 2004 foi criado um grupo de trabalho denominado WHATWG (Web Hypertext Application Technology Working Group) [WHATWG, 2004], com a finalidade de regulamentar e definir uma nova especificação para o HTML que viesse a atender essa necessidade de evolução, gerando assim a nova versão dessa linguagem, o HTML 5. 1 Software de processamento que transforma a linguagem de marcação em conteúdo Este trabalho tem como principal objetivo traçar um breve comparativo entre o HTML (HyperText Markup Language) 4 [W3C, 1997] e o HTML 5 [W3C, 2008], apresentar algumas das novas API’s (Application Programming Interface) do HTML 5. O trabalho inicialmente introduz a história do HTML apresentando a sua evolução desde sua primeira especificação até versão 5. Com relação ao HTML 5, o trabalho identifica as novas tags e atributos que agora fazem parte da linguagem além de apontar elementos que se tornaram obsoletos. Por fim, o trabalho detalha as seguintes API’s introduzidas com o HTML 5: campos de formulários, geolocalização, áudio e vídeo, canvas, armazenamento local e aplicações offline. Vale ressaltar que no decorrer do texto o HTML 5 será apresentado com intuito de, avaliar os benefícios do novo padrão para os desenvolvedores e as novas API’s. Este trabalho não trata, porém sobre a compatibilidade dos navegadores, visto que a cada dia os navegadores se atualizam ao novo padrão. 2. História do HTML A primeira versão do HTML foi baseada na linguagem SGML (Standard Generalized Markup Language) [SGML, 1994]. O SGML era utilizado para a estruturação de documentos e foi dele que o HTML herdou diversas tags tais como: título <h1> ao <h6>, cabeçalho <head> e parágrafo <p>. A principal diferença entre essas duas linguagens de marcação é que o HTML implementava a tag <a> com o atributo href, permitindo assim a ligação (links) de uma página a outra. Esse conceito de interligação entre documentos é a base do funcionamento de toda Web. O sucessor do HTML foi o HTML 2.0, o qual foi apresentado na primeira conferência mundial sobre Web, a World Wide Web Conference [HTML 2, 1995]. Essa versão do HTML pode ser vista apenas como uma correção da versão anterior, ou seja, apenas formalizava as características da linguagem que já estavam em uso. A versão seguinte do HTML a ser lançada foi a 3.2 [HTML 3.2, 1997], a qual manteve total compatibilidade com a versão 2. O HTML 3.2 adicionou novas características à linguagem, acrescentando elementos que proporcionavam utilizar tabelas, applets2 e texto flutuante ao redor de imagens. Em dezembro de 1999 o HTML 4.01 foi publicado trazendo como principal premissa a compatibilidade com as suas versões anteriores através de 3 implementações: Scrict (estrita) – implementação na qual fica proibida a utilização de elementos obsoletos da linguagem; Transitional (transitória) – implementação na qual o uso de elementos obsoletos é permitida; Frameset – implementação direcionada para site que usam frames. 2.1 W3C - World Wide Web Consortium Em agosto de 1994 foi fundado o W3C, um consórcio formado por instituições comerciais e educacionais, com o objetivo de definir padrões para as respectivas áreas 2 Aplicativos baseados em Java, pré-compilados para rodar direto no navegador, disponível em <http://java.sun.com/applets/> relacionadas à Web. Em dezembro de 1997 a W3C publicou o HTML 4 e após dois meses o XML 1. O W3C reformulou o grupo responsável pelo HTML para criar uma “suíte de tags XML”. O primeiro passo foi dado em dezembro de 1998 quando o grupo reescreveu o HTML em XML sem adicionar elementos ou atributos novos. Essa especificação foi chamada de XHTML 1. O objetivo seguinte do W3C foi a reestruturação dos formulários Web. Em agosto de 1999 o mesmo grupo responsável pelo HTML publicou o primeiro rascunho da extensão dos formulários para XHTML [XHTML, 1999]. Alguns meses depois, essa “extensão dos formulários para XHTML” foi rebatizada como “XForms” [XForms 1.0, 2003]. Foi criado um grupo específico, responsável pelo XForms. Esse grupo trabalhou em paralelo com o grupo de desenvolvimento do HTML com a finalidade de publicar a primeira versão do XForms em outubro de 2003. Enquanto isso, com a transição do XML [XML, 2001] completa, os membros do grupo do HTML criaram “a nova geração do HTML”. Em maio de 2001 eles publicaram a primeira versão 1.1 do XHTML. Em julho de 2004 a W3C organizou um workshop chamado “Workshop on Web Applications and Compound Documents” onde estavam presentes membros da W3C e companhias desenvolvedoras de navegadores como a fundação Mozilla e a Opera. Neste workshop foi apresentado uma visão do futuro da Web com uma evolução do padrão HTML 4 incluindo novas características para aplicações modernas. No workshop o W3C deixou claro que não seriam desenvolvidas novas tecnologias de extensões do HTML e CSS que não fossem criadas pelo atual grupo de trabalho do W3C. Diante desse impasse, o grupo que desenvolvia o HTML e os formulários HTML tinha duas escolhas: ou se uniam ao W3C, ou se separavam. Dessa forma, em julho de 2004 surgiu o WHATWG. 2.2 WHATWG O WHATWG é o grupo de trabalho tecnológico de aplicações de hipertexto para Web. Trata-se de um grupo livre, não oficial e de colaboração dos desenvolvedores de navegadores e de seus interessados. O WHATWG desenvolve especificações baseadas no HTML e em tecnologias relacionadas para facilitar o desenvolvimento e compatibilidade das aplicações Web, com a intenção de submeter os resultados para um padrão organizacional. Essas submissões podem então fazer parte do padrão formal do HTML. O WHATWG trabalhou por muito tempo informalmente através de trocas de emails entre seus integrantes. O grupo alcançou seu maior feito quando a sua recomendação sobre os formulários do HTML 4 foi aceita, e passou a ser especificação oficial reconhecida pela W3C, sem quebrar o padrão de compatibilidade com o conteúdo existente. Por muitos anos o W3C e o WHATWG ignoraram um ao outro. Enquanto o WHATWG focava nos formulários e nas novas características do HTML, o W3C estava ocupado com a versão 2.0 do XHTML. Em outubro de 2006, no entanto, ficou claro que o WHATWG estava com maior reconhecimento na comunidade, já que ao contrário do XHTML 2.0 da W3C que estava sendo lançado como rascunho e não estava sendo implementado pela maioria dos navegadores, a especificação lançada pela WHATWG a essa altura já estava sendo amplamente adotada pela comunidade. Em outubro de 2006, Tim Berners-Lee, o fundador da W3C, anunciou que a W3C deveria trabalhar em conjunto com a WHATWG. O primeiro passo desse trabalho em conjunto foi renomear o “Web Application 1.0” para “HTML 5”. 3. Novidades do HTML 5 A principal premissa do HTML 5 é melhorar a semântica das páginas e adicionar novos recursos à linguagem para responder adequadamente ao avanço tecnológico. Com esse princípio em 2004 foi feita uma pesquisa que vasculhou mais de um bilhão de páginas usando o motor de busca Google, com o objetivo de verificar como a Web estava estruturada. Como resultado desse estudo, foram coletadas as 20 classes do HTML mais utilizadas, as quais são apresentadas na figura 1. Figura 1 - 20 classes mais utilizadas3 A partir desse estudo a empresa Opera [Opera, 2011] realizou uma nova pesquisa em 2009, dessa vez vasculhando cerca de 2 bilhões de páginas e não analisando somente as classes utilizadas, mas também os id’s mais usados. Os resultados dessa pesquisa são apresentados na figura 2. 3 Disponível em <http://code.google.com/intl/pt-BR/webstats/2005-12/classes.html> Figura 2 - 20 classes e id's mais utilizados4 Baseado no resultado apontado por estes dois estudos desenvolvidos pela Google e pela Opera sobre as classes e id’s mais utilizados, foram propostas novas tags para o HTML 5, as tags descritas na tabela abaixo. <article> <aside> <audio> <canvas> <command> <datalist> <details> 4 Define um artigo. Um artigo deve ser algo independente, por exemplo, um post de um blog, de um fórum, comentários. Define um conteúdo secundário de uma página, por exemplo, um menu secundário ou um banner de anunciantes. Define um conteúdo de áudio. Usando src=”nome do arquivo” pode ser definido a fonte do áudio. Define gráficos. A tag canvas apenas define um container para gráficos. Para poder desenhar é necessário usar Javascript. Define um botão de comando, utilizado em inputs tipo button, como radio, checkbox, etc. A tag <command> deve ser usada dentro da tag <menu>. Se ela não estiver dentro só poderá definir um atalho de teclado. Define uma lista dropdown com opções especificas. Quando usado com um input, é possível definir os possíveis valores para o input. Define detalhes de um elemento. Esses Disponível em <http://devfiles.myopera.com/articles/572/idlist-url.htm http://devfiles.myopera.com/articles/572/classlist-url.htm> e <embed> <footer> <header> <mark> <meter> <nav> <output> <progress> <section> <source> <time> <video> detalhes podem ser apresentados ou suprimidos dependendo se o atributo „open‟ estiver especificado. Define um conteúdo externo que irá interagir com um plugin. Define um rodapé de uma página. Define um cabeçalho de uma página. Define uma marca ou um destaque no texto. Tag usada para destacar um texto com um background diferente. Define algo mensurável. Essa tag é usada quando se tem predeterminado um valor mínino e máximo. Define links de navegação, por exemplo, um menu. Define um resultado de um cálculo. Define um progresso de um tipo de tarefa. Pode ser usado em um progresso de download. Define uma seção do conteúdo. Pode ser usado para organizar capítulos, cabeçalhos, rodapé, etc. Define a fonte de um elemento como áudio ou vídeo. Define uma data ou um tempo. Define um vídeo. 4. Novas API’s do HTML 5 O HTML 5 adiciona novas tags e remove outras que estavam em desuso. Entretanto, a principal novidade fica a cargo das novas API’s suportadas pela linguagem. Nesta seção detalharemos algumas dessas novas API’s, citadas a seguir: novos elementos de formulário, geolocalização, áudio e vídeo, canvas, API‟s de comunicação, aplicações offline, armazenamento local, web sockets, web workers. 4.1. Novos campos de formulário Um dos principais problemas do HTML 4 era a reduzida quantidade de campos de formulário específicos. Quando era necessário usar um campo de formulário especifico, para, por exemplo, realizar a validação de um campo de data, era preciso recorrer ao Javascript. O HTML 5 traz novos campos de formulário [Dive into HTML5, 2009] para atender essa necessidade. Se o navegador utilizado pelo usuário não reconhecer o novo campo de formulário ele tratará o mesmo como se fosse um tipo texto. As subseções a seguir apresentam esses novos campos. 4.1.1. Tipo email Utilizado para validação de campos contendo endereços de email. Quando declarado com o atributo required, valida o campo de email, tendo sua sintaxe da seguinte forma: <input type=”email” required> Pode-se definir o atributo mutiple, o que possibilita ao usuário digitar vários emails separados por vírgula. 4.1.2. Tipo url Utilizado para campos de url, o navegador Opera mostra uma lista com as ultimas url válidas, declarado da seguinte forma: <input type=”url”> 4.1.3. Tipos data Utilizado para campos de data, sem a necessidade de usar Javascript, declarado da seguinte forma: <input type=”date”> Usado para campos de data, apresenta um calendário. Podemos ver o comportamento do navegador Opera na figura 3. Figura 3 - Calendário apresentado no Opera <input type=”month”> Usado para campos de mês. <input type=”week”> Usado para campos de semana. <input type=”time”> Usado para campos de hora e minutos. <input type=”datetime”> Usado para campos de data, o Opera apresenta um calendário. <input type=”datetime-local”> Usado para campos de data local, apresenta um calendário. 4.1.4. Tipo numérico Utilizado para campos numéricos, não permite a entrada um caractere que não seja numérico, implementado apenas pelo Opera, declarado da seguinte forma: <input type=”number”> Permite os atributos min, max e step que define um valor mínino, máximo e o intervalo respectivamente. 4.1.5. Tipo slider Utilizado para campos de slider, declarado da seguinte forma: <input type=”range”> Podemos ver como o campo tipo slider funciona na figura 4. Figura 4 - Slider 4.1.6. Tipo pesquisa Utilizado para campos de pesquisa, declarado da seguinte forma: <input type=”search”> 4.1.7. Tipo telefônico Utilizado para campos de pesquisa, declarado da seguinte forma: <input type=”tel”> 4.1.8. Tipo paleta de cor Utilizado para mostrar uma paleta de cor ao usuário, declarado da seguinte forma: <input type=”color”> 4.2. Geolocalização A API de geolocalização define uma forma de informar a localização do usuário em um mapa baseado na sua latitude e longitude. Existem muitas formas de fazer isso, por exemplo, usando o endereço de IP do usuário, através da conexão de rede do usuário, por meio de uma triangulação das torres de celulares mais próximas ao usuário ou ainda via satélite através de um GPS. Essa nova API centraliza todas as propriedades em um objeto global navigator, por exemplo, navigator.geolocation. Para compartilhar a localização é preciso autorizar o navegador a usar a informação de usa localização, como mostrado na figura 5. Figura 5 - Autorizar geolocalização Depois de autorizar a localização o mapa é mostrado como mostra figura 6. Figura 6 - Geolocalização 4.3. Áudio e vídeo Para adicionar conteúdo de áudio e vídeo em uma página no HTML 4 era necessário usar a tag <object>. Esta tag além de não possuir nenhuma semântica associada a ela, ainda necessitava a utilização de um plugin externo instalado no navegador (por exemplo, o Flash Player) para executar o áudio e o vídeo. O HTML 5 contorna esse problema adicionando as tags <audio> e <video> a sua especificação. Com elas não é mais necessário a utilização de um plugin externo para executar arquivos de áudio e vídeo, uma vez que os navegadores que suportarem o HTML 5 reconhecerão essas duas tags nativamente. Para integrar um áudio na página a seguinte sintaxe pode ser usada: <audio src=”meu_audio.mp3”></audio> Podemos ver um exemplo do player de áudio na figura 7. Figura 7 – Tag audio De forma similar, para inserir um vídeo na página usamos a seguinte sintaxe: <video src=”meu_video.avi”></video> Podemos ver um exemplo do player de vídeo na figura 8. Figura 8 - Tag video 4.3.1. Atributos Com as novas tag de áudio e vídeo surgem também os seus atributos. A seguir é apresentado um breve descritivo de cada um deles, começando com os atributos da tag audio: autoplay controls loop preload Permite que o vídeo comece a tocar automaticamente, quando a página é carregada. Apresenta os controles do vídeo como play, pause e stop. Especifica que o vídeo vai ficar tocando continuamente. Especifica que o vídeo tem que estar carregado no buffer para poder tocar. A tag video possui os mesmos atributos acima e mais os que seguem: audio poster height width Define o estado do áudio do vídeo, aceita o valor “muted” para deixar o video sem som. Apresenta uma imagem que faz uma referência ao vídeo, como uma thumb. Define a altura do vídeo. Define a largura do vídeo. Para execultar em um navegador, todo audio e video necessita de um container e de um codec. As seções abaixo descrevem esses dois conceitos além de mostrar como funcionam. 4.3.2. Containers Um container é algo semelhante a um arquivo zip, ou seja, um arquivo que contém vários outros arquivos. Dentro de um container de áudio e vídeo temos as faixas de vídeo, as faixas de áudio e os metadados. Os metadados são informações do arquivo que será executado, tais como: autor, legenda e tempo de duração. Dentre os containers mais populares temos: Audio Video Interleave, utiliza a extensão .avi; Flash Video, normalmente utiliza a extensão .flv. As versões mais recentes do Flash Player suportam o container MPEG-4; MPEG-4, normalmente utiliza a extensão .mp4 em containers da Apple antigo QuickTime utiliza extensão .mov; Mastroka, utiliza a extensão .mkv; Ogg, utiliza a extensão .ogv. Ogg é um container baseado em software livre; WebM, utiliza a extensão .webm. De todos os containers WebM é o mais recente, foi anunciado em 2010 pela Google, é muito similar ao Mastroka. 4.3.3. Codecs Codecs são algoritmos usados para codificar e decodificar arquivos de áudio e vídeo. Quando o usuário está assistindo um vídeo, o codec interpreta o container, busca quais faixas de áudio e vídeos estão disponíveis e decodifica as faixas de áudio e vídeo. Dentre os codecs de vídeo mais populares temos: H.264; VP8; Ogg Theora. Dentre os codecs de áudio mais populares temos: AAC; MPEG-3; Ogg Vorbis. 4.4. Canvas O HTML 5 define o elemento canvas, para renderizar gráficos, jogos e outras imagens. O canvas ocupa uma região retangular na página. Entretanto, para possibilitar que o desenvolvedor desenhe na área delimitada pelo elemento canvas, é necessário usar Javascript. Para adicionar um canvas na página o desenvolvedor deve utilizar o código HTML abaixo e logo após definir o contexto de renderização 2D: <canvas id=”meu_canvas” width=”300” height=”400”></canvas> 4.5. Armazenamento local No HTML 4 a única forma existente para se armazenar dados locais eram os cookies5. Porém, a utilização de cookies acarretava alguns problemas [The Unofficial Cookie FAQ, 2011], como por exemplo: Limitação de espaço de 4KB; Os cookies usam requisições HTTP para tudo, o que torna as aplicações lentas; Cookies não podem ser criptografados a menos que a aplicação rode por SSL. A remodelagem do armazenamento local era necessária devida alguns fatores, tais como: a necessidade por um maior espaço de armazenamento; armazenamento de dados tanto no cliente quanto no servidor; e possibilidade de realizar persistência dos dados. O HTML 5 traz uma solução para esse problema gerado pelo armazenamento local, guardando um par chave - valor dentro do navegador do usuário (como já faziam os cookies). A capacidade de armazenamento pode chegar até 5MB. O conceito de armazenamento local se baseia em um par de dados com uma chave e um valor. A chave utilizada é do tipo string, entretanto ela até pode suportar valores booleanos, números inteiros ou flutuantes. No entanto, o dado é armazenado sempre sob a forma de string. Por isso, quando um certo dado for recuperado ele deve ser convertido para o seu tipo, através de funções como parseInt(), que converte um valor em inteiro, ou parseFloat() que converte um valor em flutuante. Para utilizar o armazenamento local, o usuário deve utilizar o objeto Javascript localStorage como um array associativo e definir os métodos getItem() e setItem(), por exemplo: localStorage.setItem(“bar”, foo); localStorage.getItem(“bar”); 4.6. Aplicações offline O HTML 5 prevê uma API para aplicações offline, a qual permitirá utilizar parte do site mesmo que este esteja desconectado da internet. Para isso o desenvolvedor do site precisará especificar quais páginas e arquivos estarão disponíveis quando o usuário estiver offline. Para que a aplicação funcione, os arquivos que farão parte dela, como HTML, CSS ou Javascript devem ser indicados no arquivo com extensão manifest6. Os arquivos especificados ficarão armazenados em cachê, fazendo com que quando o usuário estiver executando a aplicação em modo offline e for modificar algum status na página, como por exemplo, enviar um email, isso seja refletido quando ele tornar a ficar online. 5. Conclusão 5 Cookies são grupos de dados trocados entre o navegador e o servidor das páginas, os quais são colocados em um arquivo de texto criado no computador do usuário. A sua função principal é a de manter a persistência de sessões HTTP. 6 Arquivo que lista os arquivos que serão baixados pelo navegador e deixados em cachê. Ao longo deste trabalho foi apresentada a história do HTML, as tags que não fazem mais parte da especificação, as novas tags do HTML 5 além de um detalhamento de algumas das principais novas API’s que surgiram no decorrer do tempo. Com a sua nova especificação, o HTML 5 não será mais apenas uma linguagem de marcação. O HTML se transformou em uma linguagem de marcação que trabalha em conjunto com um grupo de API’s Javascript, que tornam essa especificação uma ferramenta poderosa de desenvolvimento Web. Este trabalho apresentou as principais API’s que já estão em implementação pela W3C. Porém, uma série de outras API’s que já estão em fase de implementação não foram mencionadas, como por exemplo: API postMessage: Permite comunicação de forma segura entre frames, abas e janelas de um navegador; IndexDatabase: Permite indexar o banco de dados em conjunto com a API Storage; SQL Database: Permite fazer consultas SQL no banco de dados indexado pelo IndexDatabase; Web Workers: Otimiza o processamento de Javascript evitando que o navegador trave com um processo; Web Sockets: Permite a comunicação cliente-servidor através de apenas uma requisição, tem aplicação em canais de bate-papo, por exemplo; WebGL: baseado em OpenGL7 e fornece um interface de programação de gráficos 3D, utilizando a tag <canvas> do HTML 5; API de notificação: Permite notifica o usuário com uma caixa de dialogo; API de arquivos: Permite a manipulação de arquivos entre o sistema de arquivos do computador e o navegador; API para orientação em dispositivos móveis: Permite integração com o acelerômetro dos dispositivos móveis; Foram criados também os atributos globais como, por exemplo: Contenteditable: Permite que o usuário edite o conteúdo de um determinado elemento; Drag in drop: Permite arrastar e soltar elementos; Hidden: Oculta o elemento sem uso de CSS; Spellcheck: Verifica a ortografia de um elemento. Em paralelo a isso temos API’s que estão em desenvolvimento e ainda não implementadas por nenhum navegador como, por exemplo: 7 API de stream: Permitirá manipulação de eventos em áudio como, por exemplo, quando o áudio começar ou terminar de tocar. API Device: Permirá o reconhecimento de dispositivos externos conectados ao computador como uma webcam ou um microfone; API utilizada na computação gráfica, para desenvolvimento de aplicativos gráficos, ambientes 3D, jogos entre outros. API touchscreen: Permitirá manipulação de eventos em telas sensíveis ao toque como, por exemplo, quando um elemento é arrastado para direita ou esquerda. O HTML 5 ainda está em processo de desenvolvimento e a W3C espera que a sua implementação entre em vigor até 2014. Isso fez com que em fevereiro de 2011 a W3C lançasse a última chamada para os trabalhos da especificação, como noticia que segue: Em maio de 2011, o Grupo de Trabalho vai avançar para o "Last Call" do HTML5, que é um convite para comunidades dentro e fora do W3C para confirmar a adequação técnica das especificações. A seguir, o grupo mudará o foco para reunir ao resultados de testes de implementação. O W3C está desenvolvendo uma suíte de testes abrangentes para alcançar a interoperabilidade ampla para a especificação completa em 2014, a data prevista para a Recomendação. [W3C, 2011] O HTML 5 ainda não está pronto para ser usado, entretanto os navegadores mais modernos já estão implementando a maioria das propriedades descritas nesse trabalho. Este novo padrão adicionará mais semântica e melhorará a estrutura das páginas disponibilizadas na Web o beneficiando assim o desenvolvimento de mecanismos de busca cada vez mais eficientes assim como também leitores de tela. Referências W3C, disponível em: http://www.w3.org/ (20/09/2010). HTML 4.01 Specification, disponível em: http://www.w3.org/TR/html401/ (01/10/2010). HTML 5, disponível em: http://dev.w3.org/html5/spec/Overview.html (01/10/2010) WHAT open mailing list announcement, disponível em: http://www.whatwg.org/news/start/ (04/10/2010) A Brief History of the Development of SMDL and HyTime, disponível em: http://www.sgmlsource.com/history/hthist.htm (10/10/2010) Hypertext Markup Language - 2.0, disponível em: http://www.w3.org/MarkUp/html-spec/html-spec_toc.html (15/10/2010) Introducing HTML 3.2, disponível em: http://www.w3.org/MarkUp/Wilbur/ (23/10/2010) XHTML Extended Forms Requirements, disponível em: http://www.w3.org/TR/1999/WD-xhtml-forms-req-19990830.html (02/11/2010) XForms 1.0, disponível em: http://www.w3.org/TR/2003/REC-xforms-20031014/ (02/11/2010) Extensible Markup Language (XML), disponível em: http://www.w3.org/XML/ (20/01/2011) The Unofficial Cookie FAQ, disponível em: http://www.cookiecentral.com/faq/ (30/01/2011) Opera, disponível em: http://www.opera.com / (21/06/2011) Dive Into HTML 5, disponível em: http://diveintohtml5.org/forms.html (10/04/2011) W3C confirma Last Call do HTML5 para maio de 2011 e padrão completo para 2014, disponível em: http://www.w3c.br/Noticias/W3cConfirmaLastCallDoHtml5ParaMaioDe2011E PadraoCompletoPara2014 (22/06/2011)