html5 and friends - standards>next manchester 24.11.2010

91
HTML5 and friends Patrick H. Lauke / standards>next / Manchester / 24 November 2010 CONTEXTUALISING THE NEW TECHNOLOGIES

Upload: patrick-lauke

Post on 15-May-2015

2.184 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: HTML5 and friends - standards>next Manchester 24.11.2010

HTML5 and friends

Patrick H. Lauke / standards>next / Manchester / 24 November 2010

CONTEXTUALISING THE NEW TECHNOLOGIES

Page 2: HTML5 and friends - standards>next Manchester 24.11.2010

Web Evangelist at Opera

Page 3: HTML5 and friends - standards>next Manchester 24.11.2010

...should I use HTML5 today?

Page 4: HTML5 and friends - standards>next Manchester 24.11.2010

www.textfiles.com/underconstruction

Page 5: HTML5 and friends - standards>next Manchester 24.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: HTML5 and friends - standards>next Manchester 24.11.2010

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

Page 7: HTML5 and friends - standards>next Manchester 24.11.2010

HTML5…without the hype?

Page 8: HTML5 and friends - standards>next Manchester 24.11.2010

A brief history of HTML5

1999 HTML 4.012000 XHTML 1.0

Page 9: HTML5 and friends - standards>next Manchester 24.11.2010

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

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

Page 10: HTML5 and friends - standards>next Manchester 24.11.2010

WHATWGWeb Hypertext Application Technology Working Group

Page 11: HTML5 and friends - standards>next Manchester 24.11.2010

2007 W3C HTML5 WG

Page 12: HTML5 and friends - standards>next Manchester 24.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: HTML5 and friends - standards>next Manchester 24.11.2010

HTML5 does not replace HTML 4.01 / XHTML 1.0

Page 14: HTML5 and friends - standards>next Manchester 24.11.2010

HTML5 has more bling!

Page 15: HTML5 and friends - standards>next Manchester 24.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: HTML5 and friends - standards>next Manchester 24.11.2010

1. syntax/semantic2. forms3. multimedia

Page 17: HTML5 and friends - standards>next Manchester 24.11.2010

1. syntax/semantic2. forms3. multimedia

Page 18: HTML5 and friends - standards>next Manchester 24.11.2010

HTML5 standardisescurrent browser behaviour

(e.g. “relaxed” coding rules)

Page 19: HTML5 and friends - standards>next Manchester 24.11.2010

the dirty secret of the doctype

Page 20: HTML5 and friends - standards>next Manchester 24.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: HTML5 and friends - standards>next Manchester 24.11.2010

HTML5<!DOCTYPE html>

Page 22: HTML5 and friends - standards>next Manchester 24.11.2010

<meta charset=”utf-8” />

<meta charset=utf-8>

<MeTa CHarSet=utf-8>

Page 23: HTML5 and friends - standards>next Manchester 24.11.2010

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

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

Page 24: HTML5 and friends - standards>next Manchester 24.11.2010

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

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

Page 25: HTML5 and friends - standards>next Manchester 24.11.2010

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

Page 26: HTML5 and friends - standards>next Manchester 24.11.2010

new elemente for more accurate semantics

Page 27: HTML5 and friends - standards>next Manchester 24.11.2010
Page 28: HTML5 and friends - standards>next Manchester 24.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: HTML5 and friends - standards>next Manchester 24.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: HTML5 and friends - standards>next Manchester 24.11.2010
Page 31: HTML5 and friends - standards>next Manchester 24.11.2010
Page 32: HTML5 and friends - standards>next Manchester 24.11.2010

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

Page 33: HTML5 and friends - standards>next Manchester 24.11.2010

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

header, footer, … { display: block; }

Page 34: HTML5 and friends - standards>next Manchester 24.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: HTML5 and friends - standards>next Manchester 24.11.2010

1. syntax/semantics2. forms3. multimedia

Page 36: HTML5 and friends - standards>next Manchester 24.11.2010

improved form elementsbecause the web is more interactive

Page 37: HTML5 and friends - standards>next Manchester 24.11.2010

jqueryui.com

Page 38: HTML5 and friends - standards>next Manchester 24.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: HTML5 and friends - standards>next Manchester 24.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: HTML5 and friends - standards>next Manchester 24.11.2010
Page 41: HTML5 and friends - standards>next Manchester 24.11.2010
Page 42: HTML5 and friends - standards>next Manchester 24.11.2010

1. syntax/semantics2. forms3. multimedia

Page 43: HTML5 and friends - standards>next Manchester 24.11.2010

making your site Fonzie compliant...

Page 44: HTML5 and friends - standards>next Manchester 24.11.2010

<video>

