Top Banner
Brave new world of HTML5 Patrick H. Lauke / WebTech 2010 / Milano / 9 Novembre 2010 CONTEXTUALISING THE NEW TECHNOLOGIES
89

Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

May 15, 2015

Download

Technology

Patrick Lauke
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

Brave new world of HTML5

Patrick H. Lauke / WebTech 2010 / Milano / 9 Novembre 2010

CONTEXTUALISING THE NEW TECHNOLOGIES

Page 2: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

Web Evangelist at Opera

Page 3: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

...should I use HTML5 today?

Page 4: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

www.textfiles.com/underconstruction

Page 5: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

"there is already a lot of excitement for HTML5, but it’s a little too early to deploy it because we’re running into interoperability issues."

Philippe Le Hegaret, W3C interaction domain leader

blogs.techrepublic.com.com/hiner/?p=6369

Page 6: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

http://www.flickr.com/photos/24374884@N08/4603715307/

Page 7: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

HTML5…without the hype?

Page 8: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

A brief history of HTML5

1999 HTML 4.012000 XHTML 1.0

Page 9: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

2004 W3C focus on XHTML 2.0…the future is XML-based!

http://www.flickr.com/photos/craiga/17071467/

Page 10: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

WHATWGWeb Hypertext Application Technology Working Group

Page 11: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

2007 W3C HTML5 WG

Page 12: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

“...extending the language to better support Web applications [...] This puts HTML in direct competition with other technologies[...] , in particular Flash and Silverlight.”

Ian Hickson, Editor of HTML5http://lists.w3.org/Archives/Public/public-html/2009Jan/0215.html

Page 13: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

HTML5 does not replace HTML 4.01 / XHTML 1.0

Page 14: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

HTML5 has more bling!

Page 15: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

HTML5 specification forbrowser developers

(how to interpret markup/code – no more reverse engineering)

for authors: HTML5 differences from HTML4http://www.w3.org/TR/html5-diff/

Page 16: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

1. syntax/semantic2. forms3. multimedia

Page 17: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

1. syntax/semantic2. forms3. multimedia

Page 18: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

HTML5 standardisescurrent browser behaviour

(e.g. “relaxed” coding rules)

Page 19: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

the dirty secret of the doctype

Page 20: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

XHTML 1.0<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Page 21: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

HTML5<!DOCTYPE html>

Page 22: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<meta charset=”utf-8” />

<meta charset=utf-8>

<MeTa CHarSet=utf-8>

Page 23: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<style type=”text/css”></style>

<script type=”text/javascript”></script>

Page 24: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<style type=”text/css”></style>

<script type=”text/javascript”></script>

Page 25: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<!doctype html><title>Minimal HTML5</title>

Page 26: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

new elemente for more accurate semantics

Page 27: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Page 28: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

Top 20 class names1. footer 11. button

2. menu 12. main

3. style1 13. style3

4. msonormal 14. small

5. text 15. nav

6. content 16. clear

7. title 17. search

8. style2 18. style4

9. header 19. logo

10. copyright 20. body

http://devfiles.myopera.com/articles/572/classlist-url.htm

Page 29: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

Top 20 id names1. footer 11. search

2. content 12. nav

3. header 13. wrapper

4. logo 14. top

5. container 15. table2

6. main 16. layer2

7. table1 17. sidebar

8. menu 18. image1

9. layer1 19. banner

10. autonumber1 20. navigation

http://devfiles.myopera.com/articles/572/idlist-url.htm

Page 30: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Page 31: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Page 32: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

unambiguous and machine readable...e.g. screenreaders?

Page 33: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

new and old browsers “support” these(although some need a little extra help)

header, footer, … { display: block; }

Page 34: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

Internet Explorer <9 needs extra training wheels

document.createElement('header');document.createElement('footer');…

http://html5doctor.com/how-to-get-html5-working-in-ie-and-firefox-2

Page 35: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

1. syntax/semantics2. forms3. multimedia

Page 36: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

improved form elementsbecause the web is more interactive

Page 37: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

jqueryui.com

Page 38: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

rich form elements – without faking them in JS

<input type=”date”><input type=”time”><input type=”month”><input type=”week”><input type=”datetime” … ><input type=”range”><input type=”number”>

<input type=”file” multiple>

<input … autofocus><input … autocomplete>

Page 39: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

types und attributes withbuilt-in validation<input … required><input type=”tel”><input type=”email”><input type=”url”><input … pattern="[a-z]{3}[0-9]{3}">

Page 40: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

1. syntax/semantics2. forms3. multimedia

Page 41: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

making your site Fonzie compliant...

Page 42: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<video>

Page 43: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

Adobe Flash currently most commonvideo delivery mechanism

Page 44: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<object width="425" height="344"><param name="movie"

value="http://www.youtube.com/v/9sEI1AUFJKw&hl=en&fs=1&"></param>

<param name="allowFullScreen" value="true"></param>

<param name="allowscriptaccess" value="always"></param>

<embed src="http://www.youtube.com/v/9sEI1AUFJKw&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

