SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
Like any other software system, Web sites gradually accumulate “cruft” over time. They slow down. Links break. Security and compatibility problems mysteriously appear. New features don’t integrate seamlessly. Things just don’t work as well. In an ideal world, you’d rebuild from scratch. But you can’t: there’s no time or money for that. Fortunately, there’s a solution: You can refactor your Web code using easy, proven techniques, tools, and recipes adapted from the world of software development.
In Refactoring HTML, Elliotte Rusty Harold explains how to use refactoring to improve virtually any Web site or application. Writing for programmers and non-programmers alike, Harold shows how to refactor for better reliability, performance, usability, security, accessibility, compatibility, and even search engine placement. Step by step, he shows how to migrate obsolete code to today’s stable Web standards, including XHTML, CSS, and REST—and eliminate chronic problems like presentation-based markup, stateful applications, and “tag soup.”
The book’s extensive catalog of detailed refactorings and practical “recipes for success” are organized to help you find specific solutions fast, and get maximum benefit for minimum effort. Using this book, you can quickly improve site performance now—and make your site far easier to enhance, maintain, and scale for years to come.
Topics covered include
• Recognizing the “smells” of Web code that should be refactored
• Transforming old HTML into well-formed, valid XHTML, one step at a time
• Modernizing existing layouts with CSS
• Updating old Web applications: replacing POST with GET, replacing old contact forms, and refactoring JavaScript
• Systematically refactoring content and links
• Restructuring sites without changing the URLs your users rely upon
This book will be an indispensable resource for Web designers, developers, project managers, and anyone who maintains or updates existing sites. It will be especially helpful to Web professionals who learned HTML years ago, and want to refresh their knowledge with today’s standards-compliant best practices.
This book will be an indispensable resource for Web designers, developers, project managers, and anyone who maintains or updates existing sites. It will be especially helpful to Web professionals who learned HTML years ago, and want to refresh their knowledge with today’s standards-compliant best practices.
How to Assure a Well-Formed Website
Foreword by Martin Fowler xvii
Foreword by Bob DuCharme xix
About the Author xxi
Chapter 1 Refactoring 1
Why Refactor 3
When to Refactor 11
What to Refactor To 13
Objections to Refactoring 23
Chapter 2 Tools 25
Backups, Staging Servers, and Source Code Control 25
Validators 27
Testing 34
Regular Expressions 48
Tidy 54
TagSoup 60
XSLT 62
Chapter 3 Well-Formedness 65
What Is Well-Formedness? 66
Change Name to Lowercase 69
Quote Attribute Value 73
Fill In Omitted Attribute Value 76
Replace Empty Tag with Empty-Element Tag 78
Add End-tag 81
Remove Overlap 85
Convert Text to UTF-8 89
Escape Less-Than Sign 91
Escape Ampersand 93
Escape Quotation Marks in Attribute Values 96
Introduce an XHTML DOCTYPE Declaration 98
Terminate Each Entity Reference 101
Replace Imaginary Entity References 102
Introduce a Root Element 103
Introduce the XHTML Namespace 104
Chapter 4 Validity 107
Introduce a Transitional DOCTYPE Declaration 109
Remove All Nonexistent Tags 111
Add an alt Attribute 114
Replace embed with object 117
Introduce a Strict DOCTYPE Declaration 123
Replace center with CSS 124
Replace font with CSS 127
Replace i with em or CSS 131
Replace b with strong or CSS 134
Replace the color Attribute with CSS 136
Convert img Attributes to CSS 140
Replace applet with object 142
Replace Presentational Elements with CSS 146
Nest Inline Elements inside Block Elements 149
Chapter 5 Layout 155
Replace Table Layouts 156
Replace Frames with CSS Positions 170
Move Content to the Front 180
Mark Up Lists as Lists 184
Replace blockquote/ul Indentation with CSS 187
Replace Spacer GIFs 189
Add an ID Attribute 191
Add Width and Height to an Image 195
Chapter 6 Accessibility 199
Convert Images to Text 202
Add Labels to Form Input 206
Introduce Standard Field Names 210
Turn on Autocomplete 216
Add Tab Indexes to Forms 218
Introduce Skip Navigation 222
Add Internal Headings 225
Move Unique Content to the Front of Links and Headlines 226
Make the Input Field Bigger 228
Introduce Table Descriptions 230
Introduce Acronym Elements 235
Introduce lang Attributes 236
Chapter 7 Web Applications 241
Replace Unsafe GET with POST 241
Replace Safe POST with GET 246
Redirect POST to GET 251
Enable Caching 254
Prevent Caching 258
Introduce ETag 261
Replace Flash with HTML 265
Add Web Forms 2.0 Types 270
Replace Contact Forms with mailto Links 277
Block Robots 280
Escape User Input 284
Chapter 8 Content 287
Correct Spelling 287
Repair Broken Links 292
Move a Page 298
Remove the Entry Page 302
Hide E-mail Addresses 304
Appendix A Regular Expressions 309
Characters That Match Themselves 309
Metacharacters 311
Wildcards 312
Quantifiers 313
Index 327