HTML5 i mikroformaty dla pragmatyków

123
Wojtek Zajac Kraków, 29.04.2010 r. <HTML 5> i mikroformaty dla pragmatyków

description

http://artbuzz.edu.pl/training/artbuzz-1/ Kraków AGH University of Science and Technology 29.04.2010 r.

Transcript of HTML5 i mikroformaty dla pragmatyków

Page 1: HTML5 i mikroformaty dla pragmatyków

Wojtek Zajac Kraków, 29.04.2010 r.

<HTML 5>i mikroformatydla pragmatyków

Page 2: HTML5 i mikroformaty dla pragmatyków

Cześć!

• od 2006 r. związany z XHTMLized.com(wcześniej: freelance)

• specjalność:• audyty dostępności (web accessibility)• optymalizacja wydajności front-end

• klienci:• Twitter• FOX• Threadless• O’Reilly

• obecnie… User Experience Designer, PlatformaKiwi.pl

Nazywam się Wojtek Zając. Kilka faktów:

wojtek zajac • @theanxy • wojtekzajac.com

Page 4: HTML5 i mikroformaty dla pragmatyków

· Agenda ·

• Wstęp

• Nowe elementy i atrybuty

• Web Forms 2.0

• Dostępność (WAI-ARIA)

• Grafika (SVG/Canvas)

• Multimedia (Video/Audio)

• Geolokalizacja

• Web Workers } Microformats

wojtek zajac • @theanxy • wojtekzajac.com

• XFN

• hCard

• Przypadki użycia:

• adr

• hCard

• hCalendar

Page 9: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Rzeczywistośćvs.

Świat Idealny

http://www.flickr.com/photos/sprengben/4315145017/

Page 10: HTML5 i mikroformaty dla pragmatyków

Tim Berners-LeeDIRECTOR, WORLD WIDE WEB CONSORTIUM

“The attempt to get the world to switch to XML, including quotes around attribute values and slashes

in empty tags and namespaces all at once didn’t work.”

wojtek zajac • @theanxy • wojtekzajac.com

Page 11: HTML5 i mikroformaty dla pragmatyków

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

wojtek zajac • @theanxy • wojtekzajac.com

· Nowe !DOCTYPE ·

Page 12: HTML5 i mikroformaty dla pragmatyków

<!DOCTYPE html><html lang=“pl”> <head> <meta charset="utf-8">

Opcjonalne dla XHTML 5

wojtek zajac • @theanxy • wojtekzajac.com

· Nowe !DOCTYPE ·

Page 13: HTML5 i mikroformaty dla pragmatyków
Page 14: HTML5 i mikroformaty dla pragmatyków
Page 15: HTML5 i mikroformaty dla pragmatyków

DIV ID=“header”

DIV ID=“nav”

DIV CLASS=“article”

DIV ID=“sidebar”

DIV ID=“footer”

DIV CLASS=“section”

wojtek zajac • @theanxy • wojtekzajac.com

Page 16: HTML5 i mikroformaty dla pragmatyków

<header>

<nav>

<article>

<aside>

<footer>

<section>

wojtek zajac • @theanxy • wojtekzajac.com

Page 17: HTML5 i mikroformaty dla pragmatyków

<header>

<nav>

<article>

<aside>

<footer>

<section>

wojtek zajac • @theanxy • wojtekzajac.com

Page 18: HTML5 i mikroformaty dla pragmatyków

<header>

<nav>

<article>

<aside>

<footer>

<section>

wojtek zajac • @theanxy • wojtekzajac.com

• header• nav• section• article• aside• footer

Nowe strukturalne elementy

Page 19: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

• hgroup• details• summary• mark• time• output• meter• progress

Ten album uzyskał ocenę<meter value="5.2" min="0.0" max="10.0" low="5.0" high="7.5" optimum="9.0"> 7.4</meter> w naszym teście.

Jesteś <progress value="48" max="91"> w połowie czytania tego artykułu.

Więcej nowych elementów

Page 20: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

• blokowe linki!

• <b>, <i>, <small> zmieniły znaczenie

• <address> ma nową definicję

• atrybuty <ol>: start, reversed

• contenteditable

• data-*

Zmiany

<a href=”#” class=”story”> <img src=”img.png” /> <h4>Tytuł</h4> <p>Opis tekstowy</p></a>

Page 21: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Web Forms 2.0poprawiona wersja formularzy z HTML 4.01

Page 22: HTML5 i mikroformaty dla pragmatyków

<form> <input name="q" placeholder="Search Bookmarks and History"> <input type="submit" value="Search"></form>

Placeholder text

wojtek zajac • @theanxy • wojtekzajac.com

Page 23: HTML5 i mikroformaty dla pragmatyków

Adres e-mail

<form> <input type="email"> <input type="submit" value="Go"></form>

