42
Unobtrusive JavaScript

Unobtrusive Javascript

Embed Size (px)

Citation preview

Page 1: Unobtrusive Javascript

UnobtrusiveJavaScript

Page 2: Unobtrusive Javascript

DaveVerwerhttp://daveverwer.com

http://shinydevelopment.com

Page 3: Unobtrusive Javascript

WhatisUJS?

Page 4: Unobtrusive Javascript

Didithavefullfunctionality? No

Wasitasquick? No

Wasitaspretty? No

Wasitasusable? No

Diditbasicallywork? Yes

Page 5: Unobtrusive Javascript

Whyshouldyoucare?

Page 6: Unobtrusive Javascript

Accessibility

Page 7: Unobtrusive Javascript

MobileBrowsing

Page 8: Unobtrusive Javascript

SEO

Page 9: Unobtrusive Javascript

ValidHTML4.01orXHTML1.0CSSandsemanticHTMLandseparationofstructureandpresentationProgressiveenhancementTheW3CDOM(insteadoftheoldMicrosoftdocument.all)MeaningfulvaluesofclassandidMeaningfulaltattributesonallimagesScriptsthatworkonlinksshouldextendthebasiclinkfunctionality(thinkaccessiblepopups)Ifalinkmakesnosensewithoutascript,itshouldn'tbeintheHTML(butbegeneratedbyJavaScript)UseofformsorscriptsastheonlymeansofgettingcertaininformationisprohibitedRemovingthefocusrectangleonlinksisprohibitedInformationofferedinaclosedformat(thinkWord)shouldalsobeofferedinanopenformatThesemanticsofmanyHTMLelementsareexplicitlydefined

Asof1stSeptember2005,everywebsitebuiltforadutchgovernment

agencyisrequiredbylawtoconformto:

Page 10: Unobtrusive Javascript

Point3:

ProgressiveEnhancement.

Page 11: Unobtrusive Javascript

Point7:

Scriptsthatworkonlinksshouldextendthebasiclinkfunctionality.

Page 12: Unobtrusive Javascript

Point8:

Ifanelementmakesnosensewithoutascript,itshouldn'tbeintheHTML.

Page 13: Unobtrusive Javascript

Point9:

Useofformsorscriptsastheonlymeansofgettingcertaininformationisprohibited.

Page 14: Unobtrusive Javascript

SoJavaScriptisevil,right?

Page 15: Unobtrusive Javascript

GoodJavaScript

Page 16: Unobtrusive Javascript
Page 17: Unobtrusive Javascript
Page 18: Unobtrusive Javascript

BadJavaScript

Page 19: Unobtrusive Javascript
Page 20: Unobtrusive Javascript

TheDarkAgesoftheWeb

Page 21: Unobtrusive Javascript
Page 22: Unobtrusive Javascript
Page 23: Unobtrusive Javascript

Seperatingcontentfromdesign

Page 24: Unobtrusive Javascript

<b><font size="5"><font color="#0000FF">THIS SITE IS UNDER CONSTRUCTION!!</font></font></b>

<style> p.construction { color: #00f; font-size: 1.5em; font-weight: bold; }</style>

<p class="construction"> THIS SITE IS UNDER CONSTRUCTION!!</p>

Page 25: Unobtrusive Javascript

Seperatingcontentfromdesign

andbehaviour

Page 26: Unobtrusive Javascript

target=“_blank”demo

Page 27: Unobtrusive Javascript

Prototype&LowPro

Page 28: Unobtrusive Javascript

<a class=“external”>

Page 29: Unobtrusive Javascript

Event.addBehavior({ "a.external:click": function(event) { window.open(this.href, "ext"); return false; }});

Page 30: Unobtrusive Javascript

Settingaclassbecomesanindicatorofbehaviour

notjuststyle

Page 31: Unobtrusive Javascript

Makesurenothingbreaks

Page 32: Unobtrusive Javascript

StartminimalandshowUIor

StartbigandhideUI

Page 33: Unobtrusive Javascript

JSSpecificUIdemo

Page 34: Unobtrusive Javascript

UJSpluginforRailsdemo

Page 35: Unobtrusive Javascript

Summary

Page 36: Unobtrusive Javascript

Doesitreallyneedit?

Page 37: Unobtrusive Javascript

Dolinksstillwork?

Page 38: Unobtrusive Javascript

Doesthisbreakthebackbutton?

Page 39: Unobtrusive Javascript

Don’trelyonalert()forconfirmations

Page 40: Unobtrusive Javascript

Scriptshiddenawaywhenpossible?

Page 41: Unobtrusive Javascript

EnhancingAccessibilitywithJavaScript?!?