Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F947376
wai.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
wai.js
View Options
if
(
!
dojo
.
_hasResource
[
"dijit._base.wai"
]){
//_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo
.
_hasResource
[
"dijit._base.wai"
]
=
true
;
dojo
.
provide
(
"dijit._base.wai"
);
dijit
.
wai
=
{
onload
:
function
(){
// summary:
// Function that detects if we are in high-contrast mode or not,
// and sets up a timer to periodically confirm the value.
// figure out the background-image style property
// and apply that to the image.src property.
// description:
// This must be a named function and not an anonymous
// function, so that the widget parsing code can make sure it
// registers its onload function after this function.
// DO NOT USE "this" within this function.
// create div for testing if high contrast mode is on or images are turned off
var
div
=
document
.
createElement
(
"div"
);
div
.
id
=
"a11yTestNode"
;
div
.
style
.
cssText
=
'border: 1px solid;'
+
'border-color:red green;'
+
'position: absolute;'
+
'height: 5px;'
+
'top: -999px;'
+
'background-image: url("'
+
dojo
.
moduleUrl
(
"dijit"
,
"form/templates/blank.gif"
)
+
'");'
;
dojo
.
body
().
appendChild
(
div
);
// test it
function
check
(){
var
cs
=
dojo
.
getComputedStyle
(
div
);
if
(
cs
){
var
bkImg
=
cs
.
backgroundImage
;
var
needsA11y
=
(
cs
.
borderTopColor
==
cs
.
borderRightColor
)
||
(
bkImg
!=
null
&&
(
bkImg
==
"none"
||
bkImg
==
"url(invalid-url:)"
));
dojo
[
needsA11y
?
"addClass"
:
"removeClass"
](
dojo
.
body
(),
"dijit_a11y"
);
}
}
check
();
if
(
dojo
.
isIE
){
setInterval
(
check
,
4000
);
}
}
};
// Test if computer is in high contrast mode.
// Make sure the a11y test runs first, before widgets are instantiated.
if
(
dojo
.
isIE
||
dojo
.
isMoz
){
// NOTE: checking in Safari messes things up
dojo
.
_loaders
.
unshift
(
dijit
.
wai
.
onload
);
}
dojo
.
mixin
(
dijit
,
{
hasWaiRole
:
function
(
/*Element*/
elem
){
// Summary: Return true if elem has a role attribute and false if not.
if
(
elem
.
hasAttribute
){
return
elem
.
hasAttribute
(
"role"
);
}
else
{
return
elem
.
getAttribute
(
"role"
)
?
true
:
false
;
}
},
getWaiRole
:
function
(
/*Element*/
elem
){
// Summary: Return the role of elem or an empty string if
// elem does not have a role.
var
value
=
elem
.
getAttribute
(
"role"
);
if
(
value
){
var
prefixEnd
=
value
.
indexOf
(
":"
);
return
prefixEnd
==
-
1
?
value
:
value
.
substring
(
prefixEnd
+
1
);
}
else
{
return
""
;
}
},
setWaiRole
:
function
(
/*Element*/
elem
,
/*String*/
role
){
// Summary: Set the role on elem. On Firefox 2 and below, "wairole:" is
// prepended to the provided role value.
if
(
dojo
.
isFF
&&
dojo
.
isFF
<
3
){
elem
.
setAttribute
(
"role"
,
"wairole:"
+
role
);
}
else
{
elem
.
setAttribute
(
"role"
,
role
);
}
},
removeWaiRole
:
function
(
/*Element*/
elem
){
// Summary: Removes the role attribute from elem.
elem
.
removeAttribute
(
"role"
);
},
hasWaiState
:
function
(
/*Element*/
elem
,
/*String*/
state
){
// Summary: Return true if elem has a value for the given state and
// false if it does not.
// On Firefox 2 and below, we check for an attribute in namespace
// "http://www.w3.org/2005/07/aaa" with a name of the given state.
// On all other browsers, we check for an attribute called
// "aria-"+state.
if
(
dojo
.
isFF
&&
dojo
.
isFF
<
3
){
return
elem
.
hasAttributeNS
(
"http://www.w3.org/2005/07/aaa"
,
state
);
}
else
{
if
(
elem
.
hasAttribute
){
return
elem
.
hasAttribute
(
"aria-"
+
state
);
}
else
{
return
elem
.
getAttribute
(
"aria-"
+
state
)
?
true
:
false
;
}
}
},
getWaiState
:
function
(
/*Element*/
elem
,
/*String*/
state
){
// Summary: Return the value of the requested state on elem
// or an empty string if elem has no value for state.
// On Firefox 2 and below, we check for an attribute in namespace
// "http://www.w3.org/2005/07/aaa" with a name of the given state.
// On all other browsers, we check for an attribute called
// "aria-"+state.
if
(
dojo
.
isFF
&&
dojo
.
isFF
<
3
){
return
elem
.
getAttributeNS
(
"http://www.w3.org/2005/07/aaa"
,
state
);
}
else
{
var
value
=
elem
.
getAttribute
(
"aria-"
+
state
);
return
value
?
value
:
""
;
}
},
setWaiState
:
function
(
/*Element*/
elem
,
/*String*/
state
,
/*String*/
value
){
// Summary: Set state on elem to value.
// On Firefox 2 and below, we set an attribute in namespace
// "http://www.w3.org/2005/07/aaa" with a name of the given state.
// On all other browsers, we set an attribute called
// "aria-"+state.
if
(
dojo
.
isFF
&&
dojo
.
isFF
<
3
){
elem
.
setAttributeNS
(
"http://www.w3.org/2005/07/aaa"
,
"aaa:"
+
state
,
value
);
}
else
{
elem
.
setAttribute
(
"aria-"
+
state
,
value
);
}
},
removeWaiState
:
function
(
/*Element*/
elem
,
/*String*/
state
){
// Summary: Removes the given state from elem.
// On Firefox 2 and below, we remove the attribute in namespace
// "http://www.w3.org/2005/07/aaa" with a name of the given state.
// On all other browsers, we remove the attribute called
// "aria-"+state.
if
(
dojo
.
isFF
&&
dojo
.
isFF
<
3
){
elem
.
removeAttributeNS
(
"http://www.w3.org/2005/07/aaa"
,
state
);
}
else
{
elem
.
removeAttribute
(
"aria-"
+
state
);
}
}
});
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 26, 11:35 (1 d, 17 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25608
Default Alt Text
wai.js (4 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment