Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

83
Schöne neue Welt von HTML5 Patrick H. Lauke / WebTech 2010 / Mainz / 12 Oktober 2010 NEUE TECHNOLOGIEN IM KONTEXT

Transcript of Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Page 1: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Schöne neue Welt von HTML5

Patrick H. Lauke / WebTech 2010 / Mainz / 12 Oktober 2010

NEUE TECHNOLOGIEN IM KONTEXT

Page 2: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Web Evangelist bei Opera

Page 3: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

...ist HTML5 heute schon nutzbar?

Page 4: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.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 5: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

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

Page 6: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

HTML5…ohne Hype?

Page 7: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Geschichte von HTML5

1999 HTML 4.012000 XHTML 1.0

Page 8: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

2004 W3C Fokus auf XHTML 2.0…die Zukunft ist XML!

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

Page 9: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

WHATWGWeb Hypertext Application Technology Working Group

Page 10: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

2007 W3C HTML5 WG

Page 11: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.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 12: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

HTML5 ersetzt nicht HTML 4.01

Page 13: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

HTML5 hat mehr Bling!

Page 14: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

HTML5 Spezifikation fürBrowserhersteller

(wie interpretieren Browser Markup/Code – kein “reverse engineering”)

für Autoren: HTML5 differences from HTML4http://www.w3.org/TR/html5-diff/

Page 15: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

1. Syntax/Semantik2. Formulare3. Multimedia

Page 16: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

1. Syntax/Semantik2. Formulare3. Multimedia

Page 17: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

HTML5 standardisiertderzeitiges Browserverhalten

(e.g. “relaxed” coding rules)

Page 18: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

das schmutzige Geheimniss der

Doctype

Page 19: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

HTML5<!DOCTYPE html>

Page 20: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

<meta charset=”utf-8” />

<meta charset=utf-8>

<MeTa CHarSet=utf-8>

Page 21: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

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

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

Page 22: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

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

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

Page 23: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

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

Page 24: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

neue Elemente für bessere Semantik

Page 25: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010
Page 26: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.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 27: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.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 28: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010
Page 29: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010
Page 30: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

explizit und maschinenlesbar...z.B. Screenreaders?

Page 31: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

neue und alte Browser “unterstützen” die Elemente(obwohl einige etwas Hilfe brauchen)

header, footer, … { display: block; }

Page 32: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Internet Explorer <9 braucht Stützräderdocument.createElement('header');document.createElement('footer');…

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

Page 33: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

1. Syntax/Semantik2. Formulare3. Multimedia

Page 34: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

bessere Formelementeweil das Web interaktiver ist

Page 35: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

rich form elements – ganz ohne JavaScript

<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 36: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Typen und Attribute miteingebauter Validierung<input … required><input type=”tel”><input type=”email”><input type=”url”><input … pattern="[a-z]{3}[0-9]{3}">

Page 37: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

1. Syntax/Semantik2. Formulare3. Multimedia

Page 38: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

making your site Fonzie compliant...

Page 39: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

<video>

Page 40: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Adobe Flash derzeit meistbenutztes Art,Videos zu übermitteln

Page 41: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.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 42: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.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 43: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Video als natives object

● verhält sich wie jedes andere HTML Element● keyboard accessibility von Haus aus

Page 44: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

mächtige (einfache) API

Page 45: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

icant.co.uk/easy-youtube

Page 46: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

<video> per JavaScript ansteuern

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

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

Page 47: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

events vom <video> abfangen

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 48: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Video Formatedie grosse Debatte

Page 49: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

MP4 / H.264

weitverbreitet, Lizenzen/Royalties

Page 50: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Ogg Theora

“free and open”, keine Lizengebührenwenige Tools, nicht für's Web optimiert

Page 51: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

WebM

von Google, aber “open and royalty-free”Web-optimiert

Support von Software- und Hardware-Herstellern

Page 52: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

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

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

</video>

Page 53: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Flash fallback für ältere browsershttp://camendesign.com/code/video_for_everybody

Page 54: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

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

<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 55: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

<audio>

Page 56: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Audio...genau das gleiche

<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>

Formate: MP3 vs Ogg Vorbis (vs WAV)

Page 57: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

<canvas>

Page 58: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

canvas = “scriptable images”

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

Page 59: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.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 60: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010
Page 61: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010
Page 62: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

canvas Accessibility?

Page 63: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

video, audio und canvas auch auf Devicesohne “Steck-eins” (plugins)

(nicht jeder hat Java / Flash / Silverlight)

Page 64: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010
Page 65: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010
Page 66: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

HTML5 (und Freunde) hatviele APIs für Developer

(für mächtige client-side Apps)

Page 67: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

isgeolocationpartofhtml5.com

Page 68: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.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 69: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

offline detection...

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

und 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

und noch viele mehr...

Page 70: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

is it all safe to use, right now?

Page 71: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

vorsicht: browser sniffing

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

Page 72: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010
Page 73: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

feature-detectionprogressive enhancement, graceful degradation – or use shims

http://diveintohtml5.org/everything.html

Page 74: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

alten Browser patchengithub.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

Page 75: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

sublimevideo.net

Page 76: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

videojs.com

Page 77: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

www.happyworm.com/jquery/jplayer

Page 78: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

HTML5 als Flashkiller?

Page 79: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

nicht die Frage obHTML5 als Ersatz für Flash gut ist...

Page 80: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

giving developers a choice!

Page 81: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

...ist HTML5 heute schon nutzbar?

Page 82: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

Die Zukunft hat schon Heute begonnen!

Page 83: Schöne neue Welt von HTML5 - WebTech 2010 Mainz 12.10.2010

www.opera.com/developerpeople.opera.com/patrickl/presentations/webtech_12.10.2010/webtech_12.10.2010.pdf

[email protected]