Techniques for WCAG 2.0

Skip to Content (Press Enter)


F3: Failure of Success Criterion 1.1.1 due to using CSS to include images that convey important information


All technologies that support CSS.

This failure relates to:


The CSS background-image property provides a way to include images in the document with CSS without any reference in the HTML code. The CSS background-image property was designed for decorative purposes and it is not possible to associate text alternatives with images that are included via CSS. Text alternatives are necessary for people who cannot see images that convey important information. Therefore, it is a failure to use this property to add images to convey important information. This failure would apply equally in a case where the background image was declared in the HTML style attribute, as well as in a case where the background image declaration was created dynamically in a client script (see example 3 below).

Note: Embedding information into a background image can also cause problems for people who use alternate backgrounds in order to increase legibility and for users of high contrast mode in some operating systems. These users, would lose the information in the background image due to lack of any alternative text.


Failure Example 1:

In the following example, part of the content is contained in an image that is presented by CSS alone. In this example, the image TopRate.png is a 180 by 200 pixel image that contains the text, "19.3% APR Typical Variable."

Example Code:

 The CSS contains: 
p#bestinterest {
  padding-left: 200px;
  background: transparent url(/images/TopRate.png) no-repeat top left;

It is used in this excerpt:

Example Code:

<p id="bestinterest">
  Where else would you find a better interest rate?

Failure Example 2:

A book distributor uses background images to provide icons against a list of book titles to indicate whether they are new, limited, in-stock, or out of stock.

The CSS contains:

Example Code:

ul#booklist li {
  padding-left: 20px;

ul#booklist {
  background: transparent url(new.png) no-repeat top left; 
ul#booklist {
  background: transparent url(limited.png) no-repeat top left; 
ul#booklist li.instock {
  background: transparent url(instock.png) no-repeat top left; 

ul#booklist li.outstock {
  background: transparent url(outstock.png) no-repeat top left; 

It is used in this excerpt:

Example Code:

<ul id="booklist">
  <li class="new">Some book</li>
  <li class="instock">Some other book</li>
  <li class="limited">A book we desperately want to get rid of</li>
  <li class="outstock">A book you actually want </li>

Failure Example 3:

Using the code from example 1, the same background image is declared in the HTML style attribute:

<p id="bestinterest" style="background: transparent url(/images/TopRate.png) no-repeat top left;" >
Where else would you find a better interest rate?

In the following code, the background image declaration is created in a client script:

<script type="text/javascript">
var newP = document.createElement('p');
var newPText = document.createTextNode('Where else would you find a better interest rate?');
newP.appendChild(newPText); = 'transparent url(/images/TopRate.png) no-repeat top left';


No resources available for this technique.



  1. Examine all images added to the content via CSSHTML style attributes, or dynamically in script as background images.

  2. Check that the images do not convey important information.

  3. If an image does convey important information, the information is provided to assistive technologies and is also available when the CSS image is not displayed.

Expected Results