Archive | April, 2010

An Event Apart Seattle 2010 Recap = WOW!

22 Apr

An Event Apart = WOW!

Jeffrey Zeldman and Eric Meyer really know how to put on a conference & they’re darn nice, down-to-earth guys! If you work in user experience, interface design, web design or web development, An Event Apart is for you!

Highlights from An Event Apart Seattle 2010

My session notes from at An Event Apart Seattle 2010

Your Top Questions on Web Form Design with Luke Wroblewski

22 Apr

Form Length

Better to have form on one or multiple pages?

  • Evaluate every question, then ”Keep, Cut or Postpone”
  • Perform best practices audit using spreadsheet & breaking up by section & data collected.

Apple check-out system uses dynamic accordion form. Makes use of accordion to collapse sections after you enter form data.

Inline multi-step do not affect conversion, though people were fastest with it.

Are there accessibility issues with accordion forms? Build form out to work with plain HTML, then progressively enhance using code & CSS.

Primary & Secondary Actions (or Next & Previous)

Primary & secondary actions. Should Next be on the right and Previous on left? Depends on how form labels are aligned. If you’re going to use this, be sure there is enough space between buttons so secondary action doesn’t align with your form elements.

Consider changing form labels. Continue & Go back instead of Next & Previous. Take emphasis off secondary action by using a link instead of a button or using more subtle style.

When primary action is inline with rest of form, users performed the most quickly.

How about tab index on secondary actions? Leave out in most cases, depending upon user goals.

Button & Links

Consider button for primary action & link for secondary.

For help differentiating forms from applications, see Forms vs. Applications by Jakob Nielsen.

Mad Libs Style Forms

Questions are layered into paragraphs with blanks. Some sites have seen consistent increase in conversion & completion rates.

“Mad Libs” Style Form Increases Conversion 25-40%

Vast.com uses Mad Lib Style Forms.

International Forms

There are many ways to present forms that collect postal addresses. Relying solely on text inside form fields causes usability issues.

Be sure your forms are tuned to the country your form is targeted towards. Can use automatic-detection based on IP address WiFi, or GPS. HTML5 has geolocation-based API.

Use generic format that covers multiple regions or countries. Example form fields, City/Town, State/Province/Region, ZIP/Postal Code. When it comes to form validation, realize the variations in different countries. Some countries don’t have postal codes, some have numbers and alpha-characters.

More on postal addresses & forms

Flexible inputs for form fields

Use input maps is fine, but don’t change answers while users are entering them. Set expectations up front or modify after entry. Don’t hide form hints in your form fields.

HTML5 allows additional input types

  • number
  • range (implements slider)
  • date (implements calendar)

Two-Column Form Design

People will scroll if there is something to scroll for, if it’s clear your form continues. People will jump right in, skipping help text if they want what’s on the other side.

Scan line for form completion. Left aligned items have a much clearer scan lines. Be careful not to scatter input forms across the page. Draw straight lines as guerrilla metric between different sections of your forms.

When you encounter a form on mobile & enter your cursor, Apple does form field zoom. Android doesn’t so form fields are

In general, it’s a good idea to avoid two-column form designs because of loss of scan line and issues it might cause for mobile devices.

Q & A

Cancel and reset buttons on 1-page forms: Get rid of cancel or reset buttons when you can.

How about help links? Help links can work when content is relevant.

Label position on forms: Use top-aligned for speed and higher completion rates. Also best for mobile, accessibility, etc.

Lightbox use in forms: No concrete data yet, inserting follow-up questions in lightbox can be more successful than full form. Okay for adjustments & additional inputs. Stay away lightbox for a complete or multi-page form.

Auto-populate city and state, based on ZIP code: Read post on auto-populating city and state based on ZIP.

The Cheat Tweet Anti-Pattern

19 Apr

Have you signed up for a Twitter application or service, then discovered it posted to your Twitter feed without explicit permission? This is definitely bad Twitter behavior. Let the user evaluate your app/service and tweet to their followers, after they have deemed your app/service useful.

I’m naming this the “cheat tweet anti-pattern.”

Apps & Services using cheat tweet anti-pattern

http://twtlab.com/love – Suggests Twitter users you “love” and tweets automatically after you authorize access
Cheat tweet: “My favorite users are @user123 @user124 @user125 ! Perhaps this is love ;) http://twtlab.com/love

Explore CSS3 with Dan Cederholm — A Day Apart Seattle 2010

7 Apr

Dan Cederholm

Font stack is a very early example of progressive enhancement. Compare black & white to color TV’s. When color TV’s came out, program directors’ didn’t say we’re going to keep filming in black & white. Providing visual rewards to those with advanced browsers. CSS3 is a series of modules and was designed that way so browsers could implement them in stages.

Optimal ordering for vendor-specific CSS.

  • -webkit-border-radius
  • -moz-border-radius
  • border-radius

Vendor prefixes are important for testing implementations, precursor for standards and allow you to use this now.

What works today?

Transforms, Transitions & Animations (Safari) – These actions occur outside the flow of the document, it doesn’t affect the box that it’s in and will not affect the rest of the layout.

Transitions

See hovers on tabs at http://handcraftedcss.com/tugboa

Transition goes on normal state of element. Transition can be used onclick, without JavaScript using the active state.

Example:
background-color .4 linear
property duration timing-function

There is also an all property.

Background transition background image on hover.

2D Transforms include rotate, scale, translate (move) &  skew.

Tranform translate moves image away from mouse. Skew uses X, Y coordinate and causes text to slant to one direction.

Animation

Involves defining and naming a keyframe.

Borders & Backgrounds

Some of the most applicable right now.

border-radius for rounded corners on a box

When you get into individual corners, the syntax differs for -moz. If you don’t specify each corner, all will be rounded.

border-radius.com – to get entire stack without worrying about syntax

Text-Shadow

CSS2 supported in webkit initially.

-text-shadow: 0  -1px 1px #300;

You can use multiple text shadows.

Box-Shadow

Box shadow goes out into the gutters and doesn’t affect the box model.

-webkit-box-shadow: 2px 2px 4px #000;
-moz-box-shadow: 2px 2px 4px #000;
box-shadow: 2px 2px 4px #000;

Border-Image

Allows you to stretch images around the edge of a container. It can be confusing. There are nine sections. Causes extra work to be sure it degrades well and is confusing to grasp.

Multiple Backgrounds

Syntax is simple, comma-delimited URL’s & supported in latest Firefox, Safari & Opera. List critical background images first, so it degrades gracefully.

Color & Transparency

RGBA = Red / Green / Blue / AWESOME (or amount of transparency) – can give a bit of the same effect as overprinting in print work.

Example: rgba (255, 255, 255, .8) 80% transparency

Specify solid color before rgba for non-compliant browsers (Internet Explorer)

RGBA for text – Examples: http://www.wilsonminer.com/ & http://24ways.org/

Use RBGA for transparency on backgrounds that cover images. Also works well on textures to let texture come through.

Use opacity for dimmed image, opacity: .5, on hover opacity: 1.

Selectors & Typography

:last-child & :first-child

:nth-child

:nth-child(5n) (every 5th)
:nth-child(5) (only the 5th one)

Zebra Tables – :nth-child(odd)

Beware of relying on :nth-child for layout

attribute selectors

input[type="text"] {width: 200px;}
disabled=”disabled” or enabled=”enabled”

Substring matching

ID’s that begin with … or end with… or wildcard

CSS3 Selectors Explained

Compatibility Table for CSS3 selectors

Typography & CSS3

Drop caps. Old way was initial character in a span, so we could style it differently. New way is using :first-of-type:first-letter selector.

Use the Best Available Ampersand

CSS3 Layout

Multi-column layout. Set up 3 column layout & set up borders for in between them using column-count, column-gap, column rule. Not practice for long articles where you might have to scroll up and down to read multiple columns. Good for print style sheets.

Font Embedding

http://en.wikipedia.org/wiki/Embedded_OpenType – Legal issues, someone could just grab font. Many free fonts available, http://www.theleagueofmoveabletype.com/ & http://www.josbuivenga.demon.nl/

