]> git.wh0rd.org - tt-rss.git/blame - lib/dijit/_base/wai.js.uncompressed.js
modify dojo rebuild script to remove uncompressed files
[tt-rss.git] / lib / dijit / _base / wai.js.uncompressed.js
CommitLineData
f0cfe83e
AD
1define("dijit/_base/wai", [
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});