wojtek zajac • @theanxy • wojtekzajac.com

Page 24: HTML5 i mikroformaty dla pragmatyków

<form> <input type="number"> <input type="submit" value="Go"></form>

Pole liczbowe

wojtek zajac • @theanxy • wojtekzajac.com

Page 25: HTML5 i mikroformaty dla pragmatyków

<form> <input type="url"> <input type="submit" value="Go"></form>

Adres WWW

wojtek zajac • @theanxy • wojtekzajac.com

Page 26: HTML5 i mikroformaty dla pragmatyków

<form> <input type="range" min=“1” max=“11” value=“9”> <input type="submit" value="Go"></form>

Zakres

wojtek zajac • @theanxy • wojtekzajac.com

Page 27: HTML5 i mikroformaty dla pragmatyków

Czas

wojtek zajac • @theanxy • wojtekzajac.com

<input type=”date”><input type=”month”><input type=”week”><input type=”time”><input type=”datetime”>

Tylko:

Page 28: HTML5 i mikroformaty dla pragmatyków

Wyszukiwanie

wojtek zajac • @theanxy • wojtekzajac.com

<input type="search" role=”search”>

Wspólgra z WAI-ARIA!

Page 29: HTML5 i mikroformaty dla pragmatyków

WAI-ARIA

Page 30: HTML5 i mikroformaty dla pragmatyków
Page 33: HTML5 i mikroformaty dla pragmatyków

Landmark Element HTML 5role=”application” brak

role=”banner” brak

role=”complementary” <aside>

role=”contentinfo” <footer>

role=”main” brak

role=”navigation” <nav>

role=”search” brak

WAI-ARIA Landmark Roles

~ The Paciello Group

wojtek zajac • @theanxy • wojtekzajac.com

Page 35: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

role=”banner”

role=”main”

role=”contentinfo”

role=”search”

role=”complementary”

role=”main”

Page 36: HTML5 i mikroformaty dla pragmatyków

SVG/Canvas

Page 37: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

Page 38: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

<rect

Page 39: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

<rect

x=”0” y=”0”

Page 40: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

<rect

x=”0” y=”0”

width=”100” height=”100”

Page 41: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

<rect

x=”0” y=”0”

width=”100” height=”100”

fill=”blue” stroke=”red”

Page 42: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

<rect

x=”0” y=”0”

width=”100” height=”100”

fill=”blue” stroke=”red”

stroke-width=”5px”

Page 43: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

<rect

x=”0” y=”0”

width=”100” height=”100”

fill=”blue” stroke=”red”

stroke-width=”5px”

rx=”8” ry=”8”

Page 44: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

<rect

x=”0” y=”0”

width=”100” height=”100”

fill=”blue” stroke=”red”

stroke-width=”5px”

rx=”8” ry=”8”

id=”myRect” class=”chart” />

Page 45: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

<rect

x=”0” y=”0”

width=”100” height=”100”

fill=”blue” stroke=”red”

stroke-width=”5px”

rx=”8” ry=”8”

id=”myRect” class=”chart” />

Page 46: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

<!DOCTYPE html>

<html>

<body>

<svg width=”200” height=”200”>

<rect

x=”0” y=”0”

width=”100” height=”100”

fill=”blue” stroke=”red”

stroke-width=”5px”

rx=”8” ry=”8”

id=”myRect” class=”chart” />

</svg>

</body>

</html>

Page 47: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

Page 48: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