How to use @font-face. This article overstates complexity of implementation. Go with the simple case of true-type and open-type and let IE default back to standard web font.

Font Squirrel scours the internet in search of FREE, highest-quality, designer-friendly, commercial-use fonts and presents them for easy downloading.

Font is cached when using TypeKit. They work through legal issues and you pay them.  Uses JavaScript you paste into your document. Many of TypeKit fonts are also re-hinted for the web.

Using CSS3

To enrich user experience, when site stats rule, experimentation, mobile dev and prototyping.

That’s it. My cache is full. I’ll be editing and organizing this content soon.

Example sites: http://css3exp.com/moonhttp://handcraftedcss.com/tugboat & http://dowebsitesneedtobeexperiencedexactlythesameineverybrowser.com/

Understand HTML5 with Jeremy Keith – A Day Apart Seattle 2010

7 Apr

Jeremy Keith

History of HTML

There never was an HTML 1. The first version was HTML 2 in November 1995. HTML 3.2 in January 1997, HTML 4 in December 1997, HTML 4.2 in December 1999. XHTML 1.0 in January 2000, XHTML 1.1 was problematic because it  must be served as mime-type: application/xml in May 2001. XHTML 2.0 never happened (it was going to deprecate the img element at one point), because there was a disparity between reality and what W3C wanted the web to be. Internet Explorer 9 to feature support for XHTML 1.1, “that’s so cute.” Plucky rebels from WHAT-WG put forward proposal to use existing XTHML with new features, W3C disagreed. WHAT-WG initially worked on Web Applications 1.0 & Web Forms 2.0, eventually the two merged  into HTML5, the lack of space between HTML and number 5 is intentional, this is not a new version of HTML. In October 2006, Tim Berners-Lee finally realized HTML5 was the way of the future, got W3C HTML Working Group to agree. WHAT-WG still exists and specifications are slightly different, occasionally they are ported to W3C. January 2008, HTML 5. Timeline: HTML5 Candidate Recommendation in 2012.

The web standards process is a lot like sausages, they taste good, but you don’t want to see how they’re made. -Jeremy Keith

The dates are only of interest to the standards body. We don’t wait until a spec is complete to start using it. We use it when browsers support it.

HTML5 design principles value users over authors (us) over implementors over specifiers over theoretical purity. Pave the cowpaths based on what people want and what people need & evolution not revolution (backward compatibility). Standards and working groups will often pay more attention when they see working code with theory behind it.

Doctype & Character Encoding for HTML5

Doctype for HTML5 (authors first) - <!DOCTYPE html> - *applause* - doctype is only needed/intended for document validation. This will trigger standards mode, if you’re using quirks mode, don’t use this.

Character encoding for HTML5 - <meta charset=”utf-8″>

HTML5 must be served using the text/html MIME type.

Syntax, you don’t have to close li, img and certain other tags *yikes*. Attributes don’t need quotation marks *nooo!*. We need a lint tool for HTML5.

Error handling, HTML5 is the first time this has been approached in specifications. Currently browsers reverse engineer from expected behavior & copy each other. This is one of the most ambitious parts of HTML5, all of the browser makers want it, but it’s not something authors (we) need to worry about.

HTML5 Introduces Rich Media Elements

Audio <audio src=”song.mp3″ controls preload><!– fallback content–></audio>

Fallback content isn’t the same as accessibility content. In the example above, you could have a Flash fallback, a fallback linking to mp3 on page.  Control elements can’t be styled, however you can use buttons & JavaScript to style.

Video <video controls width=”200″ height=”200″><source type=”video/ogg” src=”movie.ogg”><source type=”video/mp4″ src=”movie.mp4″><!– fallback content –></video>

“Patents are the root of a lot of pain in the ass.” -Jeremy Keith

Different browsers support different file-types. Firefox doesn’t currently support MP3, but does support Flash. Browser will interpret the first one it supports, list your preferred format first.  Important to note, these are HTML elements and can be styled using CSS. Example: HTML video player.

