Changeset 14566

Show
Ignore:
Timestamp:
07/23/08 08:48:22 (4 months ago)
Author:
becky
Message:

refs #4828 updated to NOT deprecate getWaiRole. Instead getWaiRole will return any non-XHTML role for an element and empty string if element does not have a WAI role. Modified hasWaiRole to use getWaiRole. Updated tests.

Location:
dijit/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • dijit/trunk/tests/_base/wai.html

    r14496 r14566  
    1919                                        function getEmptyWairoleRole(){ 
    2020                                                var elem = dojo.byId("empty-wairole"); 
    21                                                 doh.assertTrue(dijit.hasWaiRole(elem)); 
     21                                                doh.assertFalse(dijit.hasWaiRole(elem)); 
    2222                                                doh.assertEqual("", dijit.getWaiRole(elem)); 
    2323                                        }, 
     
    3737                                        function getOnlyXHTMLRole(){ 
    3838                                                var elem=dojo.byId("navigation-role"); 
    39                                                 doh.assertTrue(dijit.hasWaiRole(elem, "contentinfo")); 
    40                                                 doh.assertEqual("contentinfo", dijit.getWaiRole(elem)); 
     39                                                doh.assertFalse(dijit.hasWaiRole(elem, "contentinfo")); 
     40                                                doh.assertEqual("", dijit.getWaiRole(elem)); 
    4141                                        }, 
    4242                         
    4343                                        function getWaiRoleFromMultiple(){ 
    44                                                 // deprecated in 1.2, always returns first role 
    4544                                                var elem=dojo.byId("multiple-role-wairole"); 
    4645                                                doh.assertTrue(dijit.hasWaiRole(elem, "menuitem")); 
    47                                                 doh.assertEqual("contentinfo", dijit.getWaiRole(elem)); 
     46                                                doh.assertEqual("menuitem", dijit.getWaiRole(elem)); 
    4847                                        }, 
    4948                                         
    5049                                        function getUnprefixedFromMultiple(){ 
    51                                                 // deprecated in 1.2, always returns first role 
    5250                                                var elem=dojo.byId("multiple-role"); 
    5351                                                doh.assertTrue(dijit.hasWaiRole(elem, "menuitem")); 
    54                                                 doh.assertEqual("contentinfo", dijit.getWaiRole(elem)); 
     52                                                doh.assertEqual("menuitem", dijit.getWaiRole(elem)); 
    5553                                        }, 
    5654                                 
  • dijit/trunk/_base/wai.js

    r14496 r14566  
    4848 
    4949        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. 
    5252                //              for backwards compatibility if role parameter not provided,  
    5353                //              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);             
    5855                if (role){ 
    59                         return ((" "+ roleValue.replace("wairole:", "") +" ").indexOf(" "+ role +" ") >= 0);  // Boolean 
     56                        return (waiRole.indexOf(role) > -1); 
    6057                }else{ 
    61                         return (dojo.trim(roleValue.replace(this._XhtmlRoles, "")).length > 0); 
     58                        return (waiRole.length >0); 
    6259                } 
    6360        }, 
    6461 
    6562        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). 
    6764                // returns: 
    68                 //              The first role of elem or an empty string if elem 
     65                //              The non-XHTML role of elem or an empty string if elem 
    6966                //              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:","")); 
    7968        }, 
    8069 
     
    10291 
    10392        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.) 
    10695                 
    10796                var roleValue = dojo.attr(elem, "role");  
    108                 if (!roleValue || !this.hasWaiRole(elem, role)){ return; } 
     97                if (!roleValue){ return; } 
    10998                if(role){ 
    11099                        var searchRole = dojo.isFF < 3 ? "wairole:" + role : role;