Page 45: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<video src="video.webm" controls autoplay loop preload poster="poster.jpg" width="320" height="240"> <a href="video.webm">Download movie</a></video>

Page 46: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

video as native object

● behaves like any other HTML element● keyboard accessibility out-of-the-box

Page 47: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

powerful (simple) API

Page 48: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

www.w3.org/TR/html5/video.html#media-elements

Page 49: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

controlling <video> with JavaScript

var v = document.getElementById('player');

v.play();v.pause();v.volume = … ;v.currentTime = … ;…

Page 50: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

events fired by <video>

var v = document.getElementById('player');

v.addEventListener('loadeddata', function() { … }, true)v.addEventListener('play', function() { … }, true)v.addEventListener('pause', function() { … }, true)v.addEventListener('timeupdate', function() { … }, true)v.addEventListener('ended', function() { … }, true)…

Page 51: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

video formatsthe big debate?

Page 52: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

HTML5 does not specify video container/codec

(same as with images in HTML 4?)

Page 53: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

MP4 / H.264

ubiquitous, patent encumbered, licensing/royalties

Page 54: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

Ogg Theora

free and open, no licensing feesnot many tools for it, not web optimised

Page 55: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

WebM / VP8

open and royalty-free, web-optimisedsupport by hardware and software vendors

Page 56: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

providing multiple sources<video controls autoplay poster="…" width="…" height="…">

<source src="movie.mp4" type="video/mp4" /><source src="movie.webm" type="video/webm" /><source src="movie.ogv" type="video/ogg" /><!-- fallback content -->

</video>

Page 57: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

flash fallback for older browsershttp://camendesign.com/code/video_for_everybody

Page 58: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<video controls autoplay poster="…" width="…" height="…"><source src="movie.mp4" type="video/mp4" /><source src="movie.webm" type="video/webm" /><source src="movie.ogv" type="video/ogg" />

<object width="…" height="…" type="application/x-shockwave-flash" data="player.swf">

<param name="movie" value="player.swf" /><param name="flashvars" value=" … file=movie.mp4" /><!-- fallback content -->

</object>

</video>

Page 59: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<audio>

Page 60: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

audio...exactly the same as video

<audio src=”music.mp3” controls autoplay … ></audio>

<audio controls autoplay><source src="music.mp3" type="audio/mpeg" /><source src="music.oga" type="audio/ogg" /><!-- fallback content -->

</audio>

formats: MP3 vs Ogg Vorbis (vs WAV)

Page 61: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

<canvas>

Page 62: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

canvas = “scriptable images”

<canvas width="…" height="…"></canvas>

Page 63: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

canvas has standard API methods for drawing

ctx = canvas.getContext("2d");

ctx.fillRect(x, y, width, height);ctx.beginPath();ctx.moveTo(x, y);ctx.lineTo(x, y);ctx.bezierCurveTo(x1, y1, x2, y2, c1, c2);

ctx.drawImage(…);

Page 64: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Page 65: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Page 66: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

canvas accessibility?

Page 67: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

video, audio and canvason all devices without plugins

(Java / Flash / Silverlight not ubiquitous)

Page 68: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Page 69: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Page 70: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

HTML5 (and friends) haslots more APIs for developers

(for powerful client-side apps)

Page 71: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

isgeolocationpartofhtml5.com

Page 72: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

geolocationnavigator.geolocation.getCurrentPosition(success, error);navigator.geolocation.watchCurrentPosition(success, error);

function success(position) {/* where's Wally? */var lat = position.coords.latitude;var long = position.coords.longitude;...

}

Page 73: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

offline detection...

window.addEventListener('online', function(){ … }, true);window.addEventListener('offline', function(){ … }, true);

and application cache<html manifest=”blah.manifest”>

CACHE MANIFEST# send this with correct text/cache-manifest MIMEimages/sprites.pngscripts/common.jsscripts/jquery.jsstyles/global.cssdata.xml

and much more...

Page 74: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

is it all safe to use, right now?

Page 75: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

www.youtube.com/html5

Page 76: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

don't do browser sniffing

http://www.flickr.com/photos/timdorr/2096272747/

Page 77: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Page 78: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

feature-detectionprogressive enhancement, graceful degradation

http://diveintohtml5.org/everything.html

Page 79: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

feature-detection for audio/video

if (!!document.createElement('video').canPlayType;) { … }

if (!!document.createElement('audio').canPlayType;) { … }

Page 80: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

patching older browsersgithub.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

Page 81: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

sublimevideo.net

Page 82: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

videojs.com

Page 83: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

www.happyworm.com/jquery/jplayer

Page 84: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

HTML5 as Flashkiller?

Page 85: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

not a question ofHTML5 replacing Flash...

Page 86: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

giving developers a choice!

Page 87: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

...should I use HTML5 today?

Page 88: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

“The future is already here – it's just not very evenly distributed”

William Gibson

Page 89: Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010

www.opera.com/developerpeople.opera.com/patrickl/presentations/webtech_09.11.2010/webtech_09.11.2010.pdf

[email protected]