Techniques for WCAG 2.0

Skip to Content (Press Enter)

This document is a draft, and is designed to show changes from a previous version. It is presently showing added text,changed text,deleted text,[start]/[end] markers,and Issue Numbers.

Hide All Edits   |   Toggle Deletions  |   Toggle Issue Numbers   |   Toggle [start]/[end] Markers   |   Show All Edits

Changes are displayed as follows:


F87: Failure of 1.3.1 due to inserting non-decorative content by using :before and :after pseudo-elements and the 'content' property in CSS


All technologies that support CSS.

This failure relates to:

User Agent and Assistive Technology Support Notes

:before and :after are not supported by IE7 and lower


The CSS :before and :after pseudo-elements specify the location of content before and after an element's document tree content. The content property, in conjunction with these pseudo-elements, specifies what is inserted. For users who need to customize or turn off style information in order to view content according to their needs, assistive technologies may not be able to access the information that is inserted using CSS. Therefore, it is a failure to use these properties to insert non-decorative content.


Failure Example 1

In the following example, :before and :after are used to indicate speaker changes and to insert quotation marks in a screenplay.

The CSS contains:

Example Code:

 p.jim:before {	content: "Jim: " }
p.mary:before { content: "Mary: " }

q:before { content: open-quote }
q:after  { content: close-quote }

It is used in this excerpt:

Example Code:

 <p class="jim">
 <q>Do you think he's going to make it?</q>
<p class="mary">
 <q>It's not looking good.</q>

Failure Example 2

In this example, :before is used to differentiate facts from opinions.

The CSS contains:

Example Code:

 p.fact:before { content: "Fact: "; font-weight: bold; }
 p.opinion:before { content: "Opinion: "; font-weight: bold; }

It is used in this excerpt:

Example Code:

 <p class="fact">
 The defendant was at the scene of the crime when it occurred. 
<p class="opinion">
 The defendant committed the crime. 


Resources are for information purposes only, no endorsement implied.



  1. Examine all content inserted through use of the :before and :after pseudo-elements and the content property

  2. Verify that the content is decorative.

  3. If the inserted content is not decorative, check that the information is provided to assistive technologies and is also available when CSS is turned off.

Expected Results