- •Taking Your Talent to the Web
- •Introduction
- •1 Splash Screen
- •Meet the Medium
- •Expanding Horizons
- •Working the Net…Without a Net
- •Smash Your Altars
- •Breath Mint? Or Candy Mint?
- •Where’s the Map?
- •Mars and Venus
- •Web Physics: Action and Interaction
- •Different Purposes, Different Methodologies
- •Web Agnosticism
- •Point #1: The Web Is Platform-Agnostic
- •Point #2: The Web Is Device-Independent
- •The 18-Month Pregnancy
- •Chocolatey Web Goodness
- •’Tis a Gift to Be Simple
- •Democracy, What a Concept
- •Instant Karma
- •The Whole World in Your Hands
- •Just Do It: The Web as Human Activity
- •The Viewer Rules
- •Multimedia: All Talking! All Dancing!
- •The Server Knows
- •It’s the Bandwidth, Stupid
- •Web Pages Have No Secrets
- •The Web Is for Everyone!
- •Swap text and code for images
- •Prune redundancy
- •Cache as Cache Can
- •Much Ado About 5K
- •Screening Room
- •Liquid Design
- •Color My Web
- •Thousands Weep
- •Gamma Gamma Hey!
- •Typography
- •The 97% Solution
- •Points of Distinction
- •Year 2000—Browsers to the Rescue
- •Touch Factor
- •Appropriate Graphic Design
- •User Knowledge
- •What Color Is Your Concept?
- •Business as (Cruel and) Usual
- •The Rise of the Interface Department
- •Form and Function
- •Copycats and Pseudo-Scientists
- •Chaos and Clarity
- •A Design Koan: Interfaces Are a Means too Often Mistaken for an End
- •Universal Body Copy and Other Fictions
- •Interface as Architecture
- •Ten (Okay, Three) Points of Light
- •Be Easily Learned
- •Remain Consistent
- •Continually Provide Feedback
- •GUI, GUI, Chewy, Chewy
- •It’s the Browser, Stupid
- •Clarity Begins at Home (Page)
- •I Think Icon, I Think Icon
- •Structural Labels: Folding the Director’s Chair
- •The Soul of Brevity
- •Hypertext or Hapless Text
- •Scrolling and Clicking Along
- •Stock Options (Providing Alternatives)
- •The So-Called Rule of Five
- •Highlights and Breadcrumbs
- •Consistent Placement
- •Brand That Sucker!
- •Why We Mentioned These Things
- •The year web standards broke, 1
- •The year web standards broke, 2
- •The year web standards broke, 3
- •The year the bubble burst
- •5 The Obligatory Glossary
- •Web Lingo
- •Extranet
- •HTML
- •Hypertext, hyperlinks, and links
- •Internet
- •Intranet
- •JavaScript, ECMAScript, CSS, XML, XHTML, DOM
- •Web page
- •Website
- •Additional terminology
- •Web developer/programmer
- •Project manager
- •Systems administrator (sysadmin) and network administrator (netadmin)
- •Web technician
- •Your Role in the Web
- •Look and feel
- •Business-to-business
- •Business-to-consumer
- •Solve Communication Problems
- •Brand identity
- •Restrictions of the Medium
- •Technology
- •Works with team members
- •Visually and emotionally engaging
- •Easy to navigate
- •Compatible with visitors’ needs
- •Accessible to a wide variety of web browsers and other devices
- •Can You Handle It?
- •What Is the Life Cycle?
- •Why Have a Method?
- •We Never Forget a Phase
- •Analysis (or “Talking to the Client”)
- •The early phase
- •Design
- •Brainstorm and problem solve
- •Translate needs into solutions
- •Sell ideas to the client
- •Identify color comps
- •Create color comps/proof of concept
- •Present color comps and proof of concept
- •Receive design approval
- •Development
- •Create all color comps
- •Communicate functionality
- •Work with templates
- •Design for easy maintenance
- •Testing
- •Deployment
- •The updating game
- •Create and provide documentation and style guides
- •Provide client training
- •Learn about your client’s methods
- •Work the Process
- •Code Wars
- •Table Talk
- •XHTML Marks the Spot
- •Minding Your <p>’s and q’s
- •Looking Ahead
- •Getting Started
- •View Source
- •A Netscape Bonus
- •The Mother of All View Source Tricks
- •Doin’ it in Netscape
- •Doin’ it in Internet Explorer
- •Absolutely Speaking, It’s All Relative
- •What Is Good Markup?
- •What Is Sensible Markup?
- •HTML as a Design Tool
- •The Frames of Hazard
- •Please Frame Safely
- •Framing Your Art
- •<META> <META> Hiney Ho!
- •Search Me
- •Take a (Re)Load Off
- •WYSIWYG, My Aunt Moira’s Left Foot
- •Code of Dishonor
- •WYS Is Not Necessarily WYG
- •Publish That Sucker!
- •HTMHell
- •9 Visual Tools
- •Photoshop Basics: An Overview
- •Comp Preparation
- •Dealing with Color Palettes
- •Exporting to Web-Friendly Formats
- •Gamma Compensation
- •Preparing Typography
- •Slicing and Dicing
- •Rollovers (Image Swapping)
- •GIF Animation
- •Create Seamless Background Patterns (Tiles)
- •Color My Web: Romancing the Cube
- •Dither Me This
- •Death of the Web-Safe Color Palette?
- •A Hex on Both Your Houses
- •Was Blind, but Now I See
- •From Theory to Practice
- •Format This: GIFs, JPEGs, and Such
- •Loves logos, typography, and long walks in the woods
- •GIFs in Photoshop
- •JPEG, the Other White Meat
- •Optimizing GIFs and JPEGs
- •Expanding on Compression
- •Make your JPEGS smaller
- •Combining sharp and blurry
- •Animated GIFs
- •Creating Animations in ImageReady
- •Typography
- •The ABCs of Web Type
- •Anti-Aliasing
- •Specifying Anti-Aliasing for Type
- •General tips
- •General Hints on Type
- •The Sans of Time
- •Space Patrol
- •Lest We Fail to Repeat Ourselves
- •Accessibility, Thy Name Is Text
- •Slicing and Dicing
- •Thinking Semantically
- •Tag Soup and Crackers
- •CSS to the Rescue…Sort of
- •Separation of Style from Content
- •CSS Advantages: Short Term
- •CSS Advantages: Long Term
- •Compatibility Problems: An Overview
- •Working with Style Sheets
- •Types of Style Sheets
- •External style sheets
- •Embedding a style sheet
- •Adding styles inline
- •Fear of Style Sheets: CSS and Layout
- •Fear of Style Sheets: CSS and Typography
- •Promise and performance
- •Font Size Challenges
- •Points of contention
- •Point of no return: browsers of the year 2000
- •Absolute size keywords
- •Relative keywords
- •Length units
- •Percentage units
- •Looking Forward
- •11 The Joy of JavaScript
- •What Is This Thing Called JavaScript?
- •The Web Before JavaScript
- •JavaScript, Yesterday and Today
- •Sounds Great, but I’m an Artist. Do I Really Have to Learn This Stuff?
- •Educating Rita About JavaScript
- •Don’t Panic!
- •JavaScript Basics for Web Designers
- •The Dreaded Text Rollover
- •The Event Handler Horizon
- •Status Quo
- •A Cautionary Note
- •Kids, Try This at Home
- •The Not-So-Fine Print
- •The Ever-Popular Image Rollover
- •A Rollover Script from Project Cool
- •Windows on the World
- •Get Your <HEAD> Together
- •Avoiding the Heartbreak of Linkitis
- •Browser Compensation
- •JavaScript to the Rescue!
- •Location, location, location
- •Watching the Detection
- •Going Global with JavaScript
- •Learning More
- •12 Beyond Text/Pictures
- •You Can Never Be Too Rich Media
- •Server-Side Stuff
- •Where were you in ‘82?
- •Indiana Jones and the template of doom
- •Serving the project
- •Doing More
- •Mini-Case Study: Waferbaby.com
- •Any Size Kid Can Play
- •Take a Walk on the Server Side
- •Are You Being Served?
- •Advantages of SSI
- •Disadvantages of SSI
- •Cookin’ with Java
- •Ghost in the Virtual Machine
- •Java Woes
- •Java Woes: The Politically Correct Version
- •Java Joys
- •Rich Media: Exploding the “Page”
- •Virtual Reality Modeling Language (VRML)
- •SVG and SMIL
- •SMIL (through your fear and sorrow)
- •Romancing the logo
- •Sounds dandy, but will it work?
- •Promises, Promises
- •Turn on, Tune in, Plug-in
- •A Hideous Breach of Reality
- •The ubiquity of plug-ins
- •The Impossible Lightness of Plug-ins
- •Plug-ins Most Likely to Succeed
- •Making It Work: Providing Options
- •The “Automagic Redirect”
- •The iron-plated sound console from Hell
- •The Trouble with Plug-ins
- •If Plug-ins Run Free
- •Parting Sermon
- •13 Never Can Say Goodbye
- •Separation Anxiety
- •A List Apart
- •Astounding Websites
- •The Babble List
- •Dreamless
- •Evolt
- •Redcricket
- •Webdesign-l
- •When All Else Fails
- •Design, Programming, Content
- •The Big Kahunas
- •Beauty and Inspiration
- •Index
Taking Your Talent to the Web |
381 |
Before we close this fascinating portion of our narrative, we must add one more reason to specify the player via the <pluginspage> attribute: If you don’t, the browser will choose one for you, often with hideous results. Read on.
The iron-plated sound console from Hell
Right up through its 4.0 browser, Netscape used to respond to WAV, AIFF, AU, and other traditional sound file formats by sprouting an ugly little console. But the console did not simply leap up and start playing. Oh, no. Nor was the console actually part of Netscape’s browser, even though it was the default player. For reasons we can only guess at, Netscape chose Java as the foundation for the console.
When you encountered a site that contained a sound, the page would stop loading, and the browser would seem to freeze. In the status bar, the dreaded words “Starting Java…” would appear. After a Vietnam-like eternity, the ugly console would at last pop up and blast the stupid sound.
Now, suppose you did not feel like waiting for this mockery of a sham to run its course. Suppose you attempted to close the browser window or navigate to a previously visited site via the Back button. What would happen then? The browser would crash, of course.
If most people did not detest embedded sound files to begin with, this tragicomic exercise in non-user-centric design certainly encouraged them to think of embedded sounds as one of Satan’s more diabolical efforts.
THE TROUBLE WITH PLUG-INS
While providing the visitor with linkage to the appropriate plug-ins page is certainly a friendlier gesture than simply abandoning her to chance, most professionals try to go one step further. They try to hide all the technological complexity from their users. Even something as simple as navigating to a plug-ins page can confuse and frustrate some users.
382 HOW: Beyond Text/Pictures: The Trouble with Plug-ins
To work around this, most developers step in at this point and write a plugin detection script. The theory is simple: If the user has the plug-in, the embedded content plays. If the user lacks the plug-in, some alternative is provided (perhaps something as simple as text). The user is never made to feel inadequate, never made aware that she might be missing something.
It’s a beautiful plan, but as we mentioned in the JavaScript chapter, it has often broken down because plug-in detection is not universally supported.
Netscape, having created JavaScript, has always used it in the browser to detect the presence or absence of plug-ins. Let’s take the Flash plug-in for argument’s sake. If the plug-in is not detected, the visitor might be taken to a page that explains that the site uses Flash and offers her the opportunity to download the plug-in from Macromedia.com, as previously described in “The ‘Automagic Redirect.'”
Because JavaScript was not originally a standard technology, Microsoft’s Internet Explorer had to rely on another technique. Prior to IE5, Microsoft used IE-only ActiveX technology to handle plug-in detection.
Before writing plug-in detection scripts, developers had to write browser detection scripts. If the browser was Netscape’s, the JavaScript plug-in detection script ran. If the browser was IE, ActiveX plug-in detection was triggered (and if the plug-in was missing, ActiveX would supply it).
None of this worked on the Macintosh version of Explorer, whose users generally ended up in a hellish loop of nonfunctioning technology and selfcontradictory error messages. This cruel stupidity should not be blamed on the Macintosh Operating System, nor on developers who toiled long and hard to work around browser deficiencies.
IE now supports JavaScript on both the Windows and Macintosh platforms. As users upgrade to new versions of these browsers, these incompatibility problems should become a distant memory.
Yet software developers still sometimes confuse Netscape’s proprietary JavaScript APIs with standard JavaScript. That’s why two plug-ins mentioned earlier in this chapter (Adobe’s SVG plug-in and Thomas Dolby’s Beatnik plug-in) don’t work properly with IE5/Mac.
Taking Your Talent to the Web |
383 |
And web designers who don’t keep track of the ever-changing browser compatibility scene still make silly mistakes, particularly where IE5/Mac is concerned. For instance, even though IE5/Mac handles plug-in detection
flawlessly, many Flash sites, when they detect the presence of IE on a Mac, refuse to let the user proceed until she has switched to Netscape’s browser. This makes no sense, but it happens all the time.
We fear we are beginning to lose some of you in the back row. Snap out of it. We’re almost done, honest.
If Plug-ins Run Free
Earlier we promised to answer a simple question: Why don’t companies that make plug-ins charge web users to download them? After all, Extensis makes a bundle from its fine Quark and Photoshop plug-ins. Are the makers of the most popular plug-ins (Macromedia, Apple, Real, and Microsoft) simply beautiful altruists who want to teach the world to sing and don’t desire a penny for their efforts?
That was, of course, a rhetorical question.
Companies distribute their plug-ins at no cost because the value of these products is commensurate with their distribution. Put simply, a plug-in that is on 100 million desktops is vastly more valuable than one that is on a million. How do you encourage a person to try something? Let them have it for free.
Indeed, as we’ll see in a moment, companies not only gave stuff away free, they paid other companies to promote their free stuff. Never have so many spent so much to earn so little. (Excluding the browser wars themselves, of course. Those cost even more and made even less.)
Okay, so as a result of giving all this good stuff away for free, Macromedia, Apple, Real, and Microsoft have achieved what they sought: nearly everybody uses their plug-ins. So how do these companies recoup their investment and hopefully even squeeze out a profit?
They do it by creating and selling authoring tools. Web designers buy
Macromedia Flash. Web producers buy Real Producer and professional
QuickTime authoring suites.