::placeholder
Quick Summary for ::placeholder
The ::placeholder CSS pseudo-element represents the placeholder text in an <input> or <textarea> element.
Code Usage for ::placeholder
::placeholder {   color: blue;   font-size: 1.5em; } 
More Details for ::placeholder

::placeholder

The ::placeholder CSS pseudo-element represents the placeholder text in an <input> or <textarea> element.

::placeholder {   color: blue;   font-size: 1.5em; } 

Only the subset of CSS properties that apply to the ::first-line pseudo-element can be used in a rule using ::placeholder in its selector.

Note: In most browsers, the appearance of placeholder text is a translucent or light gray color by default.

Syntax

::placeholder

Accessibility concerns

Color contrast

Contrast Ratio

Placeholder text typically has a lighter color treatment to indicate that it is a suggestion for what kind of input will be valid, and is not actual input of any kind.

It is important to ensure that the contrast ratio between the color of the placeholder text and the background of the input is high enough that people experiencing low vision conditions will be able to read it while also making sure there is enough of a difference between the placeholder text and input text color that users do not mistake the placeholder for inputted data.

Color contrast ratio is determined by comparing the luminosity of the placeholder text and the input background color values. In order to meet current Web Content Accessibility Guidelines (WCAG), a ratio of 4.5:1 is required for text content and 3:1 for larger text such as headings. Large text is defined as 18.66px and bold or larger, or 24px or larger.

WebAIM: Color Contrast Checker MDN Understanding WCAG, Guideline 1.4 explanations Understanding Success Criterion 1.4.3 | W3C Understanding WCAG 2.0 Usability

Placeholder text with sufficient color contrast may be interpreted as entered input. Placeholder text will also disappear when a person enters content into an <input> element. Both of these circumstances can interfere with successful form completion, especially for people with cognitive concerns.

An alternate approach to providing placeholder information is to include it outside of the input in close visual proximity, then use aria-describedby to programmatically associate the <input> with its hint.

With this implementation, the hint content is available even if information is entered into the input field, and the input appears free of preexisting input when the page is loaded. Most screen reading technology will use aria-describedby to read the hint after the input's label text is announced, and the person using the screen reader can mute it if they find the extra information unnecessary.

<label for="user-email">Your email address</label> <span id="user-email-hint" class="input-hint">Example: jane@sample.com</span> <input id="user-email" aria-describedby="user-email-hint" name="email" type="email"> 
Placeholders in Form Fields Are Harmful — Nielsen Norman Group

Windows High Contrast Mode

Placeholder text will appear with the same styling as user-entered text content when rendered in Windows High Contrast Mode. This will make it difficult for some people to determine which content has been entered, and which content is placeholder text.

Greg Whitworth — How to use -ms-high-contrast

Labels

Placeholders are not a replacement for the <label> element. Without a label that has been programmatically associated with an input using a combination of the for and id attributes, assistive technology such as screen readers cannot parse <input> elements.

MDN Basic form hints Placeholders in Form Fields Are Harmful — Nielsen Norman Group

Examples

Change placeholder appearance

This example shows some of the adjustments that you can make to the styles of placeholder text.

HTML
<input placeholder="Type here..."> 
CSS
input::placeholder {   color: red;   font-size: 1.2em;   font-style: italic; } 
Result

Opaque text

Some browsers (such as Firefox) set the default opacity of placeholders to something less than 100%. If you want fully opaque placeholder text, set opacity to 1.

HTML
<input placeholder="Default opacity..."> <input placeholder="Full opacity..." class="force-opaque"> 
CSS
::placeholder {   color: green; }  .force-opaque::placeholder {   opacity: 1; } 
Result

Specifications

Specification
CSS Pseudo-Elements Module Level 4 # placeholder-pseudo

See also

The :placeholder-shown pseudo-class styles an element that has an active placeholder. Related HTML elements: <input>, <textarea> HTML forms

Last modified: Jan 21, 2022, by MDN contributors

Select your preferred language English (US)EspañolFrançais日本語한국어Русский中文 (简体) Change language

No Items Found.

Add Comment
Type in a Nick Name here
 
Other Categories in CSS
css
Search CSS
Search CSS by entering your search text above.
Welcome

This is my test area for webdev. I keep a collection of code here, mostly for my reference. Also if i find a good link, i usually add it here and then forget about it. more...

Subscribe to weekly updates about things i have added to the site or thought interesting during the last week.

You could also follow me on twitter or not... does anyone even use twitter anymore?

If you found something useful or like my work, you can buy me a coffee here. Mmm Coffee. ☕

❤️👩‍💻🎮

🪦 2000 - 16 Oct 2022 - Boots
Random Quote
A.A. Milne’s Winnie-the-Pooh: “If you live to be a hundred, I want to live to be a hundred minus one day so I never have to live without you.”
A.A. Milne
Random CSS Property

scroll-snap-type

The scroll-snap-type CSS property sets how strictly snap points are enforced on the scroll container in case there is one.
scroll-snap-type css reference