Using the HTML5 placeholder attribute

HTML5 has changed the way we build websites and online applications. It introduces lots of new features, many of which make inclusive design much more achievable.

Happily you can start making your HTML5 more inclusive with a minimum of effort. One simple way is to make your forms easier for people to complete by using the HTML5 placeholder attribute.

What is the HTML5 placeholder attribute?

The HTML5 placeholder attribute lets you provide a short hint that helps people enter the right information into a form field. The hint might be an example of the required information, or a description of the expected format.

The placeholder hint or description is displayed inside the empty form field, and is removed as soon as the field is given focus. In other words, the HTML5 placeholder attribute replaces one of the most common uses of JavaScript on the web.

How is the HTML5 placeholder attribute Applied?

You can apply the placeholder attribute to <input> fields like text, email, tel, search or URL. It can also be applied to a <textarea>.

<label for=”email”>Email address:
<input type=”email” id=”email” name=”email” placeholder=”[email protected]”/></label>

What isn’t the HTML5 placeholder attribute?

The placeholder attribute is not a replacement for a label. It’s tempting to think that it could be, especially when screen real estate is at a premium and space for a visible label is limited.

The trouble is that once the field is given focus and the placeholder text disappears, there’s nothing left to explain what kind of information should be entered. That makes things awkward for most of us, but it’s particularly challenging for people with memory difficulties because there’s no text label to remind them what information is expected.

It’s also inconvenient for keyboard users. Instead of tabbing onto a field and reading the label, they need to look ahead to read the placeholder before moving focus to the field itself. Using a placeholder without a label makes the task of completing a form counter intuitive and much harder work.

Can the HTML5 placeholder attribute be styled?

By default the placeholder text is displayed in light grey. This is to create the impression that the text is temporary and not something that has been entered by the person completing the form. It also makes it difficult to read.

It’s a good idea to style the placeholder text to give it greater visibility. Choosing a foreground color that meets the 4.5:1 contrast ratio recommended by WCAG 2.0 SC1.4.3 is a good way to do this.

The drawback is that styling for the placeholder attribute is not well supported yet. It’s necessary to use vendor specific prefixes, and even then support is limited.

input::-webkit-input-placeholder {color: ##912cee ;}

input:-moz-placeholder {color: ##912cee ;}

Can the HTML5 placeholder attribute be used now?

The HTML5 placeholder attribute is supported in recent versions of Chrome, Firefox, Opera and Safari/Webkit. It isn’t currently supported in Internet Explorer, but that should change when IE10 is released later this year.

Until the web sheds itself of all those pesky versions of Internet Explorer, it’s a good idea to use a script such as jQuery.placeholder to handle support for legacy browsers. With that in mind though, you can go right ahead and use the HTML5 placeholder attribute to make your forms easier for everyone to complete.

1 comment on “Using the HTML5 placeholder attribute”

Skip to Post a comment
  1. Comment by Bill

    What I found with making the placeholder even just a little more dark gray, is that people got confused, thinking the field was already filled in.

    I made it lighter, added brackets
    {ex. 616112345}

    Keep on with the html5 form stuff, browser vendors. Date picker yet, Moz?

Comment on this post

Will not be published

This site uses Akismet to reduce spam. Learn how your comment data is processed.