SlideShare a Scribd company logo
What makes good web design?
Richard Cornish
rich@richardcornish.com
Project: A house

  Tool: A hammer

  Goal: A home to live in
I don’t make a house
because I like the hammer.

I make a house because I
need to live in it!
Function followed form   Form followed function
Function followed form   Form followed function
From chaos ...
... came order
Project: A Web site

   Tool: Design, technology

  Goal: To sell stuff,
        To read about a game,
        To get a date

         ... to connect people
Netscape ... no, Internet Explorer!
                                 Firefox ... no, Safari!
                                 HTML ... no, XHTML!
                <img>                                                     <img />


                            Transitional ... no, Strict!
xhtml1-transitional.dtd                                               xhtml1-strict.dtd


                                 CSS 1 ... no, 2 ... no, 3!
        { text-indent }                                               { text-shadow }


                                   XML ... no, RSS ... no, ATOM!
                <?xml?>


                             Javascript ... no, AJAX!
 type=quot;text/javascriptquot;


                                    Perl ... no, PHP!
                                MySQL ... no, PostgreSQL!
                             RealAudio ... no, Podcasts!
                            Shockwave ... no, Flash!
                                  PDFs ... no, eBooks!
                                vCards ... no, hCards!

                                                                                !
                            WCAG 1.0 ... no, 2.0!
                          Ruby on Rails ... no, Sapphire on Spaceships!
                              Web 1.0 ... no, 2.0 ... no, 3.0!
             Web 1.0
Gradients
Drop shadows
Reflections
Rounded corners

                  Hello!
Big type
Bright colors

                    !
Cute icons
Star shapes
Beta
❖ Are all the links underlined? I prefer most links that’s aren’t “buttons”   ❖ For content heavy sites — does it have a well categorized archive and
    underlined.                                                                   search? Depending on the site, search should be on every page.
                                                                                  Either way, it’s good to accommodate both browsers (as in people
❖ Is there a specified a visited link state?
                                                                                  browsing a site) and searchers on content rich sites.
❖ Are buttons fully clickable? I see semi-clickible buttons all the time
                                                                              ❖ Do you have dates and authors for anything like an article or post?
    and they bug the heck outta me.
                                                                                  Something that kills me about many of blogs. I like to know when and
❖ Are fly-outs functioning properly? Easy to click? Spaced far enough              by whom when reading something.
    apart? I find these hard to use all the time, but when they’re done well
                                                                              ❖   Does the content print well?
    they don’t frustrate me though.
                                                                              ❖   Is there up-to-date and easy-to-find contact information?
❖ Are you using color for any important information? Don’t forget the
                                                                              ❖
    colorblind may have a problem with that.                                      Do you have a custom 404 page? These can be a real help.
❖ Are alt attributes specified for non-ornamental images? Do they              ❖   Do you have a working link to RSS feeds if available?
    describe the image accurately where it’s helpful to do so?                ❖   Did you check content for passive voice?
❖   Is there relevant meta information?                                       ❖   Have you checked your spelling “gotchas”? I miss these all the time.
❖   Is there a proper doctype?                                                ❖   Are links checked and working?
❖   Are there proper margins, line height and letter spacing?                 ❖   Are there any typos in images? Typos in alt attribute text?
❖   Does content maintain a good default line length and font size            ❖   Is there a copyright on every page?
    (especially for small serif fonts) for reading?
                                                                              ❖   Is there a text equivalent for any important graphical information?
❖ Are fonts relative and scalable?
                                                                              ❖   Is there a link to home (or whatever you use for home) from every
❖ Is there decent contrast for text?                                              page?
❖ Do borders give enough room to text and/or important visual                 ❖ is there generic about information or link to it from every page for
    elements?                                                                     those coming in via search engine?
❖ Is there a good use of whitespace?                                          ❖   Are PDFs and other “non-html” files labeled properly?
❖ Do headlines look like headlines? Do they make sense in relation to         ❖   Are advertisements labeled as such, or obvious as advertisements?
    the content?
                                                                              ❖   Does the design work well in 800×600?
