Techniques for WCAG 2.0

On this page:

-

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

## Applicability

All technologies that support CSS.

This failure relates to:

- Success Criterion 1.1.1 (Non-text Content)
  - How to Meet 1.1.1 (Non-text Content)
  - Understanding Success Criterion 1.1.1 (Non-text Content)

## Description

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.

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.

## Examples

### 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?
    </p>

### 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 li.new {
      background: transparent url(new.png) no-repeat top left;
    }

    ul#booklist li.limited {
      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>
    </ul>

## Resources

No resources available for this technique.

## Related Techniques

- H37: Using alt attributes on img elements

## Tests

### Procedure

1. Examine all images added to the content via CSS.

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

- If step #2 and step #3 are both false, then this failure condition applies and the content fails this Success Criterion.

- Top
- Contents
- Intro
- Previous: Failure F2
- Next: Failure F4