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

Post on 15-May-2015

3.504 views 0 download

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

Web Evangelist bei Opera

...ist HTML5 heute schon nutzbar?

"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

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

HTML5…ohne Hype?

Geschichte von HTML5

1999 HTML 4.012000 XHTML 1.0

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

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

WHATWGWeb Hypertext Application Technology Working Group

2007 W3C HTML5 WG

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

HTML5 ersetzt nicht HTML 4.01

HTML5 hat mehr Bling!

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/

1. Syntax/Semantik2. Formulare3. Multimedia

1. Syntax/Semantik2. Formulare3. Multimedia

HTML5 standardisiertderzeitiges Browserverhalten

(e.g. “relaxed” coding rules)

das schmutzige Geheimniss der

Doctype

HTML5<!DOCTYPE html>

<meta charset=”utf-8” />

<meta charset=utf-8>

<MeTa CHarSet=utf-8>

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

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

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

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

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

neue Elemente für bessere Semantik

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

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

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

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

header, footer, … { display: block; }

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

1. Syntax/Semantik2. Formulare3. Multimedia

bessere Formelementeweil das Web interaktiver ist

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>

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

1. Syntax/Semantik2. Formulare3. Multimedia

making your site Fonzie compliant...

<video>

Adobe Flash derzeit meistbenutztes Art,Videos zu übermitteln

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

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

Video als natives object

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

mächtige (einfache) API

icant.co.uk/easy-youtube

<video> per JavaScript ansteuern

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

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

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

Video Formatedie grosse Debatte

MP4 / H.264

weitverbreitet, Lizenzen/Royalties

Ogg Theora

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

WebM

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

Support von Software- und Hardware-Herstellern

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>

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

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

<audio>

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)

<canvas>

canvas = “scriptable images”

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

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(…);

canvas Accessibility?

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

(nicht jeder hat Java / Flash / Silverlight)

HTML5 (und Freunde) hatviele APIs für Developer

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

isgeolocationpartofhtml5.com

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

}

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

is it all safe to use, right now?

vorsicht: browser sniffing

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

feature-detectionprogressive enhancement, graceful degradation – or use shims

http://diveintohtml5.org/everything.html

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

sublimevideo.net

videojs.com

www.happyworm.com/jquery/jplayer

HTML5 als Flashkiller?

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

giving developers a choice!

...ist HTML5 heute schon nutzbar?

Die Zukunft hat schon Heute begonnen!

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

patrick.lauke@opera.com