1 CENTRO UNIVERSITÁRIO CATÓLICA DE SANTA CATARINA DAMIANO DE LIMA MARA NEVES DE MORAES MOACIR RICARDO THIAGO WOISKY HTML5 JARAGUÁ DO SUL SETEMBRO 2014 2 CENTRO UNIVERSITÁRIO CATÓLICA DE SANTA CATARINA DAMIANO DE LIMA MARA NEVES DE MORAES MOACIR RICARDO THIAGO WOISKY HTML5 Projeto de Pesquisa apresentado à disciplina de Programação IV do curso de Sistemas de Informação do Centro Universitário – Católica de Santa Catarina em Jaraguá do Sul. Professor:.Fabio Tavares Dipold JARAGUÁ DO SUL SETEMBRO 2014 3 SUMÁRIO SUMÁRIO .............................................................................................. 03 1 HTML5 – HISTÓRIA ........................................................................... 04 2 FUNDAMENTAÇÃO E CONCEITOS DO HTML5 .................................... 06 2.1 VANTAGENS ...................................................................................... 08 2.2 DESVANTAGENS ................................................................................ 08 3 NOVAS FUNCIONALIDADES ...................................................................... 09 4 ELEMENTOS REMOVIDOS ......................................................................... 09 5 NOVOS ELEMENTOS DO HTML5 ............................................................... 09 5.1 NOVA SEMÂNTICA / ELEMENTOS ESTRUTURAIS ............................. 09 5.2 NOVOS ELEMENTOS DE FORMULÁRIO .............................................. 10 5.3 NOVOS TIPOS DE ENTRADA ................................................................ 11 5.4 NOVOS ELEMENTOS GRÁFICOS ......................................................... 11 5.5 NOVOS ELEMENTOS DE MÍDIA ........................................................... 11 6 EXEMPLOS DAS NOVAS FUNCIONALIDADES ......................................... 12 6.1 ELEMENTOS SEMÂNTICOS DO HTML5............................................... 12 6.2 ELEMENTOS DE FORMULÁRIO DO HTML5 ........................................ 13 6.3 ELEMENTOS DE TIPO DE ENTRADA DO HTML5 ................................ 13 6.4 ATRIBUTOS PARA FORMULÁRIO DO HTML5 ..................................... 14 6.5 ELEMENTO CANVAS DO HTML5 .......................................................... 15 6.6 ELEMENTO SVG DO HTML5 ................................................................. 15 6.7 DIFERENÇAS ENTRE SVG E CANVAS................................................. 16 6.8 ELEMENTOS DE MÍDIA DO HTML5 ...................................................... 16 7 SITES NA INTERNET COM ESTE TIPO DE TECNOLOGIA ....................... 16 8 FERRAMENTAS DE PRODUTIVIDADE ...................................................... 17 8.1 TWITTER BOOTSTRAP ......................................................................... 17 8.2 ZURB FOUNDATION .............................................................................. 17 8.3 HTML5 BOILERPLATE ........................................................................... 17 8.4 SKELETON ............................................................................................. 18 8.5 HTML KICKSTAR .................................................................................... 18 9 REFERENCIAS ............................................................................................. 19 4 1 HTML5 – HISTÓRIA HTML é a sigla em inglês para Hyper Text Markup Language, que, em português, significa linguagem para marcação de hipertexto. Para o bom entendimento das definições, podemos resumir hipertexto como todo o conteúdo inserido em um documento para a web e que tem como principal característica a possibilidade de se interligar a outros documentos da web. O que torna possível a construção de hipertextos são os links, presentes nas páginas dos sites que estamos acostumados a visitar quando entramos na internet. Desenvolvido originalmente por Tim Berners Lee nos anos 80, o HTML ganhou popularidade quando o Mosaic (browser desenvolvido por Marc Andreessen na década de 1990) ganhou força. Depois disso, entre 1993 e 1995, o HTML ganhou novas versões, mas ainda não era tratada como um padrão. Apenas em 1997, quando foi lançada a versão 3.2 da linguagem, ela começou a ser usada como prática comum. Em fevereiro de 1996, o World Wide Web Consortium (W3C) criou o HTML ERB, um grupo formado por representantes da IBM, Microsoft, Netscape, Novell, Softquad e do W3C Consortium, encarregado de rever e padronizar a HTML com a finalidade de acabar com as implementações proprietárias. Em janeiro de 1997, o W3C endossou a HTML 3.2 como uma Recomendação oficial. Com essa versão, a HTML incorporou os elementos table e applet, bem como elementos para marcar subscritos, sobrescritos e texto ao redor de imagens. Em julho de 1997, foi lançada a versão rascunho para a Cougar, depois denominada HTML4. Em dezembro desse ano, o W3C endossou a HTML4 como uma Recomendação oficial. Em dezembro de 1999, o W3C publicou as Recomendações para o HTML. A partir de 2001 o W3C congelou o HTML 4.01 apostando no desenvolvimento do XHTML, porém em maio de 2007 reconsiderou sua decisão de encerrar o desenvolvimento da HTML em favor da XHTML e tornou pública sua decisão de retomar os estudos para o desenvolvimento da HTML5, tomando como base o trabalho que já vinha sendo desenvolvido em paralelo pelo WHATWG( Web Hypertext Application Technology Working Group) que em português, significa Grupo de Trabalho para Tecnologias de Hipertexto em Aplicações para Web. O WHATWG foi criado em 2004 por desenvolvedores da Apple, da Fundação Mozilla e 5 do navegador Opera, que, descontentes com os rumos adotados pelo W3C, propuseram-se a desenvolver as especificações para HTML5, Web Forms 2.0 e Web Controls 1.0. Atualmente, o foco único do Grupo de Trabalho é a HTML5, uma vez que a Web Forms 2.0 também foi assimilada pelo W3C e os estudos para Web Controls 1.0 foram interrompidos. O WHATWG desenvolve a HTML5 em conjunto com o W3C e ambos mantêm em seus sites uma versão das especificações que diferem ligeiramente em pequenos detalhes. A versão do WHATWG é menos restritiva do que a versão do W3C. Por exemplo: em vários itens da especificação, apresenta exemplos ilustrativos e informações sobre suporte da funcionalidade descrita, nos navegadores modernos. Essas informações adicionais não constam da versão do W3C. No dia 19 de janeiro de 2011, Ian Hickson, editor da HTML5, publicou no blog da WHATWG uma matéria informando que a especificação para a HTML5 continuaria a ser desenvolvida exclusivamente pelo W3C, ficando sob- responsabilidade do WHATWG a continuidade do desenvolvimento de uma especificação para a HTML geral, isto é, sem sufixo designativo da versão. Dificuldades ou impossibilidades de tratamento de elementos como formulários em HTML nesta nova versão foram reformulados adicionando ações comuns como HTTP update e delete, suporte a validação nativa de JAVASCRIPT, utilização de máscaras, também foram incluídos suporte nativo a áudio e vídeo, incluindo forma menos trabalhoso para armazenamento de informações através de Banco de Dados. 6 2 FUNDAMENTAÇÃO E CONCEITOS DO HTML5 O HTML5 é a nova versão da linguagem de marcação da web, que agrega estruturas e auxilia os desenvolvedores a criarem páginas de internet, com elementos precisos que facilitam os mecanismos de busca e fornecem resultados mais próximos daquilo que o usuário deseja. Essa linguagem oferece também recursos gráficos, multimídia, melhorias na estruturação de formulários e integração com as mais diversas linguagens de programação, proporcionando aos usuários uma acessibilidade mais prática e dinâmica. HMTL5 não é uma única coisa ou uma tecnologia monolítica. É uma coleção de recursos, tecnologias e APIs que traz o poder do desktop e da vibração da experiência multimídia para a web enquanto amplifica principais pontos fortes da web de interatividade e conectividade. Para o usuário comum, a principal mudança é que o HTML5 dispensa a instalação de plugins para assistir vídeos em diferentes formatos ou visualizar elementos de páginas da web. Estas e outras atividades, ficaram mais simples com a linguagem. Em dispositivos móveis, por exemplo, é possível acessar a internet com muita rapidez. Já o desenvolvedor, precisa apenas estar por dentro dos comandos certos. O HTML 5 possui: Tags para renderizar imagens; Códigos para incorporar vídeos em páginas da internet; APIs de geolocalização; Caching de aplicações (que permite o acesso a aplicativos mesmo offline) e bancos de dados com entradas de valores, palavras-chave e SQL. Tudo utilizando um sistema mais simples e padronizado. A própria W3C já oferece apostilas de cursos de HTML5, palestras e outras informações. Dia a dia a linguagem tem quebrado barreiras e criado oportunidades para que o ambiente online se torne cada vez mais intuitivo. Veja oito razões por que esse conjunto de padrões para a criação de aplicativos e sites tende a se tornar presente nos próximos anos. 7 1 - Apps universais - O HTML5 permite criar aplicativos quase universais, capazes de rodar numa variedade de dispositivos. “O HTML5 vai ajudar smartphones, tablets, PCs, televisores e veículos a convergir no futuro”. 2 - O melhor de dois mundos - Aplicativos em HTML5 têm as vantagens de serviços na internet, como o acesso em qualquer aparelho conectado. Mas têm, também, características dos programas nativos, feitos para equipamentos específicos. Podem exibir vídeo, música e animações, além de interagir com o usuário. E podem armazenar dados no próprio aparelho, para que fiquem disponíveis mesmo quando não há acesso à internet. 3 – Browsers - O HTML5 vem sendo desenvolvido desde 2004, quando a Mozilla e a Opera Software apresentaram uma primeira proposta para esse padrão. Ele ainda não está 100% pronto, mas, mesmo incompleto, já foi implementado em todos os principais browsers. Por isso, já pode ser usado na prática por quem desenvolve aplicativos e sites. 4 – Smartphones - A Strategic Analytics aponta que, em 2011, havia 336 milhões de dispositivos móveis com suporte a HTML5 no mundo. Em 2013, o número deve passar de 1 bilhão. E a tendência é que ele seja adotado inclusive em aparelhos mais baratos. 5 - Grandes empresas - Muitas companhias importantes participam do grupo de trabalho que define o HTML5 no World Wide Web Consortium (W3C). A lista inclui fabricantes como Samsung, LG e Apple; operadoras como AT&T e France Telecom; produtoras de software como Microsoft, Adobe e Zynga; empresas de TI, como IBM e HP; e da internet, como Google e Netflix. Há também universidades e especialistas independentes. O editor da especificação técnica é Ian Hickson, do Google. 6 – Facebook - O Facebook vem estimulando o uso do HTML5 para desenvolvimento de aplicativos e jogos na rede social. Assim, os apps se tornam compatíveis com múltiplas plataformas. 8 7 - Casos de sucesso - A criação de aplicativos para tablets e smartphones em HTML5 tem trazido bons resultados para algumas empresas. Um exemplo é o jornal londrino Financial Times, que oferece um app desse tipo para o iPad. Foi a maneira encontrada por ele para vender seu conteúdo diretamente ao usuário. 2.1 VANTAGENS • É possível incorporar vídeo e áudio, desenhos de alta qualidade, gráficos e animação e muitos outros conteúdos ricos sem o uso de plug-ins; • Permitir aos web designers a usar o código mais limpo, podendo remover a maioria das tags div e substituí-los com semânticas HTML 5; • Novos recursos e padrões; • Navegação off-line e browser caching; • HTML5 permite criar aplicativos quase universais, capazes de rodar numa variedade de dispositivos; • Desenvolvido em conjunto com a W3C. 2.2 DESVANTAGENS • Suporte dos browsers (apenas os navegadores modernos suportam o HTML5 e não completamente); • Embora as partes da língua são muito estáveis, o próprio língua é considerado um trabalho em andamento, então qualquer um dos elementos pode mudar a qualquer momento; • Problemas de licenciamento, você provavelmente vai usar algo como áudio mp3 para navegadores webkit (Safari, Chrome) e ogg para o Mozilla (Firefox) browsers. 9 3 NOVAS FUNCIONALIDADES Alguns dos novos recursos mais interessantes do HTML5 são: Novos elementos semânticos como <header>, <footer>, <article> e <section>. Novos controles de formulário, como número, data, hora, calendário e alcance. Forte apoio para gráficos com <canvas> e <svg>. Forte apoio multimídia com <video> e <audio>. Novas APIs poderosas, como a substituição de armazenamento local para cookies. 4 ELEMENTOS REMOVIDOS Os seguintes elementos do HTML 4.01 foram removidos do HTML5: <Acronym> <Applet> <Basefont> <Big> <Center> <Dir> <Font> <Frame> <Frameset> <Noframes> <Strike> <Tt> 5 NOVOS ELEMENTOS DO HTML5 Abaixo está uma lista dos novos elementos do HTML5, e uma descrição do que eles fazem. 5.1 NOVA SEMÂNTICA / ELEMENTOS ESTRUTURAIS HTML5 oferece novos elementos para melhor estrutura do documento: Tag Descrição <article> Defines an article in the document <aside> Defines content aside from the page content <bdi> Defines a part of text that might be formatted in a different direction from other text <details> Defines additional details that the user can view or hide 10 <dialog> Defines a dialog box or window <figcaption> Defines a caption for a <figure> element <figure> Defines self-contained content, like illustrations, diagrams, photos, code listings, etc. <footer> Defines a footer for the document or a section <header> Defines a header for the document or a section <main> Defines the main content of a document <mark> Defines marked or highlighted text <menuitem> Defines a command/menu item that the user can invoke from a popup menu <meter> Defines a scalar measurement within a known range (a gauge) <nav> Defines navigation links in the document <progress> Defines the progress of a task <rp> Defines what to show in browsers that do not support ruby annotations <rt> Defines an explanation/pronunciation of characters (for East Asian typography) <ruby> Defines a ruby annotation (for East Asian typography) <section> Defines a section in the document <summary> Defines a visible heading for a <details> element <time> Defines a date/time <wbr> Defines a possible line-break 5.2 NOVOS ELEMENTOS DE FORMULÁRIO Tag Descrição <datalist> Defines pre-defined options for input controls <keygen> Defines a key-pair generator field (for forms) <output> Defines the result of a calculation 11 5.3 NOVOS TIPOS DE ENTRADA Novos tipos de entrada Novos atributos Color date datetime datetime-local email month number range search tel time url week autocomplete autofocus form formaction formenctype formmethod formnovalidate formtarget height and width list min and max multiple pattern (regexp) placeholder required step 5.4 NOVOS ELEMENTOS GRÁFICOS Tag Descrição <canvas> Defines graphic drawing using JavaScript <svg> Defines graphic drawing using SVG 5.5 NOVOS ELEMENTOS DE MÍDIA Tag Descrição <audio> Defines sound or music content <embed> Defines containers for external applications (like plug-ins) <source> Defines sources for <video> and <audio> <track> Defines tracks for <video> and <audio> <video> Defines video or movie content 12 6 EXEMPLOS DAS NOVAS FUNCIONALIDADES 6.1 ELEMENTOS SEMÂNTICOS DO HTML5 Muitos dos sites existentes hoje possuem código HTML como este: <div id="nav">, <div class="header">, ou <div id="footer">, para indicar navegação entre links, cabeçalho e rodapé. HTML5 oferece novos elementos semânticos para claramente definir as diferentes partes da página web <header> <nav> <section> <article> <aside> <figure> <figcaption> <footer> <details> <summary> <mark> <time> O elemento <nav> define uma série de links navegáveis. Exemplo <nav> <a href="/html/">HTML</a> <a href="/css/">CSS</a> <a href="/js/">JavaScript</a> <a href="/jquery/">jQuery</a> </nav> 13 A tag <figure> especifica conteúdo autossuficiente, como ilustrações, diagramas, fotos, listas de códigos, etc... A tag <figcaption> define uma legenda para um elemento <figure>. Exemplo <figure> <img src="pic_mountain.jpg" alt="The Pulpit Rock" width="304" height="228"> <figcaption>Fig1. - The Pulpit Pock, Norway.</figcaption> </figure> 6.2 ELEMENTOS DE FORMULÁRIO DO HTML5 O elemento <output> representa o resultado de um cálculo, como um feito por um script. Calcula um valor e mostrando o resultado através do elemento <output>: <form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0 <input type="range" id="a" value="50">100 + <input type="number" id="b" value="50">= <output name="x" for="a b"></output> </form> 6.3 ELEMENTOS DE TIPO DE ENTRADA DO HTML5 Restrições de entrada - Abaixo está uma lista de algumas restrições para uso do input: Atributo Descrição disabled Specifies that an input field should be disabled max Specifies the maximum value for an input field maxlength Specifies the maximum number of character for an input field min Specifies the minimum value for an input field pattern Specifies a regular expression to check the input value against readonly Specifies that an input field is read only (cannot be changed) required Specifies that an input field is required (must be filled out) size Specifies the width (in characters) of an input field step Specifies the legal number intervals for an input field value Specifies the default value for an input field 14 Exemplo <form> Quantity: <input type="number" name="points" min="0" max="100" step="10" value="30"> </form> O tipo range é usado para campos de entrada que contém um valor entre um determinado intervalo de valores. Exemplo <form> <input type="range" name="points" min="0" max="10"> </form> 6.4 ATRIBUTOS PARA FORMULÁRIO DO HTML5 Novos atributos para <form>: autocomplete novalidate Novos atributos para <input>: autocomplete autofocus form formaction formenctype formmethod formnovalidate formtarget height and width list min and max multiple pattern (regexp) placeholder required step O atributo autofocus é booleano, e quando presente, especifica que o elemento <input> receberá foco quando a página for carregada. Exemplo First name:<input type="text" name="fname" autofocus> O atributo placeholder mostra uma dica do que se espera ser preenchido num campo <input>. Exemplo <input type="text" name="fname" placeholder="First name"> 15 6.5 ELEMENTO CANVAS DO HTML5 O elemento <canvas> é usado para desenhar figuras gráficas de forma premeditada, via script, geralmente Java Script. Exemplo <canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"> </canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.fillStyle = "#FF0000"; ctx.fillRect(0,0,150,75); </script> 6.6 ELEMENTO SVG DO HTML5 O elemento <svg> é usado para desenhar figuras gráficas baseadas em vetores. Exemplo <!DOCTYPE html> <html> <body> <svg width="300" height="200"> <polygon points="100,10 40,198 190,78 10,78 160,198" style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" /> </svg> </body> </html> 6.7 DIFERENÇAS ENTRE SVG E CANVAS SVG é uma linguagem para descrever gráficos 2D por XML. Canvas desenha gráficos 2D de forma premeditada, por JavaScript. Em SVG, cada desenho é lembrado como um objeto. Se os atributos de um objeto SVG são alterados, o navegador pode renderizar sua forma. Canvas é renderizado pixel a pixel. No canvas, uma vez que a forma é desenhada é esquecida pelo navegador. Se sua posição for alterada, qualquer objeto vinculado ao canvas deve ser redesenhado. 6.8 ELEMENTOS DE MÍDIA DO HTML5 Antes do HTML5, não havia um recurso nativo para reprodução de áudio e vídeo. Geralmente eram reproduzidos com uso de algum plug-in, como exemplo o Flash. O elemento <video> define uma forma nativa de reprodução de vídeo na página web. 16 O atributo controls adiciona controles para reprodução do vídeo, como play, pause e volume. É recomendado sempre utilizar os atributos width e height, se não for usado, o navegador não reconhecerá automaticamente as dimensões do vídeo. Textos entre as tags <video> e </video> somente são mostrados se o navegador não possui suporte ao elemento <vídeo>. Múltiplos elementos <source> podem referenciar diferentes arquivos de vídeo, o navegador utilizará o primeiro formato reconhecido. Para iniciar um vídeo automaticamente ao carregar a página, pode-se ser usado o atributo autoplay. Exemplo <video width="320" height="240" controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> Your browser does not support the video tag. </video> O elemento <audio> define uma forma nativa de reprodução de áudio na página web. Com exceção os atributos widht e height, que não são necessários para reprodução de áudio, os atributos controls e autoplay também podem ser utilizados. Exemplo <audio controls> <source src="horse.ogg" type="audio/ogg"> <source src="horse.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio> 7 EXEMPLOS DE SITES NA INTERNET COM ESTE TIPO DE TECNOLOGIA O The Wilderness Downtown | Arcade Fire um site que cria um filme interativo a partir do local escolhido, podendo em algum momento interagir com o mesmo. http://www.thewildernessdowntown.com/ O Three Dreams of Black cria um mundo interativo em 3D usando o WebGL, onde todos os objetos no vídeo reagem a ambos, a música e as entradas do usuário. O site tem disponível um espaço para o usuário adicionar seu sonho para interagir como o mesmo. http://www.ro.me/ O Soul Reaper usa o HTML5 para dar vida as apresentações de histórias gráficas, adicionando movimentos e ritmos as imagens estáticas. http://www.soulreaper.com/ 17 O The Expressive Web criado pela Adobe é um guia avançado em HTLM5, destacando o potencial de funcionalidade e criativo oferecido pelo uso do HTML5 e CSS3. http://beta.theexpressiveweb.com/ O This Shell, vem com o objetivo de promover o novo álbum do Gamit “Parts” bastante interativa. O site apresenta um quebra-cabeça de vídeo, e para poder baixar a musica o quebra-cabeça deverá ser resolvido antes que a música acabe. http://www.thisshell.com/ O Black5 utiliza os efeitos de Parallax e scroll horizontal e conta também com algumas pequenas animações para os objetos das pagina. http://www.black5.de/ 8 FERRAMENTAS DE PRODUTIVIDADE 8.1 TWITTER BOOTSTRAP O Twitter Bootstrap é uma coleção de ferramentas gratuíta para criação de websites e aplicações web. Contém componentes de inteface estilizados como tipografia, formulários, botões, gráficos, etc. Também possui extensões JavaScript ( opcional ). O layout é trabalho com o sistema de grade de 12 colunas e também possui diversos plugins JavaScript como Janelas de diálogo (modal), tooltips, carousel entre outros. Site Oficial: http://getbootstrap.com/ 8.2 ZURB FOUNDATION Zurb Foudation é um avançado Framework Front-end. Com ele, você pode rapidamente prototipar e construir sites ou aplicativos para dispositivos móveis. Trabalha com a metodologia Mobile First, onde você começa desenvolvendo para dispositivos com telas menores (smartphones) até telas maiores (monitores). Você pode também customiza-lo conforme necessário, incluindo ou removendo certos elementos, também pode definir tamanho de colunas, cores, tamanho de fontes entre outro. Site Oficial: http://foundation.zurb.com/ 8.3 HTML5 BOILERPLATE O HTML5 Boilerplate não é exatamente um Framework, mas sim um template Front-end. Ele ajuda Designers à iniciar com os padrões oferecidos por um template front-end profissional que permite uma criação rápida, robusta e adaptável 18 com um conjunto de recursos e elementos prontos do HTML5. Site Oficial: http://html5boilerplate.com/ 8.4 SKELETON Skeleton é uma pequena coleção de arquivos CSS para tornar seu desenvolvimento rápido e bonito em qualquer tamanho, sendo para um monitor de 17” ou Smartphone. Site Oficial: http://www.getskeleton.com/ 8.5 HTML KICKSTART HTML KickStart é um conjunto de arquivos “enxutos” do HTML5, CSS e jQuery (Javascript), layouts e elementos trazendo mais rapidez e poupando horas no desenvolvimento de aplicações web ou websites. Site Oficial: http://www.99lime.com/ 19 9 REFERÊNCIAS http://www.w3c.br/cursos/html5/conteudo/capitulo1.html Acesso em 04/09/2014 as 22:30; http://www.w3.org/TR/html401/appendix/changes.html Acesso em 04/09/2014 as 23:30; http://www.w3schools.com/html/html5_intro.asp Acesso em 05/09/2014 as 20:00; http://info.abril.com.br/noticias/carreira/7-razoes-pelas-quais-o-html-5-se-tornaraonipresente-06032012-25.shl?p=2 Acesso em 03/09/2014 as 20:10; http://revistaw.com.br/entrevistas/o-futuro-do-html5/ Acesso em 03/09/2014 as 21:00; http://fmbip.com/litmus/ Acesso em 07/09/2014 as 16:05; http://www.dltec.com.br/blog/webdesign/5-frameworks-html5-populares/ Acesso em 09/09/2014 as 23:30 http://gabrieldeveloper.com.br/html5-css3/item/2-10-melhores-sites-html5-em-2013 Acesso em 09/09/2014 as 23:30