- From: Christophe Strobbe <christophe.strobbe@esat.kuleuven.be>
- Date: Wed, 21 Sep 2005 18:54:39 +0200
- To: public-wcag-teama@w3.org
Hi,
I looked at some types of things that JavaScript can do in order to see
1. if we want to ban them (under certain circumstances), and
2. if they fit into the definition the definition of "change of context",
or if we want to change the definition to make these things fit, or if the
issue is handled somewhere else.
Below is just a list of things I found and which can feed into the
discussion on changes of context.
1. There are three types of popups that are custom-made for JavaScript use:
- alert [e.g. alert("You have 30 seconds left.");]
- confirm [e.g. confirm("Do you want more time?");]
- prompt [e.g. prompt("Do you want more time?", 'Type number of seconds
here');]
Like other JavaScript methods, these three methods can be used to create
popups that the user did not request.
2. JavaScript to open a new (browser) window; syntax:
variableName = window.open("URL", "windowName",
"option1=value,option2=value,...");
Each of the three arguments can be an empty string.
The options are things like height, width, resizable, menubar, status, ...
[1] [2].
According to "Professional JavaScript" [3]:
"Security issues prevent you from changing the decoration of an already
open window (unless you use a secure script), or a window displaying pages
from a different web site."
3. In addition to adding or changing strings of text in an HTML document,
JavaScript also can be used to write all the HTML code of a document in a
pop-up window or a frame. This is often done with simple
"document.write(...)" calls even though this is not DOM compliant (we
currently have no success criterion on using JavaScript or anything else
according to specific standards).
This content can be written to a pop-up window or to a frame.
An example of writing to a pop-up window:
<script type="text/JavaScript">
var newWindow = null
function seeColor(form) {
newColor =
(form.colorsList.options[form.colorsList.selectedIndex].value)
if (newWindow == null) {
newWindow =
window.open("","","HEIGHT=300,WIDTH=250,RESIZABLE=yes,STATUS=no,MENUBAR=yes")
}
newWindow.document.write('<html><body style="background-color:' +
newColor + '">')
newWindow.document.write('<h1>Colorpicker<\/h1><h2
style="color:white">Colorpicker<\/h2><p>text<\/p><p
style="color:blue">color for links<\/p><p style="color:red">color for
active links<\/p><p style="color:#FF00FF">color for visited
links<\/p><\/body><\/html>')
newWindow.document.close()
newWindow.focus()
}
</script>
<form action="">Pick a background color:
<select name="colorsList" onchange="seeColor(this.form)">
<option selected="selected" value="">Kleur - hex RGB</option>
<option value="aliceblue">Alice Blue - FOF8FF</option>
<option value="antiquewhite">Antique White - FAEBD7</option>
<option value="aqua">Aqua - 00FFFF</option>
<option value="aquamarine">Aquamarine - 7FFFD4</option>
<!-- many more colors -->
</select>
</form>
[There is an example at http://purl.org/NET/error404/kleuren.htm ; it is in
Dutch: select a color from the drop-down list next to "Kies een
achtergrondkleur:" at the top of the page.]
An example of writing to a frame (can be used for client-side search engines):
if you have a top frame with the search form (+ JavaScript code) and a
bottom frame where you want to write the search results:
var docObj = parent.frames[1].document;
docObj.open();
docObj.writeln('<html><head><title> ...');
/* ... */
/* code adding <body> with search resuls ... */
docObj.writeln('<\/body></html>');
docObj.close();
[There is an example at http://purl.org/NET/error404/zoek.htm ; it is in
Dutch; "zoeken" means "search"; you can test it by entering "javascript",
"scripting", "search engine" and other web-related terms. The code is
adapted from 'JavaScript Application Cookbook' by Jerry Bradenbaugh
(O'Reilly, 1999; see also http://www.oreilly.com/catalog/jscook/index.html
where you can download the chapter with this code).]
4. JavaScript can also be used to write complete frameset code. See for
example the Joust Outliner [4], which is inaccessible for screenreader
users. This contains code like
self.document.writeln('<frameset cols="100%" rows="115" ...');
and does not validate (because the there is no frameset element until the
JavaScript has written the code).
5. "JavaScript tooltips" [5]
6. Many download sites start an automatic download that starts a few
seconds after opening the actual download page; this page usually contains
a link that you can use if the script does not work in your browser.
Examples:
- http://download.zonelabs.com/bin/updates/znalm/za60667000AEN1023_UK.html
: following the link "Download my ZoneAlarm update" opens a web page and a
"Save as ..." dialog box (if you use IE you first get a warning that some
downloads can harm your computer);
- SourceForge.net downloads use a similar mechanism; try for example the
download links at
http://sourceforge.net/project/showfiles.php?group_id=2238&package_id=151275&release_id=324310
-
http://www.softpedia.com/progDownload/Javascript-Menu-Master-Download-1428.html
starts an automtic download after 3 seconds
- code for automatically downloading a JVM if the user doesn't have one is
at http://www.mozilla.org/docs/web-developer/upgrade_2.html#Deprecated_Applet
- PHP code (=server side) that is also supposed to start automatic
downloads:
http://www.sitepoint.com/forums/showthread.php?s=13c6dd62323b162017e7b7c50ac702ee&p=2154526#post2154526
[1] Microsoft's documentation:
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/open_0.asp
[2] Gecko DOM Reference:
http://www.mozilla.org/docs/dom/domref/dom_window_ref76.html
[3] Nigel McFarlane et al: "Professional JavaScript" Birmingham, UK: Wrox,
1999.
[4] http://www.ivanpeters.com/
[5] DHTML JavaScript Tooltips by Walter Zorn:
http://www.walterzorn.com/tooltip/tooltip_e.htm
and many other examples you can find by searching Google:
http://www.google.be/search?hl=en&safe=off&q=%22Javascript+tooltips%22&btnG=Search&meta=
Regards,
Christophe Strobbe
--
Christophe Strobbe
K.U.Leuven - Departement of Electrical Engineering - Research Group on
Document Architectures
Kasteelpark Arenberg 10 - 3001 Leuven-Heverlee - BELGIUM
tel: +32 16 32 85 51
http://www.docarch.be/
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
Received on Wednesday, 21 September 2005 17:00:46 UTC