A List Apart

Menu

Author

Image of Aaron Gustafson

Aaron Gustafson

As would be expected from a former manager of the Web Standards Project, Aaron Gustafson is passionate about web standards and accessibility. He has been working on the web for nearly two decades and recently joined Microsoft as a web standards advocate to work closely with their browser team. He writes about whatever’s on his mind at aaron-gustafson.com.

Also from this author

  • Interaction Is an Enhancement

    The web has an endless supply of single-point-of-failure horror stories, where sites serve up blank and blocked pages to dumbstruck users. But the fault is not with JavaScript and other technologies—it’s with how we use them, banking on them alone instead of diversifying how we deliver our experiences. In this excerpt from Chapter 5 of Adaptive Web Design, Second Edition, Aaron Gustafson explains why understanding and working within limitations is the key to building resilient websites.

  • Now You See Me

    Showing and hiding content using JavaScript-based page manipulations for tabbed interfaces, collapsible elements, and accordion widgets is a common development pattern. Learn how your choice of hiding mechanism can influence content accessibility in assistive technologies like screen readers in an excerpt from Adaptive Web Design.

  • Stop Forking with CSS3

    You may remember when JavaScript was a dark art. It earned that reputation because, in order to do anything with even the teensiest bit of cross-browser consistency, you had to fork your code for various versions of Netscape and IE. Today, thanks to web standards advocacy and diligent JavaScript library authors, our code is relatively fork-free. Alas, in our rush to use some of the features available in CSS3, we’ve fallen off the wagon. Enter Aaron Gustafson’s eCSStender, a JavaScript library that lets you use CSS3 properties and selectors while keeping your code fork- and hack-free.

  • Progressive Enhancement with JavaScript

    Our introductory series on progressive enhancement and the ways it can be implemented concludes with a look at the mindset needed to implement PE in JavaScript, and a survey of best practices for doing so.

  • Progressive Enhancement with CSS

    Organize multiple style sheets to simplify the creation of environmentally appropriate visual experiences. Support older browsers while keeping your CSS hack-free. Use generated content to provide visual enhancements, and seize the power of advanced selectors to create wondrous (or amusing) effects. Part two of a series.

  • Understanding Progressive Enhancement

    Steven Champeon turned web development upside down, and created an instant best practice of standards-based design, when he introduced the notion of designing for content and experience instead of browsers. In part one of a series, ALA’s Gustafson refreshes us on the principles of progressive enhancement. Upcoming installments will translate the philosophy into sophisticated, future-focused design and code.

  • Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8

    For seven years, the DOCTYPE switch has stood designers and developers in good stead as a toggle between standards mode and quirks mode. But when IE7, with its greatly improved support for standards, “broke the web,” it revealed the flaw in our toggle. The quest was on to find a more reliable ensurer of forward compatibility. Is version targeting the answer?

  • If I Told You You Had a Beautiful Figure…

    Laying out images consistently within a design is difficult, especially when you hand the keys over to someone else to fill in the content. ALA Staffer Aaron Gustafson demonstrates how a little clever JavaScript goes a long way toward resolving inconsistencies in image layout.

  • Ruining the User Experience

    Anticipating your users’ needs is the key to making a good impression; it’s the little things that matter most. ALA technical editor Aaron Gustafson explains why progressive enhancement means good service.

  • Getting Started with Ajax

    In this excerpt from O’Reilly’s Web Design in a Nutshell, 3rd Edition, ALA’s production editor would like to take you aside for a little chat about the birds and the bees. Or maybe about Ajax.

  • Improving Link Display for Print

    Some time ago, Eric Meyer showed you how to add URIs to the printed version of your pages using print styles. Sometimes, though, too many inline URIs can make pages hard to read. Aaron Gustafson comes to the rescue with a JavaScript add-on that’ll have you loving your linkage again.

  • Let Them Eat Cake

    A growing debate pits accessibility against usability. From our point of view, it’s like pitting peanut butter against jelly. This article helps you create a page that is both usable and accessible, saving readers the trouble of scrolling with a little help from JavaScript and the Document Object Model.

