330 likes | 388 Views
With the exploding popularity of DOM Scripting, Ajax and JavaScript in general, it's important to know what to do -- and what not to do -- when dealing with these technologies. This session walks you through several real-world examples, pointing out common mistakes that hinder usability, accessibility, and search while teaching you ways to avoid them altogether, either programmatically or simply by altering the way you think about JavaScript-based interactivity.<br><br>In this session, you will learn:<br><br>• How to meet your users' needs and expectations in a progressively-enhanced way;<br>• Common mistakes in interaction design;<br>• Progressive enhancement as a concept;<br>• How to deliver a layered interface;<br>• Progressive enhancement with CSS;<br>• Progressive enhancement with JavaScript.
E N D
Ruining the User Experience Ruining the User Experience Aaron Gustafson
What is a good user experience? What is a good user experience?
Would you do this? Would you do this?
lala.com lala.com
JavaScript is a Requirement JavaScript is a Requirement
A “Solution” A “Solution”
Levels of Service Levels of Service
Level 1: No Frills Level 1: No Frills Just the content Clean, semantic markup Light, fast-downloading pages No distractions
Level 1: No Frills Level 1: No Frills
Level 2: Dress It Up Level 2: Dress It Up nicely designed visual hierarchy maybe a bit of Flash adequate browser testing basic styles for alternate media
Level 2: Dress It Up Level 2: Dress It Up
Level 3: Make It Sing Level 3: Make It Sing Responsive interface elements Predictive data delivery (Ajax) Allows for more customizable interactions
Level 3: Make It Sing Level 3: Make It Sing .collapsing .optional .optional
Level 3: Make It Sing Level 3: Make It Sing Create the link to show/hide the optional fieldsets Page Hide the optional fieldsets JS Yes No
Level 3: Make It Sing Level 3: Make It Sing
Levels of Service Levels of Service
Example: Tab Interface Example: Tab Interface
Example: Tab Interface Example: Tab Interface Split the content & make some tabs Page JS Yes No
Example: Tab Interface Example: Tab Interface .tabbed
Example: Tab Interface Example: Tab Interface
Example: FAQ Example: FAQ
Slide open requested FAQ :target used Default browser behavior Close any open FAQs Page Yes No Inside click? User clicks ? CSS No Yes No Yes JS Any open? Yes No Example: FAQ Example: FAQ
dl.faq dt>a dd#id Example: FAQ Example: FAQ dl.faq
.faq dd:target Example: FAQ Example: FAQ
Example: FAQ Example: FAQ
Tools at our disposal Tools at our disposal
DOM Methods DOM Methods getElementById() getElementsByTagName() getAttribute()/setAttribute() createElement()/createTextNode() innerHTML (if absolutely necessary)
Class Swapping Class Swapping .tabbed .tabbed-on .collapsing .collapsible .faq .faq.on
Think Customer Service Think Customer Service
Questions? Questions?
Ruining the User Experience Ruining the User Experience Aaron Gustafson