Ticket #3529: 3529.2.diff

File 3529.2.diff, 4.4 KB (added by davidb, 8 years ago)

updated (thanks Scott!)

  • tests/progressbar.js

     
    5656        expect(7);
    5757        el = $("#progressbar").progressbar();
    5858
    59         equals(el.ariaRole(), "progressbar", "aria role");
    60         equals(el.ariaState("valuemin"), 0, "aria-valuemin");
    61         equals(el.ariaState("valuemax"), 100, "aria-valuemax");
    62         equals(el.ariaState("valuenow"), 0, "aria-valuenow initially");
     59        equals(el.attr("role"), "progressbar", "aria role");
     60        equals(el.attr("aria-valuemin"), 0, "aria-valuemin");
     61        equals(el.attr("aria-valuemax"), 100, "aria-valuemax");
     62        equals(el.attr("aria-valuenow"), 0, "aria-valuenow initially");
    6363        el.progressbar("progress", 77);
    64         equals(el.ariaState("valuenow"), 77, "aria-valuenow");
     64        equals(el.attr("aria-valuenow"), 77, "aria-valuenow");
    6565        el.progressbar("disable");
    66         equals(el.ariaState("disabled"), "true", "aria-disabled");
     66        equals(el.attr("aria-disabled"), "true", "aria-disabled");
    6767        el.progressbar("enable");
    68         equals(el.ariaState("disabled"), "false", "enabled");
     68        equals(el.attr("aria-disabled"), "false", "enabled");
    6969});
    7070
    7171})(jQuery);
  • ui/ui.core.js

     
    108108        }
    109109};
    110110
     111// WAI-ARIA normalization
     112// tweak $.attr for FF2 implementation
     113if (isFF2){
    111114
     115var attr = $.attr;
     116$.attr = function(elem, name, value) {
     117        var set = value !== undefined,
     118                state = /^aria-/;
     119       
     120        return (name == 'role'
     121                ? (set
     122                        ? attr.call(this, elem, name, "wairole:" + value)
     123                        : (attr.apply(this, arguments) || "").replace(/^wairole:/, ""))
     124                : (state.test(name)
     125                        ? (set
     126                                ? elem.setAttributeNS("http://www.w3.org/2005/07/aaa", name.replace(state, "aaa:"), value)
     127                                : attr.call(this, elem, name.replace(state, "aaa:")))
     128                        : attr.apply(this,arguments)));
     129};
     130
     131}
     132
    112133//jQuery plugins
    113134$.fn.extend({
    114135       
     
    133154                        .attr('unselectable', 'on')
    134155                        .css('MozUserSelect', 'none')
    135156                        .bind('selectstart.ui', function() { return false; });
    136         },
    137        
    138         // WAI-ARIA Semantics
    139         ariaRole: function(role) {
    140                 return (role !== undefined
    141                        
    142                         // setter
    143                         ? this.attr("role", isFF2 ? "wairole:" + role : role)
    144                        
    145                         // getter
    146                         : (this.attr("role") || "").replace(/^wairole:/, ""));
    147         },
    148        
    149         ariaState: function(state, value) {
    150                 return (value !== undefined
    151                        
    152                         // setter
    153                         ? this.each(function(i, el) {
    154                                 (isFF2
    155                                         ? el.setAttributeNS("http://www.w3.org/2005/07/aaa",
    156                                                 "aaa:" + state, value)
    157                                         : $(el).attr("aria-" + state, value));
    158                         })
    159                        
    160                         // getter
    161                         : this.attr(isFF2 ? "aaa:" + state : "aria-" + state));
    162157        }
    163158       
    164159});
  • ui/ui.progressbar.js

     
    2525                this.element
    2626                        .addClass("ui-progressbar")
    2727                        .width(options.width)
    28                         .ariaRole("progressbar")
    29                         .ariaState("valuemin","0")
    30                         .ariaState("valuemax","100")
    31                         .ariaState("valuenow","0");
     28                        .attr("role","progressbar")
     29                        .attr("aria-valuemin","0")
     30                        .attr("aria-valuemax","100")
     31                        .attr("aria-valuenow","0");
    3232                       
    3333                $.extend(this, {
    3434                        active: false,
     
    103103        disable: function() {
    104104                this.element.addClass("ui-progressbar-disabled");
    105105                this.disabled = true;
    106                 this.element.ariaState("disabled", true);
     106                this.element.attr("aria-disabled", true);
    107107        },
    108108       
    109109        enable: function() {
    110110                this.element.removeClass("ui-progressbar-disabled");
    111111                this.disabled = false;
    112                 this.element.ariaState("disabled", false);
     112                this.element.attr("aria-disabled", false);
    113113        },
    114114       
    115115        pause: function() {
     
    132132                if (this.options.range && !this.options.text) {
    133133                        this.textElement.html(percent + '%');
    134134                }
    135                 this.element.ariaState("valuenow", percent);
     135                this.element.attr("aria-valuenow", percent);
    136136                this._propagate('progress', this.ui());
    137137        },
    138138       
  • ui/ui.dialog.js

     
    8383                                        (options.closeOnEscape && ev.keyCode
    8484                                                && ev.keyCode == $.keyCode.ESCAPE && self.close());
    8585                                })
    86                                 .ariaRole("dialog")
    87                                 .ariaState("labelledby", titleId)
     86                                .attr("role","dialog")
     87                                .attr("aria-labelledby", titleId)
    8888                                .mouseup(function() {
    8989                                        self.moveToTop();
    9090                                }),