From bc5c360551eca0f7e520cb94ec7e584432a7b2ab Mon Sep 17 00:00:00 2001 From: Denis Chenu Date: Fri, 12 Apr 2019 18:48:29 +0200 Subject: [PATCH] Fixed issue #14763: Slider didn't have label Dev: use existing labelleby of input --- .../answer/multiplenumeric/rows/sliders/answer_row.twig | 2 +- .../questions/numeric-slider/scripts/numeric-slider.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/application/views/survey/questions/answer/multiplenumeric/rows/sliders/answer_row.twig b/application/views/survey/questions/answer/multiplenumeric/rows/sliders/answer_row.twig index 37e599618c7..e8638d54f1b 100644 --- a/application/views/survey/questions/answer/multiplenumeric/rows/sliders/answer_row.twig +++ b/application/views/survey/questions/answer/multiplenumeric/rows/sliders/answer_row.twig @@ -44,7 +44,7 @@ 'class': 'form-control answer-item numeric-item hidden', 'id' : "answer" ~ myfname ~ "slid", }) - }} + }} {{ C.Html.textField( myfname, dispVal ,{ 'class': 'form-control answer-item numeric-item ls-js-hidden slider-untouched', 'id' : "answer" ~ myfname, diff --git a/assets/packages/questions/numeric-slider/scripts/numeric-slider.js b/assets/packages/questions/numeric-slider/scripts/numeric-slider.js index 56c4516531d..54a73c89f77 100644 --- a/assets/packages/questions/numeric-slider/scripts/numeric-slider.js +++ b/assets/packages/questions/numeric-slider/scripts/numeric-slider.js @@ -156,12 +156,15 @@ var LSSlider = function (options) { // document.styleSheets[0].addRule('#' + elementObject.attr('id') + ' .slider-handle.custom::before', '{ content: "' + custom_handle + '" }'); } sliderObject = new Slider(elementObject[0], createSliderSettings()); + /* a11y : slider need a label */ + if(rootElementObject.attr("aria-labelledby") && $(sliderObject.getElement()).find("[role='slider']:not('.hide')").length) { + $(sliderObject.getElement()).find("[role='slider']:not('.hide')").attr("aria-labelledby",rootElementObject.attr("aria-labelledby")); + } if(rootElementObject.val() === "") { sliderObject.$sliderElem.addClass('slider-untouched'); if(setPosition) { triggerChanges(); } - } else { sliderObject.setValue(rootElementObject.val().toString().replace(separator,'.'), true, true); }