Canvas <canvas> and JavaScript for drawing on the screen. Example: Canvas & jQuery.

Forms

“For accessibility, a native control will almost always be better than a scripted, emulated control.” -Jeremy Keith

New input types –  input type=”…”
tel, email, url, datetime, date, month, week, time, number, range, color, datalist, placeholder, autofocus, required

Styling – can be styled as other input elements, but date picker and browswer native styles cannot be styled. Browsers will display differently, in the future browsers may compete for best looking native styles.

“Chrome is a pile of shit when it comes to accessibility” -Jeremy Keith

Semantics in HTML5

Deprecated is deprecated. Items have now been “removed” from HTML5.

Removed from HTML5

  • Presentational elements: font, big, center, etc.
  • Presentational attributes: border, bgcolor, etc.
  • frame, frameset, noframes, acronym, axis, summary (tbd)

Changed in HTML5

  • a may be wrapped around entire paragraphs, lists, tables, entire sections as long as no interactive content within.
  • b changed to a span of text to be stylistically offset from normal prose without conveying extra importance.
  • i changed to span of text to be stylistically offset without conveying extra importance.
  • hr a paragraph-level semantic break.
  • small for small print

Extensibility

Semantics in HTML5 – A List Apart, John Allsop

Structure in HTML5

New elements

mark, time, nav, article, section, aside, header, hgroup, footer, details, figure

With sections, you’re creating mini-documents. Even if you’re not ready to use elements, begin using semantics (class names) to transition new elements now. At the very least, you can also change your doctype and use ARIA roles, change doctype, class names and ARIA roles or if you’re feeling really brave doctype, new elements and ARIA roles.

Creating an outline

Sectioning roots

Scoping styles

ARIA roles

How the Web Works – Jeff Veen — An Event Apart Seattle 2010

6 Apr

Jeff Veen at An Event Apart #aea

600 years of typography. In 1993, the web came about and we had very little control of typography.  2008, we have 18 fonts, most still use four or five fonts.

@font-face comes about, but still isn’t used. First supported in Opera, then Webkit, Firefox and Internet Explorer in a proprietary way. When a couple of things converge, technical disruptions happen. How do you respond?

Look past where your revenue model is today and ask what we’re trying to do here. The qualities that contribute to the success of the web are the qualities that will make us successful too. We are native to the web

Initial proposal was JavaScript-based styles. http://www.w3.org/Submission/1996/1/WD-jsss-960822 After discussion and conflict, consensus was reached, but style needed to be separate from scripting. After some code was developed, the team was able to agree on what eventually became CSS.

Moving forward we can achieve rough census, but we must have the code to demonstrate. Proposal for img tag, consensus wasn’t universal at the moment, but code for Mosaic browser shipped with code for inline images using img tag.

Gauge feedback for features and write blog post about proposed features, see where that goes. Get something out there, get the idea in front of your users.

“If you’re not embarassed when you ship your product, you’ve waited too long.”  -Reid Hoffman

Watch what your users do and say. When you see a pattern, adapt your product to meet the users needs. Iterate, get things out as quickly as you can. You might not always get it right the first time. Speed of iteration, beats quality of iteration. Trying to get to that perfect release really slows you down.

We must stay on the top of our game to be successful on the web.

A Dao of Flexibility – Ethan Marcotte — An Event Apart Seattle 2010

6 Apr

Ethan Marcotte, The Dao of Flexibilty #aea

What I sense is a real tension between the web as we know it, and the web as it would be. It’s the tension between an existing medium, the printed page, and its child, the web. And it’s time to really understand the relationship between the parent and the child, and to let the child go its own way in the world. -John Allsopp

The number of access points for distilling information has never been greater. Because of the iPhone, clients are finally realizing what the mobile web can do for them. Mobile webkit blows them all away.

Responsive Architecture

Looking at the way space can adapt to the needs of the people inside it. Is there something we can learn from this?

Responsible Web Design

A flexible grid (with flexible images) that incorporates media queries to create a responsive, adaptive layout.

We know the good guys, we know the bad guys, but there is a secret robot lurking within. http://robot-or-not.com/

  1. Flexible Grid
  2. Flexible Media
  3. Responsive Design

When handed any piece of work, do a visual inventory and translate into markup sketch and set global CSS parameters.

Font size = 100% == Font size: 16px

Simple Formula: Target / Content (16px) = Results (ems, don’t round them)

Fluid grids can be built the same way using percentages. We can do so with the same simple type setting formula. Six-column grid of 95px each = 637 pixels wide. Target / Content = Results. Figure out pixel width of columns and get percentage.

How do we accommodate fixed with images. Original image, 1024×768. Image will overflow container. What if we can set a rule to resize the image proportionally, but never exceeds the width of it’s container.

  • img { max-width: 100%; }
  • img, video, object {max-width: 100%;}

What about IE6? Width is a very different rule, so must be applied intelligently so it doesn’t scale non-relevant items.

  • class.img, class.video, class.object {width: 100%;}

Windows platform has issues with pixelation. Using AlphaImageLoader filter turns on a super power for flexible width items in Internet Explorer 6.

Hardboiled Web Design – Andy Clarke — An Event Apart Seattle 2010

6 Apr

What the hell is hard boiled? As Andy sips a Manhattan.

This is what CSS3 was made for, http://www.anthonycalzadilla.com/css3-ATAT/index.html.

We use standards to tell us what we can’t do, not what we can do.

Progressive Enhancement

Builds for least capable devices first, then moves on to enhance those documents to allow a richer experience for those users with modern graphical browser software.

Rethink notion of progressive enhancement. From the top down, instead of the ground up. We can’t be stuck on a doctrine written seven years ago without enhancing it. We should be using these as the core of what we do, instead of just visual treats.

Letting Go

People need to let go of the notion of sites need to look the same in every browser. They can’t! Carry on. Then try to find ways of explaining that to the ones we work for.

W3C is not an innovation body. CSS working group is made up of pay-to-play organizations and companies with the goal of advancing their business objectives. CSS animations, Safari was the first to implement this – try to imagine their objectives for this.

When is the last time you checked your site in san-serif? You design for the first font in the list.

What Does Browser Testing Mean?

Making sure the design people see is appropriate to the device that they are using, so they don’t see something that looks broken, incomplete or inappropriate.

Vendor Prefixes. http://www.w3.org/TR/CSS2/syndata.html

Just say no to Microsoft filters. If their customers are having a lesser experience, this should be their motivation to innovate.

CSS3 pseudo class selector for IE 5.5 – 9. http://www.keithclark.co.uk/labs/ie-css3/

Modernizr, a JavaScript toolkit that allows you to use cool new CSS3 and HTML5 features while maintaining a fine level of control over browsers that don’t. http://www.modernizr.com/

Universal IE6 stylesheet – http://code.google.com/p/universal-ie6-css/

Message and Medium: Better Content by Design – Kristina Halvorson — An Event Apart Seattle 2010

6 Apr

#aea Kristina Halvorson

We all love our teeth, we want bright, white, shiny teeth. 5-second test on http://www.strobeldentistry.com.
When creating a Web site, we often we want to start with what we do. The dentist sites are not thinking about how we feel. What we want. Location, cheap, feel safe, experience, friendly.

Content Strategy

Plans for the creation, delivery and governance of useful, usable content.

Content, text and data, graphics, video, animation, audio. Text is the thing we usually focus on, it’s something everyone can do and most useful to users, search engines, etc. Many different kinds of text, page title, keywords, description, links.

We’re not just talking about what it is we’re going to create. We’re answering all of the questions, getting to that master plan that won’t only get us to launch, but will create a lifecycle for the content process. No more launch it and leave it.

Messaging

Is not mission statement, brand promise, tagline. It’s an internal tool used to prioritize content types and choices, keep content consistent, guide design choices and align content owners. Laser-focused. Message types, primary (1), secondary messages (3-6) and 1000′s of details. Details should support primary and secondary message.

Messaging pyramid

