330 likes | 366 Views
A slightly expanded version of <a href="/AaronGustafson/ruining-the-user-experience-sxsw-07/">the presentation I did at SXSW earlier in the month</a>. This session covers interaction design through the lens of progressive enhancement. Topics include web standards, CSS, and 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