html5 and friends - institutional web management workshop 2010
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