dev/accessiblity#3 Add aria-label to datepicker element
authordeb.monish <monish.deb@jmaconsulting.biz>
Fri, 25 May 2018 12:24:15 +0000 (17:54 +0530)
committerdeb.monish <monish.deb@jmaconsulting.biz>
Fri, 25 May 2018 12:45:59 +0000 (18:15 +0530)
CRM/Core/Form.php
js/Common.js

index 908bdfebbeddcfbdea6ecfc89752c20334c611df..113411d7ff83c9ddb81115c849b3147f2a9d748f 100644 (file)
@@ -376,6 +376,9 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
     if ($type == 'datepicker') {
       $attributes = ($attributes ? $attributes : array());
       $attributes['data-crm-datepicker'] = json_encode((array) $extra);
+      if (!empty($attributes['aria-label']) || $label) {
+        $attributes['aria-label'] = CRM_Utils_Array::value('aria-label', $attributes, $label);
+      }
       $type = "text";
     }
     if ($type == 'select' && is_array($extra)) {
index 43cc526b7213c192b4d2e000f7634bbe9720f7b6..0460403c79df7b0ff13453871b47ae773c0b62de 100644 (file)
@@ -690,6 +690,7 @@ if (!CRM.vars) CRM.vars = {};
         $timeField
           .addClass('crm-form-text crm-form-time')
           .attr('placeholder', $dataField.attr('time-placeholder') === undefined ? ts('Time') : $dataField.attr('time-placeholder'))
+          .attr('aria-label', $dataField.attr('time-placeholder') === undefined ? ts('Time') : $dataField.attr('time-placeholder'))
           .change(updateDataField)
           .timeEntry({
             spinnerImage: '',
@@ -699,7 +700,7 @@ if (!CRM.vars) CRM.vars = {};
       if (settings.date !== false) {
         // Render "number" field for year-only format, calendar popup for all other formats
         $dateField = $('<input type="' + type + '">').insertAfter($dataField);
-        copyAttributes($dataField, $dateField, ['placeholder', 'style', 'class', 'disabled']);
+        copyAttributes($dataField, $dateField, ['placeholder', 'style', 'class', 'disabled', 'aria-label']);
         $dateField.addClass('crm-form-' + type);
         if (hasDatepicker) {
           settings.minDate = settings.minDate ? CRM.utils.makeDate(settings.minDate) : null;