Ticket #3482: progress-aria.3.diff

File progress-aria.3.diff, 2.1 KB (added by davidb, 11 years ago)

improved tests.

  • tests/progressbar.js

     
    5252
    5353});
    5454
     55test("accessibility", function() {
     56        expect(7);
     57        el = $("#progressbar").progressbar();
    5558
     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");
     63        el.progressbar("progress", 77);
     64        equals(el.ariaState("valuenow"), 77, "aria-valuenow");
     65        el.progressbar("disable");
     66        equals(el.ariaState("disabled"), "true", "aria-disabled");
     67        el.progressbar("enable");
     68        equals(el.ariaState("disabled"), "false", "enabled");
     69});
     70
    5671})(jQuery);
  • ui/ui.progressbar.js

     
    2323                        text = options.text || '0%';
    2424               
    2525                this.element.addClass("ui-progressbar").width(options.width);
    26                
     26                this.element.ariaRole("progressbar");
     27                this.element.ariaState("valuemin","0");
     28                this.element.ariaState("valuemax","100");
     29                this.element.ariaState("valuenow","0");
    2730                $.extend(this, {
    2831                        active: false,
    2932                        pixelState: 0,
     
    97100        disable: function() {
    98101                this.element.addClass("ui-progressbar-disabled");
    99102                this.disabled = true;
     103                this.element.ariaState("disabled", true);
    100104        },
    101105       
    102106        enable: function() {
    103107                this.element.removeClass("ui-progressbar-disabled");
    104108                this.disabled = false;
     109                this.element.ariaState("disabled", false);
    105110        },
    106111       
    107112        pause: function() {
     
    120125                this.bar.width(this.pixelState);
    121126                this.textElement.width(this.pixelState);
    122127               
     128                var percent = Math.round(this.percentState);
    123129                if (this.options.range && !this.options.text) {
    124                         this.textElement.html(Math.round(this.percentState) + '%');
     130                        this.textElement.html(percent + '%');
    125131                }
     132                this.element.ariaState("valuenow", percent);
    126133                this._propagate('progress', this.ui());
    127134        },
    128135