UNPKG

dojo

Version:

Dojo core is a powerful, lightweight library that makes common tasks quicker and easier. Animate elements, manipulate the DOM, and query with easy CSS syntax, all without sacrificing performance.

56 lines (49 loc) 1.79 kB
define([ "require", // require, require.toUrl "./_base/config", // config.blankGif "./dom-class", // domClass.add "./dom-style", // domStyle.getComputedStyle "./has", "./domReady", "./_base/window" // win.body ], function(require, config, domClass, domStyle, has, domReady, 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"); try{ 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; return cs.borderTopColor == cs.borderRightColor || (bkImg && (bkImg == "none" || bkImg == "url(invalid-url:)" )); }catch(e){ console.warn("hccss: exception detecting high-contrast mode, document is likely hidden: " + e.toString()); return false; }finally{ if(has("ie") <= 8){ div.outerHTML = ""; // prevent mixed-content warning, see http://support.microsoft.com/kb/925014 }else{ win.body().removeChild(div); } } }); domReady(function(){ if(has("highcontrast")){ domClass.add(win.body(), "dj_a11y"); } }); return has; });