var rect = $(‘#myRect’);

Page 49: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

var rect = $(‘#myRect’);

rect.style.fill = ‘green’;

Page 50: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

var rect = $(‘#myRect’);

rect.style.fill = ‘green’;

rect.onclick(funtion(){

Page 51: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

var rect = $(‘#myRect’);

rect.style.fill = ‘green’;

rect.onclick(funtion(){

alert(‘Witaj świecie!’);

Page 52: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Scalable Vector Graphics (SVG)

var rect = $(‘#myRect’);

rect.style.fill = ‘green’;

rect.onclick(funtion(){

alert(‘Witaj świecie!’);

});

Page 53: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

Page 54: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

<canvas id=”canvas” width=”150” height=”150”></canvas>

Page 55: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

<canvas id=”canvas” width=”150” height=”150”></canvas>

var canvas = document.getElementById(“canvas”);

Page 56: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

<canvas id=”canvas” width=”150” height=”150”></canvas>

var canvas = document.getElementById(“canvas”);

if (canvas.getContext) {

Page 57: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

<canvas id=”canvas” width=”150” height=”150”></canvas>

var canvas = document.getElementById(“canvas”);

if (canvas.getContext) {

var ctx = canvas.getContext(“2d”);

Page 58: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

<canvas id=”canvas” width=”150” height=”150”></canvas>

var canvas = document.getElementById(“canvas”);

if (canvas.getContext) {

var ctx = canvas.getContext(“2d”);

ctx.fillStyle = “rgb(200,0,0)”;

Page 59: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

<canvas id=”canvas” width=”150” height=”150”></canvas>

var canvas = document.getElementById(“canvas”);

if (canvas.getContext) {

var ctx = canvas.getContext(“2d”);

ctx.fillStyle = “rgb(200,0,0)”;

ctx.fillRect (10, 10, 55, 50);

Page 60: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

<canvas id=”canvas” width=”150” height=”150”></canvas>

var canvas = document.getElementById(“canvas”);

if (canvas.getContext) {

var ctx = canvas.getContext(“2d”);

ctx.fillStyle = “rgb(200,0,0)”;

ctx.fillRect (10, 10, 55, 50);

ctx.fillStyle = “rgba(0, 0 200, 0.5)”;

Page 61: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

<canvas id=”canvas” width=”150” height=”150”></canvas>

var canvas = document.getElementById(“canvas”);

if (canvas.getContext) {

var ctx = canvas.getContext(“2d”);

ctx.fillStyle = “rgb(200,0,0)”;

ctx.fillRect (10, 10, 55, 50);

ctx.fillStyle = “rgba(0, 0 200, 0.5)”;

ctx.fillRect (30, 30, 55, 50);

Page 62: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Canvas API

<canvas id=”canvas” width=”150” height=”150”></canvas>

var canvas = document.getElementById(“canvas”);

if (canvas.getContext) {

var ctx = canvas.getContext(“2d”);

ctx.fillStyle = “rgb(200,0,0)”;

ctx.fillRect (10, 10, 55, 50);

ctx.fillStyle = “rgba(0, 0 200, 0.5)”;

ctx.fillRect (30, 30, 55, 50);

}

Page 66: HTML5 i mikroformaty dla pragmatyków

Video/Audiohttp://www.flickr.com/photos/sugu/145087521/

Page 67: HTML5 i mikroformaty dla pragmatyków

<object width="640" height="385">

<param name="movie" value="http://www.youtube.com/v/km2UpEcSUGY&hl=en_US&fs=1&"></param>

<param name="allowFullScreen" value="true"></param>

<param name="allowscriptaccess" value="always"></param>

<embed src="http://www.youtube.com/v/km2UpEcSUGY&hl=en_US&fs=1&"

type="application/x-shockwave-flash" width="640" height="385">

</embed>

</object>

wojtek zajac • @theanxy • wojtekzajac.com

Składnia

Page 68: HTML5 i mikroformaty dla pragmatyków
Page 69: HTML5 i mikroformaty dla pragmatyków

<video src=video.mp4 width=300 height=400 poster=okladka.jpg> Treść alternatywna tutaj</video>

wojtek zajac • @theanxy • wojtekzajac.com

Składnia

controls

autobuffer

loop

autoplay

Opera, Chrome, Firefox: Ogg Theora

Safari, Chrome: H.264

<audio src=audio.mp3> Treść alternatywna tutaj</audio>

Page 71: HTML5 i mikroformaty dla pragmatyków

Wydajność

wojtek zajac • @theanxy • wojtekzajac.com

~ Thomas Fuchs, http://ajaxian.com/archives/i-cant-believe-its-not-flash

Page 72: HTML5 i mikroformaty dla pragmatyków

0%10%20%30%40%50%60%

70%

80%

90%

100%

Zużycie procesora

FlashHTML 5

Wydajność

wojtek zajac • @theanxy • wojtekzajac.com

~ Thomas Fuchs, http://ajaxian.com/archives/i-cant-believe-its-not-flash

Page 73: HTML5 i mikroformaty dla pragmatyków

Geolokalizacja

Page 78: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

❶ ❷Calkiem dokladnie :)

Page 79: HTML5 i mikroformaty dla pragmatyków

function get_location() { if (Modernizr.geolocation) { navigator.geolocation.getCurrentPosition(show_map); } else { // brak wsparcia }}

wojtek zajac • @theanxy • wojtekzajac.com

Pobieranieobecnej lokacji

Page 81: HTML5 i mikroformaty dla pragmatyków

WebWorkers

Page 82: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

• wątkowanie JS

• interfejs nie jest blokowany

• http://html5demos.com/worker

Page 83: HTML5 i mikroformaty dla pragmatyków

Czy powinienem używaćHTML 5 już dzisiaj?

• HTML 5 shiv

http://code.google.com/p/html5shiv/

• Modernizrhttp://modernizr.com/

<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

wojtek zajac • @theanxy • wojtekzajac.com

Page 84: HTML5 i mikroformaty dla pragmatyków

Czy powinienem używaćHTML 5 już dzisiaj?

• HTML 5 shiv

http://code.google.com/p/html5shiv/

• Modernizrhttp://modernizr.com/

<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

wojtek zajac • @theanxy • wojtekzajac.com

Page 85: HTML5 i mikroformaty dla pragmatyków

Przydatne Zasoby

http://www.alistapart.com/articles/previewo2tml5

http://dev.w3.org/html5/spec/Overview.html

http://www.w3.org/TR/html5-diff/

http://diveintohtml5.org

http://html5doctor.com

http://html5readiness.com/

A List Apart

W3C spec

HTML 5 differences

Dive into HTML 5

HTML 5 Doctor

HTML 5 Readiness

wojtek zajac • @theanxy • wojtekzajac.com

Page 86: HTML5 i mikroformaty dla pragmatyków

Microformats

Page 88: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Microformatshttp://microformats.org/about

“Designed for humans first and machines second, microformats

are a set of simple, open data formats built upon existing and

widely adopted standards.”

Page 91: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

<a href=“http://facebook.com/jkowalski”>Mój profil</a>

Page 92: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

<a href=“http://facebook.com/jkowalski”>Mój profil</a>

Page 93: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

<a href=“http://facebook.com/jkowalski” rel=“me”>Mój profil</a>

Indentity consolidation

Page 94: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

<a href=“http://facebook.com/jkowalski” rel=“me”>Mój profil</a>

Indentity consolidation

Page 95: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

<a href=“http://franek.com/” rel=“friend”>Strona Franka</a>

XFN:XHTML friends network

Page 96: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

<a href=“http://franek.com/” rel=“friend”>Strona Franka</a>

Relacja?

XFN:XHTML friends network

Page 97: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Page 98: HTML5 i mikroformaty dla pragmatyków
Page 99: HTML5 i mikroformaty dla pragmatyków
Page 100: HTML5 i mikroformaty dla pragmatyków
Page 101: HTML5 i mikroformaty dla pragmatyków

· hCard ·

wojtek zajac • @theanxy • wojtekzajac.com

http://wojtekzajac.com/"> Wojtek Zajac

Page 102: HTML5 i mikroformaty dla pragmatyków

· hCard ·

wojtek zajac • @theanxy • wojtekzajac.com

<div > <a href="http://wojtekzajac.com/"> <span >Wojtek</span> <span >Zajac</span> </a></div>

Page 103: HTML5 i mikroformaty dla pragmatyków

· hCard ·

wojtek zajac • @theanxy • wojtekzajac.com

<div class=“vcard”> <a class=“fn n url” href="http://wojtekzajac.com/"> <span class=“given-name”>Wojtek</span> <span class=“family-name”>Zajac</span> </a></div>

Page 104: HTML5 i mikroformaty dla pragmatyków

❶Przypadek użycia:

Wykorzystanie adresuna stronie WWW

wojtek zajac • @theanxy • wojtekzajac.com

Page 105: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.comwojtek zajac • @theanxy • wojtekzajac.com

Page 106: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.comwojtek zajac • @theanxy • wojtekzajac.com

Page 107: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.comwojtek zajac • @theanxy • wojtekzajac.com

Page 108: HTML5 i mikroformaty dla pragmatyków

❷wojtek zajac • @theanxy • wojtekzajac.com

Przypadek użycia:

Zapis wizytówekdo książki adresowej

Page 113: HTML5 i mikroformaty dla pragmatyków

❸wojtek zajac • @theanxy • wojtekzajac.com

Przypadek użycia:

Dodanie wydarzeniado kalendarza

Page 121: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Specyfikacje

informacje o wydarzeniachinformacje o kontaktachoznaczanie licencjiograniczanie podążania za linkamitagi

hCalendarhCard

rel-licenserel-nofollow

rel-tag

SzkicehAtom: treść aktualizowanahAudio: pliki dźwiękowehListing: ogłoszeniahRecipe: przepisyhResume: publikowane CVhReview: recenzje

rel-enclosurerel-homerel-payment

Page 122: HTML5 i mikroformaty dla pragmatyków

wojtek zajac • @theanxy • wojtekzajac.com

Przydatne linki

http://microformats.org/wiki/Main_Page

http://microformats.org/code/hcard/creator

http://microformats.org/code/hcalendar/creator

http://microformatique.com/optimus/

https://addons.mozilla.org/en-US/firefox/addon/4106

http://codebits.eu/intra/s/session/79

Wiki microformats.org

Generator hCard

Generator hCalendar

Optimus (transformer)

Operator (plugin do Firefoksa)

Social Graph API

Page 123: HTML5 i mikroformaty dla pragmatyków

Dziękuję za uwagę.

This work is licensed under a Creative

Commons Attribution 3.0 Unported License

http://www.slideshare.net/wojciechzajac

Wojtek Zają[email protected]@theanxy

Pytania?