]> source.dussan.org Git - jquery-ui.git/commitdiff
Tweaking attr to normalize for FF2 ARIA implementation. Removed ariaRole and ariaStat...
authorDavid Bolter <david.bolter@gmail.com>
Wed, 5 Nov 2008 19:43:21 +0000 (19:43 +0000)
committerDavid Bolter <david.bolter@gmail.com>
Wed, 5 Nov 2008 19:43:21 +0000 (19:43 +0000)
tests/progressbar.js
ui/ui.core.js
ui/ui.dialog.js
ui/ui.progressbar.js

index f3e5c625e64f94f8acf55828fb151719c4472e22..a490c035596f46366ce26e7cd766facc4479a1aa 100644 (file)
@@ -56,16 +56,16 @@ test("accessibility", function() {
        expect(7);
        el = $("#progressbar").progressbar();
 
-       equals(el.ariaRole(), "progressbar", "aria role");
-       equals(el.ariaState("valuemin"), 0, "aria-valuemin");
-       equals(el.ariaState("valuemax"), 100, "aria-valuemax");
-       equals(el.ariaState("valuenow"), 0, "aria-valuenow initially");
+       equals(el.attr("role"), "progressbar", "aria role");
+       equals(el.attr("aria-valuemin"), 0, "aria-valuemin");
+       equals(el.attr("aria-valuemax"), 100, "aria-valuemax");
+       equals(el.attr("aria-valuenow"), 0, "aria-valuenow initially");
        el.progressbar("progress", 77);
-       equals(el.ariaState("valuenow"), 77, "aria-valuenow");
+       equals(el.attr("aria-valuenow"), 77, "aria-valuenow");
        el.progressbar("disable");
-       equals(el.ariaState("disabled"), "true", "aria-disabled");
+       equals(el.attr("aria-disabled"), "true", "aria-disabled");
        el.progressbar("enable");
-       equals(el.ariaState("disabled"), "false", "enabled");
+       equals(el.attr("aria-disabled"), "false", "enabled");
 });
 
 })(jQuery);
index de628a94d1d129698f01b31680d6be0ee786f96f..5c4f481eb8364867d5fa7b894d06940b768be25a 100644 (file)
@@ -108,6 +108,27 @@ $.ui = {
        }
 };
 
+// WAI-ARIA normalization
+// tweak $.attr for FF2 implementation
+if (isFF2){
+
+var attr = $.attr;
+$.attr = function(elem, name, value) {
+       var set = value !== undefined,
+               state = /^aria-/;
+       
+       return (name == 'role'
+               ? (set
+                       ? attr.call(this, elem, name, "wairole:" + value)
+                       : (attr.apply(this, arguments) || "").replace(/^wairole:/, ""))
+               : (state.test(name)
+                       ? (set
+                               ? elem.setAttributeNS("http://www.w3.org/2005/07/aaa", name.replace(state, "aaa:"), value)
+                               : attr.call(this, elem, name.replace(state, "aaa:")))
+                       : attr.apply(this,arguments)));
+};
+
+}
 
 //jQuery plugins
 $.fn.extend({
@@ -133,32 +154,6 @@ $.fn.extend({
                        .attr('unselectable', 'on')
                        .css('MozUserSelect', 'none')
                        .bind('selectstart.ui', function() { return false; });
-       },
-       
-       // WAI-ARIA Semantics
-       ariaRole: function(role) {
-               return (role !== undefined
-                       
-                       // setter
-                       ? this.attr("role", isFF2 ? "wairole:" + role : role)
-                       
-                       // getter
-                       : (this.attr("role") || "").replace(/^wairole:/, ""));
-       },
-       
-       ariaState: function(state, value) {
-               return (value !== undefined
-                       
-                       // setter
-                       ? this.each(function(i, el) {
-                               (isFF2
-                                       ? el.setAttributeNS("http://www.w3.org/2005/07/aaa",
-                                               "aaa:" + state, value)
-                                       : $(el).attr("aria-" + state, value));
-                       })
-                       
-                       // getter
-                       : this.attr(isFF2 ? "aaa:" + state : "aria-" + state));
        }
        
 });
index c940f657d6a94d53c4cd4790ae7e7bf9acc558e5..22ed2bb1882c275c6dbe434a3a47b986cc651e96 100644 (file)
@@ -83,8 +83,8 @@ $.widget("ui.dialog", {
                                        (options.closeOnEscape && ev.keyCode
                                                && ev.keyCode == $.keyCode.ESCAPE && self.close());
                                })
-                               .ariaRole("dialog")
-                               .ariaState("labelledby", titleId)
+                               .attr("role","dialog")
+                               .attr("aria-labelledby", titleId)
                                .mouseup(function() {
                                        self.moveToTop();
                                }),
index e2266ea68a1b165ddf52042e12593875730509bf..4f4fead64d62b7b19e103753cdb8b05dfcaf0b14 100644 (file)
@@ -25,10 +25,10 @@ $.widget("ui.progressbar", {
                this.element
                        .addClass("ui-progressbar")
                        .width(options.width)
-                       .ariaRole("progressbar")
-                       .ariaState("valuemin","0")
-                       .ariaState("valuemax","100")
-                       .ariaState("valuenow","0");
+                       .attr("role","progressbar")
+                       .attr("aria-valuemin","0")
+                       .attr("aria-valuemax","100")
+                       .attr("aria-valuenow","0");
                        
                $.extend(this, {
                        active: false,
@@ -103,13 +103,13 @@ $.widget("ui.progressbar", {
        disable: function() {
                this.element.addClass("ui-progressbar-disabled");
                this.disabled = true;
-               this.element.ariaState("disabled", true);
+               this.element.attr("aria-disabled", true);
        },
        
        enable: function() {
                this.element.removeClass("ui-progressbar-disabled");
                this.disabled = false;
-               this.element.ariaState("disabled", false);
+               this.element.attr("aria-disabled", false);
        },
        
        pause: function() {
@@ -132,7 +132,7 @@ $.widget("ui.progressbar", {
                if (this.options.range && !this.options.text) {
                        this.textElement.html(percent + '%');
                }
-               this.element.ariaState("valuenow", percent);
+               this.element.attr("aria-valuenow", percent);
                this._propagate('progress', this.ui());
        },