yzt
2023-05-26 2f70f6727314edd84d8ec2bfe3ce832803f1ea77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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");
        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;
    });
 
    domReady(function(){
        if(has("highcontrast")){
            domClass.add(win.body(), "dj_a11y");
        }
    });
 
    return has;
});