Best Practice: Use native form elements whenever possible

I just wrote the following for our marketing team to understand why we recommend not styling forms. If you have any feedback, I would love to hear it in the comments section!

Our recommendation is that only minimal styling be applied to form elements. When possible, using the native form elements is the most accessible solution. When we do apply styles, we should make sure that it degrades gracefully, and doesn’t cause problems in older browsers. Clients need to understand that making forms look identical across all browsers is NOT possible. This is a limitation inherent to the browsers themselves. (see the further reading below, in particular, Eric Meyer’s post.)

In the past, we have tried to promise cross-browser styling, such as by using the Uniform jQuery library, and have found, without exception, that this adds a dramatic amount of time to the front-end development of the site, due to the difficulties of forcing styles onto elements that weren’t built to support those styles. If a client insists on heavy form styles, we should make sure to charge an appropriate amount to cover the increased development and QA time.

Some things are relatively easy to style, such as plain text inputs and submit buttons. Other things, such as drop-down menus, radio buttons, or file select inputs, are nearly impossible to style. Since we can’t say for sure what works and what doesn’t, we’re left with a fairly vague recommendation to use “minimal styling” on form elements. In practice, this translates to borders, padding, and background colors on text inputs, though even these will look somewhat different across browsers. We can also do pretty much anything to submit buttons, because we can replace them with images — though again, there are difficulties, and the native buttons are more accessible and recognizable.

Further Reading:

Bugzilla’s Reset Password Page Sucks

Bugzilla's Reset Password Screen

Frequently, my coworkers will forget their Bugzilla passwords. They come to me, because I manage it, and I always send them to the reset password page. Inevitably, they come back a few minutes later and tell me that it didn’t work, and I just reset their passwords by hand. Well, I finally figured out the problem. Take a look at this screenshot and see if you can spot the problem. Remember that they’ve gotten to this page by clicking on a link that says “Reset Your Password.”

In case it’s not obvious, here’s a screenshot with the reset password form highlighted:

Bugzilla's Reset Password Screen Highlighted

Yes, that’s right, when you click on “Reset Your Password,” you’re taken to a page where the first and clearest call to action is a login form! Hidden beneath it is the actual form, but no one ever sees it. Seriously, Bugzilla, I love you guys, but hire a UI designer, please.

Note: This was originally posted on my work blog, and I’m re-posting it here for archival purposes.

An Event Apart San Francisco 2008

Columbus Tower

I’ve managed to attend An Event Apart every year so far, and this year was particularly exciting because the nearest location was in San Francisco. I went to Seattle the last two times, which was fine, but I know Seattle pretty well, so the opportunity to play tourist in a new city was very appealing to me. Luckily, my coworker Libby was coming with me, and she used to work in “the City” so I had the advantage of a guide.

Continue reading

Selling Web Standards is Hard

I recently had a fascinating conversation with our VP of Client Services. Long story short, I learned that selling web standards is difficult, because many of the benefits it offers are “soft.” For instance, if we tell a client that the extra money we charged them to upgrade their site to web standards will make future updates easier, the Client Services team is afraid the client will come back and say that we should charge them less for updates.

For a standards zealot like myself, this was hard to hear. Like most deciples of Zeldman, when someone asks me why we should use web standards for a site, I go back to the CSS talking points in this article from A List Apart. First, web standards mean dramatically improved accessibility, even degrading gracefully in older browsers that don’t support CSS. Secondly, standards-compliant sites tend to be cheaper to produce and maintain when compared to older table-based layouts, and finally, standards mean that a site is “future-proof” because they will be much easier to maintain and update as time passes and coding standards continue to change.

Continue reading