Contents

Foreword

Introduction

Chapter 1: Designing Experiences for People

Smart Code, Dumb Phones

When the Web Was Young

Technology vs. Experience

You Can’t Please Everyone

Support the Past, Optimize for the Future

Serving More for Less

Universal Accessibility

Thinking in Layers

This Is a Philosophy

Chapter 2: Content Is the Foundation

Avoid Zombie Copy

Design Meaningful Content

Craft the Conversation

Plan for the Unknown

Write for Real People

Consider Content Beyond Copy

Keep Data Entry Conversational

Don’t Fill Space

Let Content Lead the Way

Chapter 3: Markup Is an Enhancement

Learn from the Past

Illuminate Your Content

Mean What You Say

Embrace Classification and Identification

Make Deliberate Markup Choices

Clarify Interfaces with ARIA

Understand Fault Tolerance

Markup Conveys Meaning

Chapter 4: Visual Design Is an Enhancement

Design Systems, Not Pages

Don’t Design Yourself Into a Corner

Understand How CSS Works

Start Small and Be Responsive

Focus on Standards

Design Defensively

Hide Content Responsibly

The Flip Side: Generated Content

Consider the Experience with Alternate Media and Inputs

Embrace Default Styles

Embrace the Continuum

Chapter 5: Interaction Is an Enhancement

Get Familiar with Potential Issues So You Can Avoid Them

Design a Baseline

Program Defensively

Establish Minimum Requirements for Enhancement

Cut Your Losses

Build What You Need

Describe What’s Going On

Write Code That Takes Declarative Instruction

Adapt the Interface

Apply No Styles Before Their Time

Enhance on Demand

Look Beyond the Mouse

Don’t Depend on the Network

Wield Your Power Wisely

Chapter 6: Crafting a Continuum

Map the Experience

Learn From the Past, Look to the Future

Be Ready for Anything

Progressive Enhancement Checklist

Content

Markup

Design

Interaction

Further Reading

Index