In 1 second, user should understand call to action. In 10 seconds user should understand primary message, in 2 minutes user should understand secondary messages. Two minutes might be spend on related-content pages.

Page-Level Content Hierarchy

Site map & page template. First steps to detailing information architecture documentation.

Page tables, are specific wireframe-based content definitions. They include structures, details, implications and questions. Objectives (with source materials and maintenance), key messages (not copy, it’s what we want user to understand), priority 1, 2 and 3.

Across Your Sites

“If your people want to publish your mission statement on your Web site, tell them no.” -Kristina Halvorson

Cross-Channel Consistency

One of the biggest challenges. Create governance plan for what happens when an event or content expires. Will the message need to change? Should you keep the content online?

Mobile devices help you focus not only your interface but your content as well. @lukewdesign & @halvorson #aea

Search is a channel to deliver content via meta page description, but how many organizations have a focus and a plan for this.

Ben and Jerry’s Facebook page is a great example of a major missed opportunity. 21,000+ fans, yet no updates since March 7, 2009.

Social media should be a part of your content strategy.

Moral of The Story

You do have an opportunity to shape experience online. When you try to sell this, and you must have buy-in, rather than handing down from on high, present it like you’re going to give them a really great tool to make their job easier. Don’t make this a rule or a guideline.

Paranormal Interactivity – Jeremy Keith — An Event Apart Seattle 2010

6 Apr

#aea Jeremy Keith

Iconography is internationalized, but open to misinterpretation. Language & speech is more accurate, barriers still exist. A floppy disk is still the save icon in most applications. Iconography allows you to have a wider reach.

push-button-receive-bacon
Push button, receive bacon.

Endearing messages. Existentialist chalkboard on Flickr. WILF’ing – What was I looking for? Thanks to hyperlinks.

Avoid functionality based  mouseovers, hovers, drop-downs, etc. Consider using a click to reveal information, as done on desktop. Not all devices have hover. Use for non-critical functionality. Progressive disclosure using onclick, not hover or mouseover.

Moved from JavaScript to CSS for hover styles. From procedural to declarative. You’ll see this same thing evolving throughout the web.

Machine Tags

Example: book:author=zeldman

Breakdown by tag on another page.

Forms Suck

Think about how we use forms in the real world. It’s rarely something pleasurable. Huffduffer sign-up form takes a different approach, you fill in the blanks instead of the top to bottom hierarchy of real life forms.

We’ve also come to the conclusion that id’s should not be used for styling/CSS purposes. Classes are for adding semantics and ID’s are for making something addressable.

Form validation is moving from JavaScript to HTML5. Many more input types available, including number, search, range, email, date, url. Using the date type in a form will immediately show a date widget.

Safe Defaults

HTML > CSS > JavaScript – Take away one and the other should work.

“Javascript is like the electricity of the web, but you have to consider what to do when it’s not available.” -Jeremy Keith

Ajax should always be added last. Make the site work fine and then hijack the forms with JS to add the interaction.

Feedback

When clicking a link, you get immediate feedback. Waving flag in IE, lighthouse in Netscape, status bar. Be sure your feedback is subtle and friendly. It shouldn’t get any the way of the core task or next interaction.

Inspiration from desktop, be careful, there are some good ideas, but not all translate to the web. Example: show password checkbox when typing password into sign-in forms. We can be inspired by other mediums and borrow from them, but we don’t have to emulate them.

Build it first, the normal way, with links and forms, then add the ajax. Requires feedback to the user that you did something, too.

Richness & Interactivity

We can now interact at a distance and over time. What makes this medium great, isn’t the technology, it’s the ability to connect people. That is something wonderful and something you should remember.

Twitter isn’t graphically or interactively rich, but it connects people. One of the greatest achievements of all time.

Question & Answer

What’s your favorite color? ”Blue, the color of hyperlinks.” -Jeremy Keith

There are Web sites we use because we have to, those we use because we want to and those we use because we’re delighted by and we love. -Jeremy Keith

“I would push back on the idea that everyone needs the same experience. Everyone needs to be able to achieve the same things.” – Jeremy Keith