mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5282 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
104 lines
3.5 KiB
JavaScript
104 lines
3.5 KiB
JavaScript
/*
|
|
Copyright (c) 2004-2006, The Dojo Foundation
|
|
All Rights Reserved.
|
|
|
|
Licensed under the Academic Free License version 2.1 or above OR the
|
|
modified BSD license. For more information on Dojo licensing, see:
|
|
|
|
http://dojotoolkit.org/community/licensing.shtml
|
|
*/
|
|
|
|
dojo.provide("dojo.a11y");
|
|
|
|
dojo.require("dojo.uri.*");
|
|
dojo.require("dojo.html.common");
|
|
|
|
dojo.a11y = {
|
|
// imgPath: String path to the test image for determining if images are displayed or not
|
|
// doAccessibleCheck: Boolean if true will perform check for need to create accessible widgets
|
|
// accessible: Boolean uninitialized when null (accessible check has not been performed)
|
|
// if true generate accessible widgets
|
|
imgPath:dojo.uri.dojoUri("src/widget/templates/images"),
|
|
doAccessibleCheck: true,
|
|
accessible: null,
|
|
|
|
checkAccessible: function(){
|
|
// summary:
|
|
// perform check for accessibility if accessibility checking is turned
|
|
// on and the accessibility test has not been performed yet
|
|
if(this.accessible === null){
|
|
this.accessible = false; //default
|
|
if(this.doAccessibleCheck == true){
|
|
this.accessible = this.testAccessible();
|
|
}
|
|
}
|
|
return this.accessible; /* Boolean */
|
|
},
|
|
|
|
testAccessible: function(){
|
|
// summary:
|
|
// Always perform the accessibility check to determine if high
|
|
// contrast mode is on or display of images are turned off. Currently only checks
|
|
// in IE and Mozilla.
|
|
this.accessible = false; //default
|
|
if (dojo.render.html.ie || dojo.render.html.mozilla){
|
|
var div = document.createElement("div");
|
|
//div.style.color="rgb(153,204,204)";
|
|
div.style.backgroundImage = "url(\"" + this.imgPath + "/tab_close.gif\")";
|
|
// must add to hierarchy before can view currentStyle below
|
|
dojo.body().appendChild(div);
|
|
// in FF and IE the value for the current background style of the added div
|
|
// will be "none" in high contrast mode
|
|
// in FF the return value will be url(invalid-url:) when running over http
|
|
var bkImg = null;
|
|
if (window.getComputedStyle ) {
|
|
var cStyle = getComputedStyle(div, "");
|
|
bkImg = cStyle.getPropertyValue("background-image");
|
|
}else{
|
|
bkImg = div.currentStyle.backgroundImage;
|
|
}
|
|
var bUseImgElem = false;
|
|
if (bkImg != null && (bkImg == "none" || bkImg == "url(invalid-url:)" )) {
|
|
this.accessible = true;
|
|
}
|
|
/*
|
|
if(this.accessible == false && document.images){
|
|
// test if images are off in IE
|
|
var testImg = new Image();
|
|
if(testImg.fileSize) {
|
|
testImg.src = this.imgPath + "/tab_close.gif";
|
|
if(testImg.fileSize < 0){
|
|
this.accessible = true;
|
|
}
|
|
}
|
|
}*/
|
|
dojo.body().removeChild(div);
|
|
}
|
|
return this.accessible; /* Boolean */
|
|
},
|
|
|
|
setCheckAccessible: function(/* Boolean */ bTest){
|
|
// summary:
|
|
// Set whether or not to check for accessibility mode. Default value
|
|
// of module is true - perform check for accessibility modes.
|
|
// bTest: Boolean - true to check; false to turn off checking
|
|
this.doAccessibleCheck = bTest;
|
|
},
|
|
|
|
setAccessibleMode: function(){
|
|
// summary:
|
|
// perform the accessibility check and sets the correct mode to load
|
|
// a11y widgets. Only runs if test for accessiiblity has not been performed yet.
|
|
// Call testAccessible() to force the test.
|
|
if (this.accessible === null){
|
|
if (this.checkAccessible()){
|
|
dojo.render.html.prefixes.unshift("a11y");
|
|
}
|
|
}
|
|
return this.accessible; /* Boolean */
|
|
}
|
|
};
|
|
|
|
//dojo.hostenv.modulesLoadedListeners.unshift(function() { dojo.a11y.setAccessibleMode(); });
|
|
//dojo.event.connect("before", dojo.hostenv, "makeWidgets", dojo.a11y, "setAccessibleMode");
|