W3C home > Mailing lists > Public > public-wcag2-techs@w3.org > September 2004

Client Side Techniques (Techniques XML Submission Form)

From: nobody <nobody@web4.w3.org>
Date: Wed, 8 Sep 2004 17:33:07 +0000 (GMT)
To: public-wcag2-techs@w3.org
Message-Id: <20040908173307.BF9B913AEB@web4.w3.org>

 checkbox checked

Submission Results:

Technology: Client Side Techniques 
Techniques Category: Script techniques 
Submitter's Name: Becky Gibson 
Submitter's Email: gibsonb@us.ibm.com

<technique id="UNKNOWN">
<short-name>Blinking via JavaScript and CSS</short-name>
<applies-to>
 <guideline idref="" />
 <success-criterion idref="UNKNOWN" />
</guideline

</applies-to>

<task>
<p>user is allowed to turn off content that blinks</p>
</task>

<description>
Use JavaScript and CSS to cause text to blink.  If JavaScript and/or css is disabled, the text will not blink.  A button can be provided to toggle the blinking of the object on and off. This example blinks text, but that same technique could be used to "blink" a border around an object.   



The text is made to blink by changing its visibility style value from visible to hidden on a regular basis.  The JavaScript window.setTimeout() method is used to call the function which changes the visibility.

</description>

<user-issues>
 <affects group="UNKNOWN" />
</user-issues>

<eg-group>
<description>
A span is created around a text object to make blink.  The span is given an id so it can be obtained programmatically via document.getObjectById().   There are three "global" JavaScript variables used to store blinking information.  bDoBlink is a boolean that indicates if blinking is turned on for the page or off.  visibiity[] is an array that stores the values of the visibility style: hidden, visible;  bOn is used as the index into this array and is either 0 or 1.  

There are two functions; toggleBlink() and doBlink().  toggleBlink() is called by the onclick of a button on the page - it toggles blinking on an off.  doBlink() is the actual function that causes blinking.  It gets the object to make blink and changes its visiblity. Then calls setTimeout() to call itself again after a specified period of time.  

</description>

<code><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<meta http-equiv="content-type" content="text/xhtml; charset=utf-8" />

<title>JavaScript Blink Technique</title>

<style type="text/css">

body {

	background-color:#FFF;

	color:#000;

}

.bigText {

	font-family:"Times New Roman", Times, serif;

	font-size:x-large;

}

</style>

<script type="text/javascript">

//<![CDATA[

var bDoBlink=false;

var bOn = 0;

var visibility = ["hidden", "visible"]; // array that stores the css visibility values

/* function doBlink

	get the object to make blink - its id could be passed as a variable

	check the global bDoBlink to see the status of blinking

	if it is on

		set the vibility of the object opposite of what it was

		use bOn as the index into the array which stores the string values for visibility

		update bOn to the next index (either 0 or 1)

		set the timeout value to call this function again

*/

function doBlink() {

	var blinkObj = document.getElementById("jsBlink");  // could store blinkObj in a global variable so do not have to retrieve each time;

	if (bDoBlink == true) {

		blinkObj.style.visibility=visibility[bOn];

		bOn = ++bOn % 2;

		setTimeout("doBlink()",1000);

	}





}

/* function toggleBlink

	turns blinking on or off

	reverse the value of the global bDoBlink

	if blinking is now on,

		call setTimeout to call the doBlink function

	else

		get the blink object and set it to visible

*/

function toggleBlink() {

	bDoBlink = !bDoBlink;

	if (bDoBlink == true) {

		setTimeout("doBlink()",500);

	}

	else {

		var blinkObj = blinkObj = document.getElementById("jsBlink");

		blinkObj.style.visibility = "visible";

	}

}



//]]>

</script>

</head>

<body>

<p>Javascript and CSS can be used to make the following text in brackets blink: <span id="jsBlink" class="bigText">[JavaScript Blink]</span>.  Toggle the blinking on and off

by pressing the "toggle JS blink" button below.

</p>

<form action="none">

<button type="button" onclick="toggleBlink()" >Toggle JS Blink</button>

</form>

</body>

</html>
]]</code>

<ua-issues>

</ua-issues>
</eg-group>

<resources>
</resources>
</technique>

Additional Notes:

This technique was tested in IE 6.0; Mozilla 1.8a3 & 1.72; Firefox 0.9.2; and Opera 7.54;  It was also tested in Jaws 4.51, WindowEyes 4.51 sp3, and HPR 3.04 to make sure these screen readers speak the text when it is blinking - all do.  
Received on Wednesday, 8 September 2004 17:33:08 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 21 March 2011 06:17:04 GMT