Browse Authors

  1. Ida Aalen
  2. Senongo Akpem
  3. Amin Al Hazwani
  4. Lea Alcantara
  5. Dean Allen
  6. John Allsopp
  7. Pär Almqvist
  8. Joe Alterio
  9. Brian Alvey
  10. Stephen Anderson
  11. Rachel Andrew
  12. Jake Archibald
  13. Chris Armstrong
  14. Lance Arthur
  15. Faruk Ateş
  16. Peter Balogh
  17. Artas Bartas
  18. Jennifer Bassett
  19. Johanna Bates
  20. Tim Baxter
  21. Dan Benjamin
  22. Scott Berkun
  23. David Berlow
  24. Tobias Bernard
  25. Mark Bernstein
  26. Carrie Bickner
  27. Kate Bingaman-Burt
  28. Mark Birbeck
  29. Alex Bischoff
  30. Niklas Bivald
  31. Margot Bloomstein
  32. Jason Blumer
  33. Nate Bolt
  34. Jina Bolton
  35. Scott Boms
  36. Bert Bos
  37. Maurizio Boscarol
  38. Mark Boulton
  39. Clarice Bouwer
  40. Cennydd Bowles
  41. Douglas Bowman
  42. Wayne Bremser
  43. Harry Brignull
  44. Ryan Brill
  45. Mike Brittain
  46. Mandy Brown
  47. Tim Brown
  48. Sunni Brown
  49. Tiffany B. Brown
  50. Dan Brown
  51. Marlene Bruce
  52. Laura Brunow Miner
  53. Carlos Bueno
  54. Jory Burson
  55. Paul Burton
  56. Jim Byrne
  57. Marcos Caceres
  58. Jeffery Callender
  59. Lachlan Cannon
  60. Michael Cardenas
  61. Norm Carr
  62. Ryan Carson
  63. Lawrence Carvalho
  64. Meghan Casey
  65. Elizabeth Castro
  66. Dan Cederholm
  67. Tantek Celik
  68. Steve Champeon
  69. Caio Chassot
  70. Hui Jing Chen
  71. Jack Cheng
  72. Kevin Cheng
  73. Dana Chisnell
  74. James Christie
  75. Patrick Clancey
  76. Joe Clark
  77. Chris Clark
  78. Josh Clark
  79. Andrew Clarke
  80. Josh Cleland
  81. Curt Cloninger
  82. Geri Coady
  83. Scott Jason Cohen
  84. Michael Cohen
  85. Georgy Cohen
  86. Anthony Colangelo
  87. Brad Colbow
  88. Simon Collison
  89. Angela Colter
  90. Marie Connelly
  91. Craig Cook
  92. Patrick Cooney
  93. Joscelin Cooper
  94. Stacey Cordoni
  95. Kevin Cornell
  96. Amanda Costello
  97. Jim Coudal
  98. Abby Covert
  99. Nick Cox
  100. Chris Coyier
  101. Brian Crescimanno
  102. Jeff Croft
  103. Shaun Crowley
  104. Nathan Curtis
  105. Liz Danzico
  106. Anil Dash
  107. Justin Dauer
  108. Glenn Davis
  109. Anna Debenham
  110. David Demaree
  111. Meg Dickey-Kurdziolek
  112. Shane Diffily
  113. Geoff DiMasi
  114. Nick Disabato
  115. Hannah Donovan
  116. Nandini Doreswamy
  117. Rory Douglas
  118. Dmitry Dragilev
  119. Jarrod Drysdale
  120. Seth Duffey
  121. Colin Eagan
  122. Jeff Eaton
  123. James Edwards
  124. J. David Eisenberg
  125. James Ellis
  126. Jessica Enders
  127. Bjørn Enki
  128. Elika Etemad
  129. Felicity Evans
  130. Garin Evans
  131. Meryl K. Evans
  132. Christopher Fahey
  133. Todd Fahrner
  134. Dug Falby
  135. Derek Featherstone
  136. Scott Fennell
  137. Andrew Fernandez
  138. John Ferrara
  139. Daniel Ferro
  140. Alex Feyerke
  141. Nick Finck
  142. Richard Fink
  143. Detlev Fischer
  144. Jonathan Follett
  145. Shoshannah L. Forbes
  146. Nathan Ford
  147. Clinton Forry
  148. Jack Franklin
  149. Dean Frickey
  150. Daniel M. Frommelt
  151. Brad Frost
  152. Lyza Gardner
  153. Steven Garrity
  154. Peter Gasston
  155. Janice Gervais
  156. Anne Gibson
  157. John Gladding
  158. Porter Glendinning
  159. Kevin Goldman
  160. Brian Goldman
  161. Devan Goldstein
  162. Aimee Gonzalez-Cameron
  163. Jeff Gothelf
  164. R. Stephen Gracey
  165. Dave Gray
  166. Adam Greenfield
  167. Brandon Gregory
  168. Matt Griffin
  169. Patrick Griffiths
  170. Jason Grigsby
  171. Andrew Grimes
  172. John M. Grohol
  173. Tobias Günther
  174. Aaron Gustafson
  175. Andy Hagans
  176. Young Hahn
  177. Erika Hall
  178. Kristina Halvorson
  179. Naz Hamid
  180. Jessica Harllee
  181. Cyd Harrell
  182. Matthew Haughey
  183. Stephen Hay
  184. Steph Hay
  185. Julia Hayden
  186. Dominique Hazaël-Massieux
  187. Val Head
  188. Christian Heilmann
  189. Hal Helms
  190. Ben Henick
  191. Alan Herrell
  192. Graham Herrli
  193. Lisa Herrod
  194. Whitney Hess
  195. Perry Hewitt
  196. Jenny Lam / Hillel Cooperman
  197. David Hillis
  198. Andrew Hinton
  199. Tingan Ho
  200. Craig Hockenberry
  201. Robert Hoekman Jr.
  202. Andrew Hoffman
  203. Kevin M. Hoffman
  204. Lara Hogan
  205. Emma Jane Hogbin Westby
  206. Anthony Holdener
  207. Ryan Holsten
  208. Molly E. Holzschlag
  209. Sara Horton
  210. Byron Houwens
  211. Ross Howard
  212. Greg Hoy
  213. Belinda Hulin
  214. Bill Humphries
  215. Lachlan Hunt
  216. Mark Huot
  217. Ryan Irelan
  218. Makiko Itoh
  219. Ida Jackson
  220. Charlotte Jackson
  221. Denise Jacobs
  222. Bob Jacobson
  223. Troy Janisch
  224. Scott Jehl
  225. Neil Jenkins
  226. Leslie Jensen-Inman
  227. L. Michelle Johnson
  228. Andrew Johnson
  229. Bronwyn Jones
  230. Glenn Jones
  231. Colleen Jones
  232. Natalie Jost
  233. Jonathan Kahn
  234. Laura Kalbag
  235. Chris Kaminski
  236. Harvey Kane
  237. Avinash Kaushik
  238. Jeremy Keith
  239. Scott Kellum
  240. Sally Kerrigan
  241. Alla Kholmatova
  242. Kate Kiefer Lee
  243. Crawford Kilian
  244. Andrew Kirkpatrick
  245. Greg Kise
  246. Erin Kissane
  247. Martin Kliehm
  248. Breandán Knowlton
  249. Thierry Koblentz
  250. Peter-Paul Koch
  251. Cameron Koczon
  252. Michelle Kondou
  253. Mattias Konradsson
  254. Jordan Koschei
  255. Nishant Kothary
  256. Jason Kottke
  257. Katie Kovalcin
  258. Scott Kramer
  259. Una Kravets
  260. Michael Krisher
  261. Eric Krock
  262. Andrew Kuhar
  263. Olivier Lacan
  264. Keith LaFerriere
  265. wk lang
  266. Wren Lanier
  267. Simon St. Laurent
  268. Art Lawry
  269. Kristofer Layon
  270. Tina Lee
  271. Sharon Lee
  272. Antoine Lefeuvre
  273. Jeff Lembeck
  274. Inayaili León, de
  275. Debra Levin Gelman
  276. Matthew Levine
  277. Donna Lichaw
  278. Håkon Wium Lie
  279. Colin Lieberman
  280. Dave Linabury
  281. Margit Link-Rodrigue
  282. Caren Litherland
  283. Mark Llobrera
  284. Ian Lloyd
  285. Paul Lloyd
  286. Sue Lockwood
  287. Michael Lopp
  288. Rachel Lovinger
  289. Michael Lovitt
  290. Daniel Ludwin
  291. Jenn Lukas
  292. Erin Lynch
  293. Patrick Lynch
  294. Kelsey Lynn Lundberg
  295. Chris MacGregor
  296. Jeffrey MacIntyre
  297. Dougal MacPherson
  298. Søren Madsen
  299. Dennis A. Mahoney
  300. Dan Mall
  301. Rosie Manning
  302. Ethan Marcotte
  303. Matty Mariansky
  304. Mat Marquis
  305. Samuel Marshall
  306. Lisa Maria Martin
  307. John Martz
  308. Mehdi Maujood
  309. Cassie McDaniel
  310. Justin McDowell
  311. Gerry McGovern
  312. Karen McGrane
  313. Randall Snare and Elizabeth McGuane
  314. Nellie McKesson
  315. Drew McLellan
  316. Mica McPheeters
  317. Pete McVicar
  318. Timothy Meaney
  319. Garann Means
  320. Shawn Medero
  321. Tim Meehan
  322. Aaron Mentele
  323. Erika Meyer
  324. Eric Meyer
  325. Justin Mezzell
  326. Bojan Mihelac
  327. Robert Miller
  328. Robin (roblimo) Miller
  329. David F. Miller
  330. Chris Mills
  331. Wilson Miner
  332. Craig Mod
  333. Cameron Moll
  334. Mike Monteiro
  335. Peter Morville
  336. Trenton Moss
  337. Alice Mottola
  338. Lee Moyer
  339. Lyle Mullican
  340. Rebecca Murphey
  341. Brendan Murray
  342. Timothy Murtaugh
  343. Rachel Nabors
  344. Sarah B. Nelson
  345. Mark Newhouse
  346. Jorunn D. Newth
  347. Paul Novitski
  348. Matthew O'Neill
  349. George Oates
  350. Brandon Oelling
  351. Brandon Olejniczak
  352. George Olsen
  353. Ross Olson
  354. Mark Otto
  355. Nick Padmore
  356. Sarah Parmenter
  357. Rick Pastoor
  358. Dana Pavlichko
  359. Alan Pearce
  360. Jason Pearce
  361. Shane Pearlman
  362. Ross Penman
  363. Nathan Peretic
  364. Yesenia Perez-Cruz
  365. Dorian Peters
  366. Veronica Picciafuoco
  367. Mike Pick
  368. Jack Pickard
  369. Heydon Pickering
  370. Andy Polaine
  371. Christophe Porteneuve
  372. Joshua Porter
  373. Eric Portis
  374. Kevin Potts
  375. Derek Powazek
  376. Shelley Powers
  377. Till Quack
  378. Whitney Quesenbery
  379. Peter Quinsey
  380. Jim Ramsey
  381. Aza Raskin
  382. Eleanor Ratliff
  383. Jim Ray
  384. Our Gentle Readers
  385. Aaron Rester
  386. Sam Richard
  387. Stephanie Rieger
  388. Nick Rigby
  389. Matt Riggott
  390. Daniel Ritzenthaler
  391. Christopher Robbins
  392. Stuart Robertson
  393. Susan Robertson
  394. Rich Robinson
  395. D. Keith Robinson
  396. Jason Rodriguez
  397. Marco Rogers
  398. Mike Rohde
  399. Pepi Ronalds
  400. Stewart Rosenberger
  401. Lou Rosenfeld
  402. Chris Ross-Gill
  403. Dave Rupert
  404. Andy Rutledge
  405. Richard Rutter
  406. Joseph Ryan
  407. Gian Sampson-Wild
  408. Jason Santa Maria
  409. Cédric Savarese
  410. Sbritt
  411. Suzanne Scacca
  412. Hana Schank
  413. Alex Schmidt
  414. Christopher Schmitt
  415. Adam Schumacher
  416. Erin Scime
  417. Paul Sciortino
  418. Thomas Scott
  419. Ryan Seddon
  420. Jana Sedivy
  421. Tomer Sharon
  422. Remy Sharp
  423. Al Shaw
  424. Dave Shea
  425. Peter K Sheerin
  426. Robbie Shepherd
  427. Eric Shepherd
  428. Sophie Shepherd
  429. Nick Sherman
  430. David Sherwin
  431. Jeremiah Shoaf
  432. Daniel Short
  433. Orr Shtuhl
  434. Kim Siever
  435. Amber Simmons
  436. Neha Singh
  437. Kendra Skeene
  438. Michael Slater
  439. David Sleight
  440. Kristin Smaby
  441. Jonathan Smiley
  442. Paul Smith
  443. Tim Smith
  444. Jonathan Snook
  445. Eric Sol
  446. Sara Soueidan
  447. Paul Sowden
  448. ALA Staff
  449. Ruth Stalker-Firth
  450. Russ Starke
  451. Alan Stearns
  452. Hallvord R.M. Steen
  453. Joe Di Stefano
  454. Bob Stein
  455. Krista Stevens
  456. Walter Stevenson
  457. Noah Stokes
  458. Elliot Stokes
  459. Greg Storey
  460. Brian Suda
  461. Rob Swan
  462. Allen Tan
  463. Tyler Tate
  464. Olivier Thereaux
  465. Drew Thomas
  466. Yael Tolub
  467. Emmanuel King Turner
  468. Dan Turner
  469. Russ Unger
  470. Nick Usborne
  471. Santiago Valdarrama
  472. Marc van den Dobbelsteen
  473. Rian van der Merwe
  474. Bobby van der Sluis
  475. Roel Van Gils
  476. Jeffrey Veen
  477. David Verba
  478. Lea Verou
  479. Corey Vilhauer
  480. Sergio Villarreal
  481. Casper Voogt
  482. Sophia Voychehovski
  483. The W3C
  484. The W3C QA Group
  485. Sara Wachter-Boettcher
  486.   waferbaby
  487. Jeremy Wagner
  488. Aarron Walter
  489. Denice Warren
  490. Samantha Warren
  491. Dan Webb
  492. Eileen Webb
  493. Rose Weisburd
  494. Yoav Weiss
  495. Lisa Welchman
  496. Mike West
  497. Brian Williams
  498. Christina Wodtke
  499. Carolyn Wood
  500. Jeremy Wright
  501. Tim Wright
  502. Luke Wroblewski
  503. Mark Wyner
  504. Victor Yocco
  505. Indi Young
  506. Nicholas Zakas
  507. Jack Zeal
  508. Jeffrey Zeldman
  509. Samantha Zhang
  510. Ping Zhu