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