Changeset 14566
- Timestamp:
- 07/23/08 08:48:22 (4 months ago)
- Location:
- dijit/trunk
- Files:
-
- 2 modified
-
tests/_base/wai.html (modified) (2 diffs)
-
_base/wai.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dijit/trunk/tests/_base/wai.html
r14496 r14566 19 19 function getEmptyWairoleRole(){ 20 20 var elem = dojo.byId("empty-wairole"); 21 doh.assert True(dijit.hasWaiRole(elem));21 doh.assertFalse(dijit.hasWaiRole(elem)); 22 22 doh.assertEqual("", dijit.getWaiRole(elem)); 23 23 }, … … 37 37 function getOnlyXHTMLRole(){ 38 38 var elem=dojo.byId("navigation-role"); 39 doh.assert True(dijit.hasWaiRole(elem, "contentinfo"));40 doh.assertEqual(" contentinfo", dijit.getWaiRole(elem));39 doh.assertFalse(dijit.hasWaiRole(elem, "contentinfo")); 40 doh.assertEqual("", dijit.getWaiRole(elem)); 41 41 }, 42 42 43 43 function getWaiRoleFromMultiple(){ 44 // deprecated in 1.2, always returns first role45 44 var elem=dojo.byId("multiple-role-wairole"); 46 45 doh.assertTrue(dijit.hasWaiRole(elem, "menuitem")); 47 doh.assertEqual(" contentinfo", dijit.getWaiRole(elem));46 doh.assertEqual("menuitem", dijit.getWaiRole(elem)); 48 47 }, 49 48 50 49 function getUnprefixedFromMultiple(){ 51 // deprecated in 1.2, always returns first role52 50 var elem=dojo.byId("multiple-role"); 53 51 doh.assertTrue(dijit.hasWaiRole(elem, "menuitem")); 54 doh.assertEqual(" contentinfo", dijit.getWaiRole(elem));52 doh.assertEqual("menuitem", dijit.getWaiRole(elem)); 55 53 }, 56 54 -
dijit/trunk/_base/wai.js
r14496 r14566 48 48 49 49 hasWaiRole: function(/*Element*/ elem, /*String*/ role){ 50 // summary: Determines if an element has a particular role.51 // returns: true if elem has the specific role attribute and false if not.50 // summary: Determines if an element has a particular non-XHTML role. 51 // returns: true if elem has the specific non-XHTML role attribute and false if not. 52 52 // for backwards compatibility if role parameter not provided, 53 53 // returns true if has non XHTML role 54 var roleValue = dojo.attr(elem,"role"); 55 if (!roleValue){ 56 return false; 57 } 54 var waiRole = this.getWaiRole(elem); 58 55 if (role){ 59 return ( (" "+ roleValue.replace("wairole:", "") +" ").indexOf(" "+ role +" ") >= 0); // Boolean56 return (waiRole.indexOf(role) > -1); 60 57 }else{ 61 return ( dojo.trim(roleValue.replace(this._XhtmlRoles, "")).length >0);58 return (waiRole.length >0); 62 59 } 63 60 }, 64 61 65 62 getWaiRole: function(/*Element*/ elem){ 66 // summary: Gets the first role attribute for an element (deprecated).63 // summary: Gets the non-XHTML role for an element (which should be a wai role). 67 64 // returns: 68 // The firstrole of elem or an empty string if elem65 // The non-XHTML role of elem or an empty string if elem 69 66 // does not have a role. 70 dojo.deprecated("getWaiRole("+elem+") is deprecated. Use hasWaiRole("+elem+",roleName) instead.", "", "2.0"); 71 var value = dojo.attr(elem, "role"); 72 if(value){ 73 var roleArray = value.split(" "); 74 var prefixEnd = roleArray[0].indexOf(":"); 75 return prefixEnd == -1 ? roleArray[0] : roleArray[0].substring(prefixEnd+1); 76 }else{ 77 return ""; 78 } 67 return dojo.trim((dojo.attr(elem, "role") || "").replace(this._XhtmlRoles,"").replace("wairole:","")); 79 68 }, 80 69 … … 102 91 103 92 removeWaiRole: function(/*Element*/ elem, /*String*/ role){ 104 // summary: Removes the specified role from an element.105 // removes role attribute if no specific role provided 93 // summary: Removes the specified non-XHTML role from an element. 94 // removes role attribute if no specific role provided (for backwards compat.) 106 95 107 96 var roleValue = dojo.attr(elem, "role"); 108 if (!roleValue || !this.hasWaiRole(elem, role)){ return; }97 if (!roleValue){ return; } 109 98 if(role){ 110 99 var searchRole = dojo.isFF < 3 ? "wairole:" + role : role;