57
WEBOLDALAK PROGRESSZÍV FEJLESZTÉSE …AZAZ HOGYAN TERVEZZÜNK MULTIPLATFORMOS, ELÉRHETŐ WEBOLDALAKAT? Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.404 Tel: (1) 372-2500/1816 INFO ÉRA, Füzesgyarmat, 2011.11.18.

Weboldalak progresszív fejlesztése

  • Upload
    gyozke

  • View
    497

  • Download
    1

Embed Size (px)

DESCRIPTION

INFOÉRA 2011-en elhangzott előadásom

Citation preview

Page 1: Weboldalak progresszív fejlesztése

WEBOLDALAK PROGRESSZÍV FEJLESZTÉSE

…AZAZ HOGYAN TERVEZZÜNK MULTIPLATFORMOS, ELÉRHETŐ WEBOLDALAKAT?

Horváth GyőzőEgyetemi adjunktus

1117 Budapest,Pázmány Péter sétány 1/C, 2.404Tel: (1) 372-2500/1816

INFO ÉRA, Füzesgyarmat, 2011.11.18.

Page 2: Weboldalak progresszív fejlesztése

2

Tartalom

Web helyzete, fejlődése, kihívásai, problémák

Megoldási javaslatok Weboldalak progresszív fejlesztése a

gyakorlatban Sok-sok példa

Page 3: Weboldalak progresszív fejlesztése

3

Újdonságok, régiségek, problémák, kihívások

A fejlődő web

Page 4: Weboldalak progresszív fejlesztése

4

Web fejlődése

Előnye Új oldalak és alkalmazások jelennek meg Áthatják életünk minden terét Webes szabványok fejlődésével gyorsabb,

hatékonyabb, dinamikusabb oldalak készíthetők Egyre több eszközzel érhetjük el a webet

Hátránya Sok eszköz egyáltalán vagy részben nem

támogatja a legújabb JavaScript és CSS tulajdonságokat

Akadályoztatott emberek nem képesek használni

Page 5: Weboldalak progresszív fejlesztése

5

JavaScript nélkül nem működő oldalak

http://www.sears.com – Add to cart http://www.walmart.com/ip/Buy-2-Get-1-Fre

e-Nintendo-DS-Software-Value-Bundle/19349737 – select gomb, bal menü

http://www.ford.com/ – Használhatatlan menü

http://www.nike.com/nikeos/p/nike/language_select/ – üres oldal

http://www.vatera.hu – Kosárba http://babamamabazar.hu/ – Kezdőoldal

Page 6: Weboldalak progresszív fejlesztése

6

Probléma?

A JavaScript hiánya tényleg akkora probléma? Régen más volt a válasz Ma megint más

Page 7: Weboldalak progresszív fejlesztése

7

Webes felhasználók összetétele Számban, területileg, életkorban,

képzettség és eszközök tekintetében is jelentős eltolódás történt az elmúlt húsz évben az internethasználatban

http://internetworldstats.com/stats.htm

Page 8: Weboldalak progresszív fejlesztése

8

Használati statisztika

WORLD INTERNET USAGE AND POPULATION STATISTICSMarch 31, 2011

World Regions Population( 2011 Est.)

Internet Users

Dec. 31, 2000

Internet UsersLatest Data

Penetration

(% Population)

Growth2000-2011

Users %of

Table

Africa 1,037,524,058 4,514,400 118,609,620 11.4 % 2,527.4

% 5.7 %

Asia 3,879,740,877

114,304,000 922,329,554 23.8 % 706.9 % 44.0

%

Europe 816,426,346 105,096,093 476,213,935 58.3 % 353.1 % 22.7

%

Middle East 216,258,843 3,284,800 68,553,666 31.7 % 1,987.0 % 3.3 %

North America 347,394,870 108,096,800 272,066,000 78.3 % 151.7 % 13.0

%

Latin America / Carib.

597,283,165 18,068,919 215,939,400 36.2 % 1,037.4

%10.3

%

Oceania / Australia

35,426,995 7,620,480 21,293,830 60.1 % 179.4 % 1.0 %

WORLD TOTAL 6,930,055,154

360,985,492

2,095,006,005 30.2 % 480.4 % 100.0

%

Page 9: Weboldalak progresszív fejlesztése

9

Internetes felhasználók földrészenként

Page 10: Weboldalak progresszív fejlesztése

10

Penetráció földrészenként

Page 11: Weboldalak progresszív fejlesztése

11

Felhasználói elvárások növekedése Csak online elérhető szolgáltatások,

gazdag felhasználói élményt nyújtó felületekkel (Amazon)

Felhasználók generálta tartalmak (blog, stb.)

Valós idejű web (Google Docs, Twitter, Facebook)

Asztali alkalmazáshoz hasonlító élmény (vizualizáció, drag and drop)

Sokféle eszköz (asztali, mobil, tablet, stb.)

Page 12: Weboldalak progresszív fejlesztése

12

Elérhetőség iránti igény növekedése

Idősebb felhasználók Látás, hallás, mozgássérült emberek számára a

hagyományos oldalak elérhetetlenek Nagyobb kontraszt, betűméret, képernyő-

olvasó, billentyűhasználat Törvényi előírások bizonyos országokban Szabványok

Web Accessibility Initiative (WAI) Web Content Accessibility Guidelines (WCAG) WAI Accessible Rich Internet Applications (WAI

ARIA)

Page 13: Weboldalak progresszív fejlesztése

13

Mobilweb terjedése

Mobilkészülékek megjelenése telefonok, okostelefonok tabletek, netbook videójáték-rendszerek e-book olvasók televíziók, rádiók, hűtők

Page 14: Weboldalak progresszív fejlesztése

14

Mobilweb

http://mobithinking.com/mobile-marketing-tools/latest-mobile-stats Világszerte a mobil előfizetők száma meghaladta az 5,3

milliárdot, a leggyorsabban Kína és India gyarapodott. 4:1 arányban adnak el butafonokat az okostelefonokkal

szemben. 2009-ben félmilliárd ember használta a mobil internetet,

és ez a szám öt éven belül megduplázódhat. Sok mobilhálót használó ember csak a mobileszközét

használja, azaz nincs vagy ritkán használ laptopot, asztali gépet a világháló elérésére. Egyiptomban és Indiában a világhálót használó emberek 59%-a csak a mobilkészülékén kapcsolódik a webre, de még az USÁban is 25%-ra tehető az ilyen emberek aránya.

A leggyakoribb mobilalkalmazások a játékok, keresés, hírek, térképek, közösségi hálózatok és időjárás.

Page 15: Weboldalak progresszív fejlesztése

15

Mobil eszközök

Page 16: Weboldalak progresszív fejlesztése

16

Asztali vs mobil

Page 17: Weboldalak progresszív fejlesztése

17

Mobil operációs rendszerek

Page 18: Weboldalak progresszív fejlesztése

18

Mobilböngészők

Page 19: Weboldalak progresszív fejlesztése

19

Eszközök és böngészők

Ezen eszközök mindegyikének más böngészője, pluginja, betűkészlete, képernyőmérete, felhasználói felülete van

Lassan öregednek ki Alternatív

operációs rendszerek (Unix-alapúak) böngészők (Konqueror, Lynx, stb.)

Page 20: Weboldalak progresszív fejlesztése

20

Web 2.0-es fejlesztés csapdái Támogatott böngészők listája

Mi van azokkal, akik nem ilyet használnak? A támogatott böngészők egyformán

képesek kezelni a JavaScriptet, CSS-t, sütiket, Flash-t, stb. Mi van, ha támogatja, de a felhasználó

kikapcsolja? JavaScript feltétlenül szükséges

Legalább 5%-ban nincs JavaScript

Page 21: Weboldalak progresszív fejlesztése

21

Web 2.0-es fejlesztés csapdái CSS feltétlenül szükséges

régi eszközök rosszul jelenítik meg JavaScripttel együtt jelenik meg

Pluginek használata kézi telepítés, nem támogatott platformok főleg mobileszközök esetén probléma

(iPhone és Flash) Kezelőfelületek különbözősége

érintőképernyőn nem valósítható meg drag and drop, billentyű lenyomása (Ctrl), stb.

Page 22: Weboldalak progresszív fejlesztése

22

Könnyed lefokozás, progresszív fejlesztés, diszkrét JavaScript

Megoldási javaslatok

Page 23: Weboldalak progresszív fejlesztése

23

Könnyed lefokozás

Graceful degradation (GD) Célja: felhasználó funkcionálisan

használhassa a felületet Megközelítés: hiba tolerálása Ha egy komplex rendszer egy vagy több

komponensébe hiba csúszik, akkor egy alternatív útvonalon biztosítja a működést

Ld. noscript tag, alt attribútum, táblázat mint layout

Page 24: Weboldalak progresszív fejlesztése

24

Progresszív fejlesztés

Progressive enhancement (PE) Cél ugyanaz, de a megközelítés más Különböző felhasználók és eszközök támogatása Egy közös alap létrehozása a cél, amit minden

eszköz megért, erre jön rá a CSS és a JavaScript Az alapelv: tartalom, stílus és viselkedés

szétválasztása Lépések

tartalom (szemantikus HTML) megjelenés, stílus (CSS) viselkedés (JavaScript)

Page 25: Weboldalak progresszív fejlesztése

25

Progresszív fejlesztés

Page 26: Weboldalak progresszív fejlesztése

26

GD vs PE

Kiindulás: teljes funkcionalitású verzió

Ha valami nem elérhető, akkor azt kihagyva érhető el a funkció

Fentről lefele építkezik

Kiindulás: alap funkció

Ha valami elérhető, akkor azt elérhetővé teszi

Lentről felfele építkezik

Könnyed lefokozás Progresszív fejlesztés

Page 27: Weboldalak progresszív fejlesztése

27

PE előnyei

egységes elérése az oldalnak lentről felfelé építkezik tisztább,

modulárisabb kód jövőben is kompatibilis marad az oldal háttérrendszerekkel egyszerűbb

interfész közös HTML az alap és a gazdag oldalon

Page 28: Weboldalak progresszív fejlesztése

28

Diszkrét JavaScript

Szkriptek elszeparálása a tartalomtól és CSS-től JavaScript külön fájlban E nélkül is működnie kell a weboldalnak Karbantarthatóságot növeli

Kód könnyen beágyazható legyen Bevált gyakorlatok használata HTML és CSS párosával oldjuk meg a problémát

kompatibilitás és sebesség növekszik erre jöjjön rá a JavaScript

browser detection helyett feature detection

Page 30: Weboldalak progresszív fejlesztése

30

GD vs PE

http://dev.opera.com/articles/view/graceful-degradation-progressive-enhance/

Kiindulási funkció: oldal nyomtatása

<p id="printthis"> <a href="javascript:window.print()">Print this page</a></p>

Page 31: Weboldalak progresszív fejlesztése

31

GD vs PE

Könnyed lefokozás Mi az a JavaScript? Hogyan kell bekapcsolni? Van jogom bekapcsolni?

<p id="printthis"> <a href="javascript:window.print()">Print this page</a></p><noscript> <p class="scriptwarning"> Printing the page requires JavaScript to be enabled. Please turn it on in your browser. </p></noscript>

Page 32: Weboldalak progresszív fejlesztése

32

GD vs PE

Progresszív fejlesztés Kell egyáltalán a nyomtatás funkció?<p id="printthis">Thank you for your order. Please print this page for your records.</p>

(function(){ if(document.getElementById){ var pt = document.getElementById('printthis'); if(pt && typeof window.print === 'function'){ var but = document.createElement('input'); but.setAttribute('type','button'); but.setAttribute('value','Print this now'); but.onclick = function(){ window.print(); }; pt.appendChild(but); } }})();

Page 33: Weboldalak progresszív fejlesztése

33 PE a gyakorlatban

Page 34: Weboldalak progresszív fejlesztése

34

Problémák a gyakorlatban

A sokféle eszköz különböző mértékben támogatja a JavaScriptet és CSS-t, vagy egyszerűen ki vannak kapcsolva

Nem lehet külön alkalmazni a CSS-t és a JavaScriptet, mert a modern kliensoldali programozásban nagyon összefonódtak

Page 35: Weboldalak progresszív fejlesztése

35

PE lépései

Design áttekintése minden komponens jól strukturált,

