For those who want to take their placeholder text HTML to the next level, there are several accessible solutions and advanced styling options to explore.
One such solution is using the `aria-placeholder` attribute, which can be used to provide a more accessible alternative to traditional placeholder text. This attribute is particularly useful for screen readers, which can read out the placeholder text to users.
To style your placeholder text, you can use CSS to create a visually appealing and user-friendly experience. For example, you can add a font size, color, or background color to make the placeholder text stand out.
By using a combination of `aria-placeholder` and advanced CSS styling, you can create a more accessible and user-friendly placeholder text experience for all users.
A fresh viewpoint: Text Size and Color Html
Creating Input and Textarea Fields
To create input and textarea fields, you'll need to use HTML5 markup. The basic HTML5 markup for an input field and a textarea field with placeholder text is straightforward.
You might enjoy: In Html Text
Styling the placeholder text is not enough, as soon as you start typing in a field, the default browser styles will be applied to the input/textarea text.
You should style the normal input and textarea texts first, and then style the placeholders. This way, your styling will be applied consistently throughout the fields.
It's worth noting that HTML5 has introduced new features that make inclusive design more achievable, but it's also easy to use placeholder text incorrectly.
If this caught your attention, see: Html Text Styling
Style Input- and Textarea
To style input- and textarea fields, you'll want to create a HTML5 markup with a placeholder text. This can be done using the HTML5 input and textarea tags, as shown in Example 1.
You can then use CSS to style the placeholder text, but be aware that major browsers employ different patterns for styling input and textarea placeholders. This means you'll need to create separate CSS rules for each browser, as shown in Example 2.
Additional reading: Text Html Style Tag
To target all placeholders on your website, you can use the ::placeholder pseudo-element. However, if you want to target specific elements, you can use a combination of pseudo-elements and pseudo-classes, as shown in Example 2.
It's also essential to style the normal input and textarea texts, not just the placeholders. This is because the input/textarea texts will appear as soon as you start typing, and default browser styles will be applied to these texts. Always make sure to style the normal input and textarea texts first, and then style the placeholders, as shown in Example 3.
Here are some common CSS properties that can be used to style placeholders:
- color: to change the color of the placeholder text
- font-size: to change the font size of the placeholder text
- padding: to add padding to the placeholder text
- border: to add a border to the placeholder text
These properties can be used in combination to create a consistent and visually appealing design for your form elements, as shown in Example 9.
Here's an example of how to style a placeholder text using CSS:
```
::placeholder {
color: #777;
font-size: 16px;
padding: 10px;
border: 1px solid #ccc;
}
```
This code targets the placeholder text and sets its color to a shade of gray, font size to 16px, padding to 10px, and border to 1px solid #ccc.
Remember to always test your code in different browsers to ensure cross-browser compatibility, especially when using browser-specific pseudo-elements like -webkit-input-placeholder and -moz-placeholder, as shown in Example 8.
Worth a look: Text Border in Html
Browser Compatibility
Browser compatibility is a crucial aspect of styling placeholder text in HTML. Most major browsers support HTML5 placeholders, but there are limitations.
Older versions of Internet Explorer (IE9 and older) don't support placeholders at all, and older versions of Opera don't support CSS selectors for placeholders. If you want to ensure compatibility, you'll need to use multiple CSS rules to target different browsers.
The following CSS rules can be used to target various browsers: `::-webkit-input-placeholder` for WebKit, Blink, and Edge, `:-moz-placeholder` for Mozilla Firefox 4 to 18, `::-moz-placeholder` for Mozilla Firefox 19+, and `:-ms-input-placeholder` for Internet Explorer 10-11.
Here's a summary of browser support for placeholders:
Keep in mind that not all browsers support the `::placeholder` pseudo-element, so it's essential to use the alternative pseudo-elements for older browsers. This ensures consistent behavior across different browsers.
Accessibility and ARIA Support
CB Averitt has proposed two solutions to make HTML5 placeholders accessible. One solution is to use the HTML5 placeholder itself, which disappears and reappears as a bubble when the user focuses on the field.
The HTML5 placeholder solution raises the contrast of the text to meet the WCAG 2.0 minimum contrast requirement. This makes the placeholder text visible to users either as the original placeholder or as a bubble.
Programmatic labels can also be used as placeholders, displaying as a bubble when the user fills in the field or selects an option. This method avoids using placeholder values altogether.
Unfortunately, relying on both aria-describedby and placeholder text for screen reader users on Windows may not be effective, as aria-describedby often wins and placeholder text is usually lost.
You might like: Text Box in Html Form
Accessible Solution for
To make HTML5 placeholders accessible, CB Averitt proposed two solutions. Solution 1 uses the HTML5 placeholder itself to fix the problem, making the placeholder text visible as a bubble on the top right-hand area after the user brings focus to the field.
The HTML5 placeholder itself has a raised contrast level that passes the WCAG 2.0 minimum contrast requirement. This ensures that the placeholder text is always visible to the user.
In Solution 2, a programmatic label is used that appears like a placeholder. This label is visually displayed as a placeholder and is associated with the field using the for and id attributes.
The programmatic label is displayed either as a placeholder or as a bubble on the top right-hand area, similar to Solution 1.
Recommended read: Html 2
Aria Support on Form Fields
On Windows, aria-describedby wins over placeholder text for screen reader users, so it's best to rely on one or the other.
Screen reader users on Windows may not receive placeholder text, but aria-describedby can be used to provide a description of the form field.
In fact, David MacDonald advises against relying on both aria-describedby and placeholder text for screen reader users on Windows.
This is because aria-describedby takes precedence, making it the more effective choice for accessibility.
Labels and Instructions
Titles, aria-label, and placeholders cannot be considered as alternates to labels unless they are supplemented with a visual alternate of label.
The HTML5 placeholder attribute is not a substitute for the label element. It's meant to provide a brief example of the text to be entered, not a replacement for the label.
Use the label element and placeholder attribute as intended, and use CSS to ensure placeholder text has adequate color contrast. This will help prevent usability problems and issues for those with cognitive impairments.
Inconsistent support for screen readers and the fact that placeholder text is only available when the field is empty means it's not reliable as a label.
Explore further: Html Text Element
HTML Attributes and Labels
The HTML5 placeholder attribute is not a replacement for the label element. Period. The placeholder should only be used as a brief example of the text to be entered.
Using a placeholder as an input label can create usability problems and issues for those with cognitive impairments. The placeholder attribute is only shown before the user enters a value, and the short hint given in the placeholder attribute is often insufficient.
Placeholders are not Substitutes for Labels, and they should not be used as a substitute for labels. Labels are captions that inform visitors what information a particular form field is asking for.
The placeholder attribute is not a substitute for the label element, and it's not just about accessibility, but also about usability. Inconsistent support for screen readers and usability problems make placeholders a poor choice for input labels.
The default text color of placeholders varies among user agents, making customization a necessity to maintain design consistency. The solution lies in CSS, which can be used to ensure placeholder text has adequate color contrast.
The HTML5 placeholder attribute is not a substitute for the label element, and using it as one can break the user experience for a large variety of reasons.
Check this out: Html Table Text Color
Contrast and Color
The minimum contrast success criterion (1.4.3) applies to text in the page, including placeholder text, which needs to provide sufficient contrast.
You can customize the placeholder text color using CSS, specifically targeting the ::placeholder pseudo-element. However, not all browsers support this pseudo-element, so it's essential to use additional selectors like -webkit-input-placeholder and -moz-placeholder for WebKit-based and Mozilla-based browsers, respectively.
To ensure compatibility, you can use the following code to change the placeholder text color to a tasteful gray:
color: #777;
For tailored design, you can personalize the placeholder text color for particular input fields by using IDs, classes, or other CSS selectors.
Some disadvantages of using only placeholder text as the label for a form field include:
- Placeholder text does not have sufficient color contrast.
- Placeholder text disappears when a text box receives focus.
- Users may think that the text field is populated and may skip the text field.
Always provide an explicitly associated text label for a text field, and consider using a visual label above the form field or an icon that depicts the placeholder to communicate the label effectively.
Related reading: Html Text Field Size
Frequently Asked Questions
What is placeholder text in HTML?
Placeholder text in HTML is a short hint displayed in a text field to guide the user on what value to enter. It's a helpful prompt that appears before the user types anything in.
How to change placeholder text HTML?
To change the placeholder text in HTML, use the ::placeholder pseudo-element to apply custom styles, including background changes. This can be achieved with CSS, and older browser support can be added using a Sass function.
Sources
- Style HTML5 placeholder text using CSS [input and textarea] (psdtowp.net)
- 10 Reasons Why Placeholders are Problematic (medium.com)
- 3.3.2 Labels or Instructions (maxability.co.in)
- Accessible Solution for HTML5 Placeholders (maxability.co.in)
- solution one sample (maxability.co.in)
- Sample two implementation (maxability.co.in)
- Does Placeholder Text AND aria-describedby Work on a Form Field (davidmacd.com)
- Don't Put Hints Inside Text Boxes in Web Forms (uxmatters.com)
- HTML5 Accessibility Chops: The placeholder Attribute (paciellogroup.com)
- HTML5 Placeholder Contrast (pauljadam.com)
- Is use of the placeholder attribute not a good practice to make a compliant form? (ssbbartgroup.com)
- Placeholder (maxability.co.in)
- Placeholder Attribute Is Not A Label! (webaxe.blogspot.com)
- Placeholder Text - Clever, or Too Clever? (posthaven.com)
- Placeholders are not Substitutes for Labels (pardot.com)
- Placeholders in Form Fields Are Harmful (nngroup.com)
- The HTML5 placeholder attribute is not a substitute for the label element (456bereastreet.com)
- Using the HTML5 Placeholder Attribute (tink.co.uk)
- WCAG Issue #100: H65 Technique is Invalid and Abused to Allow Disappearing Placeholders Over Visible Labels (github.com)
- http://pauljadam.com/demos/wcagh65invalid.html (pauljadam.com)
- Caniuse (caniuse.com)
- “Styling Placeholders” (csswg.org)
- “The CSS3 Placeholder Pseudo-element” (teamtreehouse.com)
- http://stackoverflow.com/questions/21594026/placeholder-always-align-left-in-safari (stackoverflow.com)
- placeholder (w3schools.com)
- How to Use CSS to Modify the Color of Placeholder Text in (tempmail.us.com)
Featured Images: pexels.com