Page 45: HTML5 and friends - standards>next Manchester 24.11.2010

Adobe Flash currently most commonvideo delivery mechanism

Page 46: HTML5 and friends - standards>next Manchester 24.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 47: HTML5 and friends - standards>next Manchester 24.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 48: HTML5 and friends - standards>next Manchester 24.11.2010

video as native object

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

Page 49: HTML5 and friends - standards>next Manchester 24.11.2010

powerful (simple) API

Page 50: HTML5 and friends - standards>next Manchester 24.11.2010

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

Page 51: HTML5 and friends - standards>next Manchester 24.11.2010

controlling <video> with JavaScript

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

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

Page 52: HTML5 and friends - standards>next Manchester 24.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 53: HTML5 and friends - standards>next Manchester 24.11.2010

video formatsthe big debate?

Page 54: HTML5 and friends - standards>next Manchester 24.11.2010

HTML5 does not specify video container/codec

(same as with images in HTML 4?)

Page 55: HTML5 and friends - standards>next Manchester 24.11.2010

MP4 / H.264

ubiquitous, patent encumbered, licensing/royalties

Page 56: HTML5 and friends - standards>next Manchester 24.11.2010

Ogg Theora

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

Page 57: HTML5 and friends - standards>next Manchester 24.11.2010

WebM / VP8

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

Page 58: HTML5 and friends - standards>next Manchester 24.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 59: HTML5 and friends - standards>next Manchester 24.11.2010

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

Page 60: HTML5 and friends - standards>next Manchester 24.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 61: HTML5 and friends - standards>next Manchester 24.11.2010

<audio>

Page 62: HTML5 and friends - standards>next Manchester 24.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 63: HTML5 and friends - standards>next Manchester 24.11.2010

<canvas>

Page 64: HTML5 and friends - standards>next Manchester 24.11.2010

canvas = “scriptable images”

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

Page 65: HTML5 and friends - standards>next Manchester 24.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 66: HTML5 and friends - standards>next Manchester 24.11.2010
Page 67: HTML5 and friends - standards>next Manchester 24.11.2010
Page 68: HTML5 and friends - standards>next Manchester 24.11.2010

canvas accessibility?

Page 69: HTML5 and friends - standards>next Manchester 24.11.2010

video, audio and canvason all devices without plugins

(Java / Flash / Silverlight not ubiquitous)

Page 70: HTML5 and friends - standards>next Manchester 24.11.2010
Page 71: HTML5 and friends - standards>next Manchester 24.11.2010
Page 72: HTML5 and friends - standards>next Manchester 24.11.2010

HTML5 (and friends) haslots more APIs for developers

(for powerful client-side apps)

Page 73: HTML5 and friends - standards>next Manchester 24.11.2010

isgeolocationpartofhtml5.com

Page 74: HTML5 and friends - standards>next Manchester 24.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 75: HTML5 and friends - standards>next Manchester 24.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 76: HTML5 and friends - standards>next Manchester 24.11.2010

is it all safe to use, right now?

Page 77: HTML5 and friends - standards>next Manchester 24.11.2010

www.youtube.com/html5

Page 78: HTML5 and friends - standards>next Manchester 24.11.2010

don't do browser sniffing

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

Page 79: HTML5 and friends - standards>next Manchester 24.11.2010
Page 80: HTML5 and friends - standards>next Manchester 24.11.2010

feature-detectionprogressive enhancement, graceful degradation

http://diveintohtml5.org/everything.html

Page 81: HTML5 and friends - standards>next Manchester 24.11.2010

feature-detection for audio/video

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

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

Page 82: HTML5 and friends - standards>next Manchester 24.11.2010

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

Page 83: HTML5 and friends - standards>next Manchester 24.11.2010

sublimevideo.net

Page 84: HTML5 and friends - standards>next Manchester 24.11.2010

videojs.com

Page 85: HTML5 and friends - standards>next Manchester 24.11.2010

www.happyworm.com/jquery/jplayer

Page 86: HTML5 and friends - standards>next Manchester 24.11.2010

HTML5 as Flashkiller?

Page 87: HTML5 and friends - standards>next Manchester 24.11.2010

not a question ofHTML5 replacing Flash...

Page 88: HTML5 and friends - standards>next Manchester 24.11.2010

giving developers a choice!

Page 89: HTML5 and friends - standards>next Manchester 24.11.2010

...should I use HTML5 today?

Page 90: HTML5 and friends - standards>next Manchester 24.11.2010

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

William Gibson

Page 91: HTML5 and friends - standards>next Manchester 24.11.2010

www.opera.com/developerpeople.opera.com/patrickl/presentations/standards-next_24.11.2010/standards-next_24.11.2010.pdf

[email protected]