szemantikus HTML-lel legyen leírva JavaScript és CSS nélkül is teljes értékű

alkalmazás Böngésző JavaScript és CSS

képességeinek ellenőrzése, majd alkalmazása

Elérhetőség biztosítása a gazdag oldalon

Page 36: Weboldalak progresszív fejlesztése

36

Böngészők tulajdonságainak tesztelése

Browser detection nem jó a lista állandó karbantartása nem jövő-biztos browser spoofing (hamisítás)

Feature detection JavaScript CSS

Ez alapján két részre osztani a böngészőket alap gazdag

Page 37: Weboldalak progresszív fejlesztése

37

PE részei

Letisztult tartalom és jól struktúrált leírás alapleírás

Határozott szétválasztása az elrendezésnek és a megjelenésnek

Diszkrét alkalmazása a stílusnak és viselkedésnek, figyelembe véve az elérhetőséget

Page 38: Weboldalak progresszív fejlesztése

38

Példa: alapoldal kidolgozása

Page 39: Weboldalak progresszív fejlesztése

39

Példa: alapoldal kidolgozása

Page 40: Weboldalak progresszív fejlesztése

40

Példa: alapoldal kidolgozása

Page 41: Weboldalak progresszív fejlesztése

41

Page 42: Weboldalak progresszív fejlesztése

42

Példa: alapoldal kidolgozása

Page 43: Weboldalak progresszív fejlesztése

43

Példa2: űrlap

Fejlesztett változat

Page 44: Weboldalak progresszív fejlesztése

44

Példa2: alapoldal

Page 45: Weboldalak progresszív fejlesztése

45

Példa – Összecsukható tartalom

Page 46: Weboldalak progresszív fejlesztése

46

Összecsukható tartalom

Áttekintés Címsorok és felsorolás ul: display: none nem kerül felolvasásra

aria-hidden="true" Show/hide details span a: details billentyűzettel elérhető,

kezelhető Alapoldal Fejlesztés

Class-ok hozzáadása

Page 47: Weboldalak progresszív fejlesztése

47

Példa – tooltip

Page 48: Weboldalak progresszív fejlesztése

48

Példa – tooltip

Alapleírás label title

attribútum belső link

(privacy) külső link

(benefits) Biztonságos CSS

font-family cursor: help display: block

<div class="question„> <label for="email" title="To keep spammers out, we'll

send a confirmation email to make sure this is a valid email address">Email Address</label>

<input type="text" name="user" id="email" class="text" />

</div>

Page 49: Weboldalak progresszív fejlesztése

49

Tooltip

Kétféle tartalom label, title, fejlesztés Privacy link: fontos, oldalon marad Előnyök: kevésbé fontos, külön oldal, ajax Tooltip

aria-role: tooltip aria-hidden: true body: aria-role: application aria-describedby: tooltipID

Page 50: Weboldalak progresszív fejlesztése

50

Tabs

Kétféle megoldás Egymás utáni blokkok Felsorolás + hivatkozott blokkok

Kompakt Linkekkel ugrás Könyvjelző Rugalmasság az oldalkialakításban

ARIA Application role Tablist, tabpanel role Labelledby: id

Billentyűzet Back button support

Page 51: Weboldalak progresszív fejlesztése

51

Példa – Modális dialógusablak

Page 52: Weboldalak progresszív fejlesztése

52

Példa – Modális dialógusablak

Page 53: Weboldalak progresszív fejlesztése

53

Flash és a progresszív fejlesztés SWFObject

Statikus: graceful degradation Dinamikus: progresszív enhancement

Page 55: Weboldalak progresszív fejlesztése

55

Mobilweb és a progresszív fejlesztés

http://jquerymobile.com/ http://www.slideshare.net/bryanrieger/ret

hinking-the-mobile-web-by-yiibu

Page 56: Weboldalak progresszív fejlesztése

56

Összefoglalás

A jövőben a változatosság nem csökkeni, hanem nőni fog

Egy jövőbiztos megoldás: weboldalak progresszív fejlesztése Szemantikus HTML CSS JavaScript (Flash)

Ez a meglévő tudás újraszervezése

Page 57: Weboldalak progresszív fejlesztése

57

Köszönöm a figyelmet!