Aleksander Machniak
2015-07-31 6c7be218f762c79d0fd776bee852924c6023d2ce
plugins/jqueryui/js/jquery-ui-accessible-datepicker.js
@@ -74,13 +74,14 @@
         .attr('aria-labelledby', inst.id + '-dp-title');
      }
      else {
         inst.dpDiv.attr('id', inst.id + '-dp-widget')
         var widgetId = inst.dpDiv.attr('id') || inst.id + '-dp-widget';
         inst.dpDiv.attr('id', widgetId)
            .attr('aria-hidden', 'true')
            .attr('aria-labelledby', inst.id + '-dp-title');
            $(inst.input).attr('aria-haspopup', 'true')
               .attr('aria-expanded', 'false')
               .attr('aria-owns', inst.id + '-dp-widget');
               .attr('aria-owns', widgetId);
      }
      return inst;
@@ -93,17 +94,23 @@
      var that = this;
      // register additional keyboard events to control date selection with cursor keys
      $(target).bind('keyup', function(event) {
      $(target).unbind('keydown.datepicker-extended').bind('keydown.datepicker-extended', function(event) {
         var inc = 1;
         switch (event.keyCode) {
            case 109:
            case 173:
            case 189:  // "minus"
               inc = -1;
            case 61:
            case 107:
            case 187:  // "plus"
               // do nothing if the input does not contain full date string
               if (this.value.length < that._formatDate(inst, inst.selectedDay, inst.selectedMonth, inst.selectedYear).length) {
                  return true;
               }
               that._adjustInstDate(inst, inc, 'D');
               that._selectDate(target, that._formatDate(inst, inst.selectedDay, inst.selectedMonth, inst.selectedYear));
               break;
               that._selectDateRC(target, that._formatDate(inst, inst.selectedDay, inst.selectedMonth, inst.selectedYear));
               return false;
            case $.ui.keyCode.UP:
            case $.ui.keyCode.DOWN:
@@ -192,7 +199,7 @@
         .attr('tabindex', inst.inline ? '0' : '-1')
         .attr('role', 'grid')
         .attr('aria-readonly', 'true')
         .attr('aria-activedescendant', activeCell.attr('id') || '')
         .attr('aria-activedescendant', activeCell ? activeCell.attr('id') : '')
         .find('td').attr('role', 'gridcell').attr('aria-selected', 'false')
         .find('a').attr('tabindex', '-1');
@@ -206,8 +213,23 @@
         inst.dpDiv.find('.ui-datepicker-calendar').focus();
         inst._hasfocus = false;
      }
   }
   },
   _selectDateRC: function(id, dateStr) {
      var target = $(id), inst = this._getInst(target[0]);
      dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
      if (inst.input) {
         inst.input.val(dateStr);
      }
      this._updateAlternate(inst);
      if (inst.input) {
         inst.input.trigger("change"); // fire the change event
      }
      if (inst.inline) {
         this._updateDatepicker(inst);
      }
   }
});
}(jQuery));
}(jQuery));