❖ Are navigation labels straightforward and easy to understand?
                                                                              ❖   Are all forms functioning properly? Are they easy to fill out?
❖ Do the pages look good cross browser? Cross platform? Check if you
                                                                              ❖   Do error messages make sense?
    can!
                                                                              ❖   Is feedback easy for visitors to give?
❖ Is there a proper page title for each page? Hopefully relevant to the
                                                                              ❖   Does the back button always work?
    page itself and its content?
❖ Is there an “About” page? Most every site should have something!
                                                                              D. Keith Robinson
                                                                              7nights.com/asterisk/archive/2004/
                                                                                07/the-big-web-design-details-list
“   (The elements that make a successful home page
    are) anything that accomplishes the site’s
    objectives and goals.

    Really, that’s all it comes down to at the end of the
    day. I wish it were as simple as ‘The Seven Habits
    of Highly Effective Homepages,’ but no single list
    will work for every possible Web site strategy.”

                              Cameron Moll, March 2005
                              digital-web.com/articles/cameron_moll
“                                     ”
    It is purpose that drives us.
                        Agent Smith
                        The Matrix Reloaded
islostarepeat.com
fsa.usda.gov/haynet (old)
Expand when necessary
Contract when possible

 ... just like your pants
Good web
    Good design
+
Good web design
The ideas
The Web as a platform
Cooperation, not control
Collective intelligence and experience
Effective communication


