source: Dev/trunk/src/client/dijit/_base/wai.js @ 483

Last change on this file since 483 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 3.3 KB
Line 
1define([
2        "dojo/dom-attr", // domAttr.attr
3        "dojo/_base/lang", // lang.mixin
4        "../main",      // export symbols to dijit
5        "../hccss"                      // not using this module directly, but loading it sets CSS flag on <html>
6], function(domAttr, lang, dijit){
7
8        // module:
9        //              dijit/_base/wai
10
11        var exports = {
12                // summary:
13                //              Deprecated methods for setting/getting wai roles and states.
14                //              New code should call setAttribute()/getAttribute() directly.
15                //
16                //              Also loads hccss to apply dj_a11y class to root node if machine is in high-contrast mode.
17
18                hasWaiRole: function(/*Element*/ elem, /*String?*/ role){
19                        // summary:
20                        //              Determines if an element has a particular role.
21                        // returns:
22                        //              True if elem has the specific role attribute and false if not.
23                        //              For backwards compatibility if role parameter not provided,
24                        //              returns true if has a role
25                        var waiRole = this.getWaiRole(elem);
26                        return role ? (waiRole.indexOf(role) > -1) : (waiRole.length > 0);
27                },
28
29                getWaiRole: function(/*Element*/ elem){
30                        // summary:
31                        //              Gets the role for an element (which should be a wai role).
32                        // returns:
33                        //              The role of elem or an empty string if elem
34                        //              does not have a role.
35                         return lang.trim((domAttr.get(elem, "role") || "").replace("wairole:",""));
36                },
37
38                setWaiRole: function(/*Element*/ elem, /*String*/ role){
39                        // summary:
40                        //              Sets the role on an element.
41                        // description:
42                        //              Replace existing role attribute with new role.
43
44                        domAttr.set(elem, "role", role);
45                },
46
47                removeWaiRole: function(/*Element*/ elem, /*String*/ role){
48                        // summary:
49                        //              Removes the specified role from an element.
50                        //              Removes role attribute if no specific role provided (for backwards compat.)
51
52                        var roleValue = domAttr.get(elem, "role");
53                        if(!roleValue){ return; }
54                        if(role){
55                                var t = lang.trim((" " + roleValue + " ").replace(" " + role + " ", " "));
56                                domAttr.set(elem, "role", t);
57                        }else{
58                                elem.removeAttribute("role");
59                        }
60                },
61
62                hasWaiState: function(/*Element*/ elem, /*String*/ state){
63                        // summary:
64                        //              Determines if an element has a given state.
65                        // description:
66                        //              Checks for an attribute called "aria-"+state.
67                        // returns:
68                        //              true if elem has a value for the given state and
69                        //              false if it does not.
70
71                        return elem.hasAttribute ? elem.hasAttribute("aria-"+state) : !!elem.getAttribute("aria-"+state);
72                },
73
74                getWaiState: function(/*Element*/ elem, /*String*/ state){
75                        // summary:
76                        //              Gets the value of a state on an element.
77                        // description:
78                        //              Checks for an attribute called "aria-"+state.
79                        // returns:
80                        //              The value of the requested state on elem
81                        //              or an empty string if elem has no value for state.
82
83                        return elem.getAttribute("aria-"+state) || "";
84                },
85
86                setWaiState: function(/*Element*/ elem, /*String*/ state, /*String*/ value){
87                        // summary:
88                        //              Sets a state on an element.
89                        // description:
90                        //              Sets an attribute called "aria-"+state.
91
92                        elem.setAttribute("aria-"+state, value);
93                },
94
95                removeWaiState: function(/*Element*/ elem, /*String*/ state){
96                        // summary:
97                        //              Removes a state from an element.
98                        // description:
99                        //              Sets an attribute called "aria-"+state.
100
101                        elem.removeAttribute("aria-"+state);
102                }
103        };
104
105        lang.mixin(dijit, exports);
106
107        /*===== return exports; =====*/
108        return dijit;   // for back compat :-(
109});
Note: See TracBrowser for help on using the repository browser.