html5 and friends - institutional web management workshop 2010

Post on 18-Jan-2015

4.331 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

http://iwmw.ukoln.ac.uk/iwmw2010/

TRANSCRIPT

HTML5 and friends

Patrick H. Lauke / Institutional Web Managers Workshop IWMW2010 / Sheffield / 13 July 2010

CONTEXTUALISING THE NEW TECHNOLOGIES

Web Evangelist at Opera

...should I use HTML5 today?

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

HTML5 … without the hype?

history of HTML5

● 1999 HTML 4.01, 2000 XHTML 1.0● 2003 XForms specification > XML based● Opera proof of concept: Web Forms 1.0

2004 W3C focus on XHTML 2.0 and beyond...

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 does not replace HTML 4.01

HTML5 has more bling!

HTML5 specification aimedat browser developers

(defines how browsers handle markup/code – no reverse engineering)

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

HTML5 standardises current browser and authoring behaviour

(e.g. “relaxed” coding rules)

HTML5<!DOCTYPE html>

HTML5 brings newmarkup elements and JavaScript APIs

new elements for more accurate semantics

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

unambiguous and machine readable...but what about current screenreaders?

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

header, footer, … { display: block; }

Internet Explorer needs extra training wheelsdocument.createElement('header');document.createElement('footer');…http://html5doctor.com/how-to-get-html5-working-in-ie-and-firefox-2

improved formsmaking common UI needs native

rich form elements – without 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>

type and attributes for built-in validation(of course you should still validate on the server)

<input … required><input type=”tel”><input type=”email”><input type=”url”><input … pattern="[a-z]{3}[0-9]{3}">Demos:http://people.opera.com/patrickl/experiments/forms/newtypes.htmlhttp://people.opera.com/patrickl/experiments/forms/date-time.htmlhttp://people.opera.com/patrickl/experiments/forms/validation.html

<video>

Adobe Flash currently most commonvideo delivery mechanism

<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 poster="poster.jpg" width="320" height="240"> <a href="video.webm">Download movie</a></video>

video as native object● “plays nice” with rest of the page● keyboard accessibility built-in● API for controls: v = document.getElementById('myVideo'); v.play(); v.pause(); …Demos:http://people.opera.com/patrickl/experiments/webm/basic-controls/http://people.opera.com/patrickl/experiments/webm/fancy-controls/http://people.opera.com/patrickl/experiments/webm/fancy-swap/

video formatsthe big debate

MP4 / H.264

ubiquitous, patent encumbered, licensing/royalties

Ogg Theora

“free and open”, no licensing/royaltiesnot many tools for it, not web optimised

WebM

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

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

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

</video>

still include fallback for old browsershttp://camendesign.com/code/video_for_everybody

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>

same format debacle: MP3 vs Ogg Vorbis

<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(…);Trivial demo:http://www.splintered.co.uk/experiments/archives/paranoid_0.2/

Demos:http://alteredqualia.com/canvasmol/http://dwpe.googlecode.com/svn/trunk/charting/index.html

canvas accessibility concerns

video, audio and canvas on any devicewithout plugins

(Java / Flash / Silverlight not ubiquitous)

HTML5 (and friends) haslots more APIs for developers

(for powerful 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);

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 many more...(even beyond HTML5)

is it all safe to use, right now?

don't do browser sniffing

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

feature-detectionprogressive enhancement, graceful degradation – or use shims

http://diveintohtml5.org/everything.html

HTML5 as Flashkiller?

not a question of HTML5 replacing Flash...

giving developers a choice!

...should I use HTML5 today?

www.opera.com/developerpeople.opera.com/patrickl/presentations/iwmw2010_13.07.2010/iwmw2010_13.07.2010.pdf

patrick.lauke@opera.com

top related