The grit
Semantic markup
Separation of content and presentation
Accessibility
Usability
<table summary=quot;a unholy messquot; border=quot;0quot; cellspacing=quot;0quot; cellpadding=quot;0quot;> <tr> <td colspan=quot;9quot; width=quot;553quot; height=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot;
height=quot;1quot; width=quot;1quot; /></td> </tr> <tr> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot;
height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;9quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td
width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;20quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot;
height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;10quot;><img src=quot;images/spacer.gifquot;
alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;20quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/
1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td
width=quot;150quot;>This could really be done much more simply.</td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot;><img src=quot;images/
spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;>Guess how much markup there is in this little table? 13.7k. There are 17 rows and 9 columns in this thing. And did I
mention all of the spacer GIFs?</td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/
spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;20quot;><img
src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;
height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr>
<td colspan=quot;9quot; width=quot;553quot; height=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr> <td rowspan=quot;3quot; width=quot;1quot;
background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></
td> <td width=quot;150quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot;
width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/
spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;10quot;><img
src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </
tr> <tr valign=quot;topquot;> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot;>There are way too many table cells and spacers in here.</td> <td
width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;>And all
of the dotted borders are done with a <code>background</code> attribute on table cells, which won't validate. <table summary=quot;listquot; width=quot;338quot; border=quot;0quot; cellspacing=quot;0quot;
cellpadding=quot;0quot;> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot;
height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>A nested table? What for?</td> </tr> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/
spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td
width=quot;10quot;>•</td> <td width=quot;328quot;>To make a bulleted list? You're kidding, right?</td> </tr> </table> </td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /
></td> </tr> <tr> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot;
height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot;
alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/
spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td colspan=quot;9quot; width=quot;553quot; height=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot;
width=quot;1quot; /></td> </tr> <tr> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img
src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot;
height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot;
width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot;
height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/
1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td
width=quot;150quot;>This could all be done with 8 table cells and 4 CSS rules.</td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot;><img
src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;>Seriously. 8 cells and 4 css rules, that's all it takes. <table summary=quot;listquot; width=quot;338quot; border=quot;0quot;
cellspacing=quot;0quot; cellpadding=quot;0quot;> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/
spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>Oh no, another table masquerading as a bulleted list.</td> </tr> <tr>
<td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /
></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>Just mark up your bulleted lists as bulleted lists and let CSS do the rest.</td> </tr> </table> </td> <td
width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td>
<td width=quot;150quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /
></td> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot;
width=quot;338quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td colspan=quot;9quot; width=quot;553quot; height=quot;1quot; background=quot;images/
1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot;
height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;10quot;><img src=quot;images/spacer.gifquot;
alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/
1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;
height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td
rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;11quot;><img src=quot;images/spacer.gifquot;
alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot;>You need a rule for <table>, one for <td>, one for <ul> and one for <li>.</td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot;
height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;>That's it. Once you have those you're golden. <table
summary=quot;listquot; width=quot;338quot; border=quot;0quot; cellspacing=quot;0quot; cellpadding=quot;0quot;> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td
width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>That's better than using 8
more table cells to make a fake bulleted list, which ends up being much less accessible.</td> </tr> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot;
width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td
width=quot;328quot;>Excellent! The last fake bullet.</td> </tr> </table> </td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td width=quot;11quot;
height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td
width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td>
<td width=quot;338quot; height=quot;20quot;> </td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td colspan=quot;9quot; width=quot;553quot; height=quot;1quot;
background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> </table>
<table summary=quot;a unholy messquot; width=quot;553quot; border=quot;0quot; cellspacing=quot;0quot; cellpadding=quot;0quot;><tr valign=quot;topquot;><td>much better</td><td>Guess how much markup there is in this little table?
2.1k. There are 4 rows and 2 columns in this thing. And no spacer GIFs.</td></tr><tr valign=quot;topquot;><td>just right</td><td>And all of these dotted borders are done with CSS and are
perfectly valid.<ul><li>This is a list item now</li><li>Just the way it's supposed to be</li></ul></td></tr><tr valign=quot;topquot;><td>This is all done with 8 table cells and 4 css rules.</
td><td>Seriously. 8 cells and 4 css rules, that's all it takes.<ul><li>Hooray for bulleted lists</li><li>Why not just mark up your bulleted lists as bulleted lists and let CSS do the
rest?</li></ul></td></tr><tr valign=quot;topquot;><td>You need a rule for &lt;table&gt;, one for &lt;td&gt;, one for &lt;ul&gt; and one for &lt;li&gt;.</td><td>That's it. Once you have those
you're golden.<ul><li>I just love bulleted lists</li><li>Excellent! no more fake bullets</li></ul></td></tr></table>
Smaller files


Faster-loading pages


Less-costly bandwidth


More page views ... ?
Better screen readings


Better search engine
rankings


Easier to maintain and
redesign
Identity
speed      travel    strength   earth     halo
athletics   transit    cars      energy    cars
  nike      tube      peugeot     bp      toyota
Identity appeals to feelings
   and transcends text
Consistent identity creates trust
Just be careful

You’re you — be proud of it
Grid
Hierarchical                             Categorical




               flickr.com/photos/andwar
Typography
p{   font-family:         arial, sans-serif;
     font-size:           150%;
     font-variant:        small-caps;
     line-height:         1.5em;
     text-align:          justify;
     text-indent:         1em;
                                        }
     text-transform:      uppercase;



                w3c.org
scalable Inman Flash Replacement


Display your font on
their computer while
using standards

... but there is
always a catch

                                             June 2006




                   mikeindustries.com/sifr
Colo(u)r



credit: flickr.com/photos/minarets
wellstyled.com/tools/colorscheme2/index-en.html
Let nature decide ...




     mezzoblue.com
... or let the pros decide




        pantone.com
Imagery
The flirty Customer Service Gal
Operators are standing by to take your call ...
               and your heart


               credit: fortymedia.com
Uh, no.

We can do better than that.
That’s OK if you’re not an
award-winning photographer

Just get real with your images
Never underestimate the power of an image

sxc.hu
everystockphoto.com
yotophoto.com
your own digital camera (seriously)
Media
March 2006
So, is design the second coming?

      As a designer, I wish.
