55 lines
1.8 KiB
JavaScript
55 lines
1.8 KiB
JavaScript
define("dojo/hccss", [
|
|
"require", // require.toUrl
|
|
"./_base/config", // config.blankGif
|
|
"./dom-class", // domClass.add
|
|
"./dom-style", // domStyle.getComputedStyle
|
|
"./has",
|
|
"./ready", // ready
|
|
"./_base/window" // win.body
|
|
], function(require, config, domClass, domStyle, has, ready, win){
|
|
|
|
// module:
|
|
// dojo/hccss
|
|
|
|
/*=====
|
|
return function(){
|
|
// summary:
|
|
// Test if computer is in high contrast mode (i.e. if browser is not displaying background images).
|
|
// Defines `has("highcontrast")` and sets `dj_a11y` CSS class on `<body>` if machine is in high contrast mode.
|
|
// Returns `has()` method;
|
|
};
|
|
=====*/
|
|
|
|
// Has() test for when background images aren't displayed. Don't call has("highcontrast") before dojo/domReady!.
|
|
has.add("highcontrast", function(){
|
|
// note: if multiple documents, doesn't matter which one we use
|
|
var div = win.doc.createElement("div");
|
|
div.style.cssText = "border: 1px solid; border-color:red green; position: absolute; height: 5px; top: -999px;" +
|
|
"background-image: url(" + (config.blankGif || require.toUrl("./resources/blank.gif")) + ");";
|
|
win.body().appendChild(div);
|
|
|
|
var cs = domStyle.getComputedStyle(div),
|
|
bkImg = cs.backgroundImage,
|
|
hc = (cs.borderTopColor == cs.borderRightColor) ||
|
|
(bkImg && (bkImg == "none" || bkImg == "url(invalid-url:)" ));
|
|
|
|
if(has("ie") <= 8){
|
|
div.outerHTML = ""; // prevent mixed-content warning, see http://support.microsoft.com/kb/925014
|
|
}else{
|
|
win.body().removeChild(div);
|
|
}
|
|
|
|
return hc;
|
|
});
|
|
|
|
// Priority is 90 to run ahead of parser priority of 100. For 2.0, remove the ready() call and instead
|
|
// change this module to depend on dojo/domReady!
|
|
ready(90, function(){
|
|
if(has("highcontrast")){
|
|
domClass.add(win.body(), "dj_a11y");
|
|
}
|
|
});
|
|
|
|
return has;
|
|
});
|