Crappy sites succeed despite their bad design
              (not because of it)


                   Why?
Windows


A fatal exception occurred at 0137:BFF9A07C. The current
application will be terminated.


* Press any key to terminate the current application
* Press CTRL+ALT+DEL again to restart your computer. You will
  lose and unsaved information.


                  Press any key to continue
Because visitors will slog through hell
     to get to what they want ...
    if they want it badly enough


       Why take that chance?
Thanks! Questions?
           richardcornish.com/goodwebdesign.pdf

                 rich@richardcornish.com
                     +1 (630) 890-0307

More Related Content

Recently uploaded

Impact of Fonts: in Web and Apps Design
Impact of Fonts:  in Web and Apps DesignImpact of Fonts:  in Web and Apps Design
Impact of Fonts: in Web and Apps Design
contactproperweb2014
 
Revolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in IndiaRevolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in India
amrsoftec1
 
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdfSECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
eloprejohn333
 
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
pmgdscunsri
 
Timeless Principles of Good Design
Timeless Principles of Good DesignTimeless Principles of Good Design
Timeless Principles of Good Design
Carolina de Bartolo
 
Connect Conference 2022: Passive House - Economic and Environmental Solution...
Connect Conference 2022: Passive House -  Economic and Environmental Solution...Connect Conference 2022: Passive House -  Economic and Environmental Solution...
Connect Conference 2022: Passive House - Economic and Environmental Solution...
TE Studio
 
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
kecekev
 
Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1
Decomart Studio
 
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdfAHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
talaatahm
 
Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.
Techno Merch
 
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptxUNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
GOWSIKRAJA PALANISAMY
 
Divertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8djDivertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8dj
lunaemel03
 
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANEEASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
Febless Hernane
 
ARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdfARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdf
Knight Moves
 
International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4
Kyungeun Sung
 
NHR Engineers Portfolio 2023 2024 NISHANT RATHI
NHR Engineers Portfolio 2023 2024 NISHANT RATHINHR Engineers Portfolio 2023 2024 NISHANT RATHI
NHR Engineers Portfolio 2023 2024 NISHANT RATHI
NishantRathi18
 
Heuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdfHeuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdf
Jaime Brown
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
 
Graphic Design Tools and Software .pptx
Graphic Design Tools and Software   .pptxGraphic Design Tools and Software   .pptx
Graphic Design Tools and Software .pptx
Virtual Real Design
 
CocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdfCocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdf
PabloMartelLpez
 

Recently uploaded (20)

Impact of Fonts: in Web and Apps Design
Impact of Fonts:  in Web and Apps DesignImpact of Fonts:  in Web and Apps Design
Impact of Fonts: in Web and Apps Design
 
Revolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in IndiaRevolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in India
 
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdfSECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
 
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
 
Timeless Principles of Good Design
Timeless Principles of Good DesignTimeless Principles of Good Design
Timeless Principles of Good Design
 
Connect Conference 2022: Passive House - Economic and Environmental Solution...
Connect Conference 2022: Passive House -  Economic and Environmental Solution...Connect Conference 2022: Passive House -  Economic and Environmental Solution...
Connect Conference 2022: Passive House - Economic and Environmental Solution...
 
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
 
Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1
 
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdfAHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
 
Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.
 
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptxUNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
 
Divertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8djDivertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8dj
 
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANEEASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
 
ARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdfARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdf
 
International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4
 
NHR Engineers Portfolio 2023 2024 NISHANT RATHI
NHR Engineers Portfolio 2023 2024 NISHANT RATHINHR Engineers Portfolio 2023 2024 NISHANT RATHI
NHR Engineers Portfolio 2023 2024 NISHANT RATHI
 
Heuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdfHeuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdf
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
 
Graphic Design Tools and Software .pptx
Graphic Design Tools and Software   .pptxGraphic Design Tools and Software   .pptx
Graphic Design Tools and Software .pptx
 
CocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdfCocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdf
 

Featured

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
GetSmarter
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
Alireza Esmikhani
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Project for Public Spaces & National Center for Biking and Walking
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago
 

Featured (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

What makes good web design?

  • 1. What makes good web design? Richard Cornish rich@richardcornish.com
  • 2. Project: A house Tool: A hammer Goal: A home to live in
  • 3.
  • 4.
  • 5.
  • 6. I don’t make a house because I like the hammer. I make a house because I need to live in it!
  • 7. Function followed form Form followed function
  • 8. Function followed form Form followed function
  • 11. Project: A Web site Tool: Design, technology Goal: To sell stuff, To read about a game, To get a date ... to connect people
  • 12. Netscape ... no, Internet Explorer! Firefox ... no, Safari! HTML ... no, XHTML! <img> <img /> Transitional ... no, Strict! xhtml1-transitional.dtd xhtml1-strict.dtd CSS 1 ... no, 2 ... no, 3! { text-indent } { text-shadow } XML ... no, RSS ... no, ATOM! <?xml?> Javascript ... no, AJAX! type=quot;text/javascriptquot; Perl ... no, PHP! MySQL ... no, PostgreSQL! RealAudio ... no, Podcasts! Shockwave ... no, Flash! PDFs ... no, eBooks! vCards ... no, hCards! ! WCAG 1.0 ... no, 2.0! Ruby on Rails ... no, Sapphire on Spaceships! Web 1.0 ... no, 2.0 ... no, 3.0! Web 1.0
  • 13. Gradients Drop shadows Reflections Rounded corners Hello! Big type Bright colors ! Cute icons Star shapes Beta
  • 14. ❖ Are all the links underlined? I prefer most links that’s aren’t “buttons” ❖ For content heavy sites — does it have a well categorized archive and underlined. search? Depending on the site, search should be on every page. Either way, it’s good to accommodate both browsers (as in people ❖ Is there a specified a visited link state? browsing a site) and searchers on content rich sites. ❖ Are buttons fully clickable? I see semi-clickible buttons all the time ❖ Do you have dates and authors for anything like an article or post? and they bug the heck outta me. Something that kills me about many of blogs. I like to know when and ❖ Are fly-outs functioning properly? Easy to click? Spaced far enough by whom when reading something. apart? I find these hard to use all the time, but when they’re done well ❖ Does the content print well? they don’t frustrate me though. ❖ Is there up-to-date and easy-to-find contact information? ❖ Are you using color for any important information? Don’t forget the ❖ colorblind may have a problem with that. Do you have a custom 404 page? These can be a real help. ❖ Are alt attributes specified for non-ornamental images? Do they ❖ Do you have a working link to RSS feeds if available? describe the image accurately where it’s helpful to do so? ❖ Did you check content for passive voice? ❖ Is there relevant meta information? ❖ Have you checked your spelling “gotchas”? I miss these all the time. ❖ Is there a proper doctype? ❖ Are links checked and working? ❖ Are there proper margins, line height and letter spacing? ❖ Are there any typos in images? Typos in alt attribute text? ❖ Does content maintain a good default line length and font size ❖ Is there a copyright on every page? (especially for small serif fonts) for reading? ❖ Is there a text equivalent for any important graphical information? ❖ Are fonts relative and scalable? ❖ Is there a link to home (or whatever you use for home) from every ❖ Is there decent contrast for text? page? ❖ Do borders give enough room to text and/or important visual ❖ is there generic about information or link to it from every page for elements? those coming in via search engine? ❖ Is there a good use of whitespace? ❖ Are PDFs and other “non-html” files labeled properly? ❖ Do headlines look like headlines? Do they make sense in relation to ❖ Are advertisements labeled as such, or obvious as advertisements? the content? ❖ Does the design work well in 800×600? ❖ Are navigation labels straightforward and easy to understand? ❖ Are all forms functioning properly? Are they easy to fill out? ❖ Do the pages look good cross browser? Cross platform? Check if you ❖ Do error messages make sense? can! ❖ Is feedback easy for visitors to give? ❖ Is there a proper page title for each page? Hopefully relevant to the ❖ Does the back button always work? page itself and its content? ❖ Is there an “About” page? Most every site should have something! D. Keith Robinson 7nights.com/asterisk/archive/2004/ 07/the-big-web-design-details-list
  • 15. (The elements that make a successful home page are) anything that accomplishes the site’s objectives and goals. Really, that’s all it comes down to at the end of the day. I wish it were as simple as ‘The Seven Habits of Highly Effective Homepages,’ but no single list will work for every possible Web site strategy.” Cameron Moll, March 2005 digital-web.com/articles/cameron_moll
  • 16. ” It is purpose that drives us. Agent Smith The Matrix Reloaded
  • 19. Expand when necessary Contract when possible ... just like your pants
  • 20. Good web Good design + Good web design
  • 21. The ideas The Web as a platform Cooperation, not control Collective intelligence and experience Effective communication The grit Semantic markup Separation of content and presentation Accessibility Usability
  • 22. <table summary=quot;a unholy messquot; border=quot;0quot; cellspacing=quot;0quot; cellpadding=quot;0quot;> <tr> <td colspan=quot;9quot; width=quot;553quot; height=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;9quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;20quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;20quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/ 1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot;>This could really be done much more simply.</td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot;><img src=quot;images/ spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;>Guess how much markup there is in this little table? 13.7k. There are 17 rows and 9 columns in this thing. And did I mention all of the spacer GIFs?</td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/ spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td colspan=quot;9quot; width=quot;553quot; height=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></ td> <td width=quot;150quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/ spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </ tr> <tr valign=quot;topquot;> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot;>There are way too many table cells and spacers in here.</td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;>And all of the dotted borders are done with a <code>background</code> attribute on table cells, which won't validate. <table summary=quot;listquot; width=quot;338quot; border=quot;0quot; cellspacing=quot;0quot; cellpadding=quot;0quot;> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>A nested table? What for?</td> </tr> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/ spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>To make a bulleted list? You're kidding, right?</td> </tr> </table> </td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; / ></td> </tr> <tr> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/ spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td colspan=quot;9quot; width=quot;553quot; height=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/ 1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot;>This could all be done with 8 table cells and 4 CSS rules.</td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;>Seriously. 8 cells and 4 css rules, that's all it takes. <table summary=quot;listquot; width=quot;338quot; border=quot;0quot; cellspacing=quot;0quot; cellpadding=quot;0quot;> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/ spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>Oh no, another table masquerading as a bulleted list.</td> </tr> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; / ></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>Just mark up your bulleted lists as bulleted lists and let CSS do the rest.</td> </tr> </table> </td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; / ></td> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td colspan=quot;9quot; width=quot;553quot; height=quot;1quot; background=quot;images/ 1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/ 1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> <td width=quot;11quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;338quot; /></td> <td width=quot;20quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td rowspan=quot;3quot; width=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot;>You need a rule for <table>, one for <td>, one for <ul> and one for <li>.</td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot;>That's it. Once you have those you're golden. <table summary=quot;listquot; width=quot;338quot; border=quot;0quot; cellspacing=quot;0quot; cellpadding=quot;0quot;> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>That's better than using 8 more table cells to make a fake bulleted list, which ends up being much less accessible.</td> </tr> <tr> <td width=quot;10quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;10quot; /></td> <td width=quot;328quot; height=quot;10quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;328quot; /></td> </tr> <tr valign=quot;topquot;> <td width=quot;10quot;>•</td> <td width=quot;328quot;>Excellent! The last fake bullet.</td> </tr> </table> </td> <td width=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;150quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;150quot; /></td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;11quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> <td width=quot;338quot; height=quot;20quot;> </td> <td width=quot;20quot; height=quot;20quot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;10quot; width=quot;11quot; /></td> </tr> <tr> <td colspan=quot;9quot; width=quot;553quot; height=quot;1quot; background=quot;images/1dot.gifquot;><img src=quot;images/spacer.gifquot; alt=quot;quot; height=quot;1quot; width=quot;1quot; /></td> </tr> </table>
  • 23. <table summary=quot;a unholy messquot; width=quot;553quot; border=quot;0quot; cellspacing=quot;0quot; cellpadding=quot;0quot;><tr valign=quot;topquot;><td>much better</td><td>Guess how much markup there is in this little table? 2.1k. There are 4 rows and 2 columns in this thing. And no spacer GIFs.</td></tr><tr valign=quot;topquot;><td>just right</td><td>And all of these dotted borders are done with CSS and are perfectly valid.<ul><li>This is a list item now</li><li>Just the way it's supposed to be</li></ul></td></tr><tr valign=quot;topquot;><td>This is all done with 8 table cells and 4 css rules.</ td><td>Seriously. 8 cells and 4 css rules, that's all it takes.<ul><li>Hooray for bulleted lists</li><li>Why not just mark up your bulleted lists as bulleted lists and let CSS do the rest?</li></ul></td></tr><tr valign=quot;topquot;><td>You need a rule for &lt;table&gt;, one for &lt;td&gt;, one for &lt;ul&gt; and one for &lt;li&gt;.</td><td>That's it. Once you have those you're golden.<ul><li>I just love bulleted lists</li><li>Excellent! no more fake bullets</li></ul></td></tr></table>
  • 24. Smaller files Faster-loading pages Less-costly bandwidth More page views ... ?
  • 25. Better screen readings Better search engine rankings Easier to maintain and redesign
  • 27. speed travel strength earth halo athletics transit cars energy cars nike tube peugeot bp toyota
  • 28. Identity appeals to feelings and transcends text
  • 29.
  • 31.
  • 32.
  • 33. Just be careful You’re you — be proud of it
  • 34. Grid
  • 35.
  • 36. Hierarchical Categorical flickr.com/photos/andwar
  • 37.
  • 38.
  • 40.
  • 41.
  • 42. p{ font-family: arial, sans-serif; font-size: 150%; font-variant: small-caps; line-height: 1.5em; text-align: justify; text-indent: 1em; } text-transform: uppercase; w3c.org
  • 43. scalable Inman Flash Replacement Display your font on their computer while using standards ... but there is always a catch June 2006 mikeindustries.com/sifr
  • 46. Let nature decide ... mezzoblue.com
  • 47. ... or let the pros decide pantone.com
  • 48.
  • 49.
  • 51. The flirty Customer Service Gal Operators are standing by to take your call ... and your heart credit: fortymedia.com
  • 52. Uh, no. We can do better than that.
  • 53.
  • 54.
  • 55.
  • 56. That’s OK if you’re not an award-winning photographer Just get real with your images
  • 57.
  • 58.
  • 59.
  • 60.
  • 61. Never underestimate the power of an image sxc.hu everystockphoto.com yotophoto.com your own digital camera (seriously)
  • 62. Media
  • 63.
  • 65.
  • 66. So, is design the second coming? As a designer, I wish.
  • 67.
  • 68. Crappy sites succeed despite their bad design (not because of it) Why?
  • 69. Windows A fatal exception occurred at 0137:BFF9A07C. The current application will be terminated. * Press any key to terminate the current application * Press CTRL+ALT+DEL again to restart your computer. You will lose and unsaved information. Press any key to continue
  • 70. Because visitors will slog through hell to get to what they want ... if they want it badly enough Why take that chance?
  • 71. Thanks! Questions? richardcornish.com/goodwebdesign.pdf rich@richardcornish.com +1 (630) 890-0307