Skip to content

Commit 6d9f668

Browse files
#4 add arial values
1 parent 21345d1 commit 6d9f668

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

src/vcf-slider.ts

+16-5
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ export class VcfSlider extends LitElement {
152152
case 'value': {
153153
this.setLabelValues();
154154
this.knobIndexes.forEach(i => {
155+
this.setAriaValues(i);
155156
this.setLabelPosition(i);
156157
this.setKnobPostion(i);
157158
this.setLineColors();
@@ -166,10 +167,20 @@ export class VcfSlider extends LitElement {
166167
const { knobIndexes, values } = this;
167168
knobIndexes.forEach(i => {
168169
const labelElement = this.labelElement(i) as HTMLElement;
169-
if (this.labelElement(i)) labelElement.innerText = `${values[i]}`;
170+
if (labelElement) labelElement.innerText = `${values[i]}`;
170171
});
171172
}
172173

174+
private setAriaValues(i = 0) {
175+
const { knobIndexes, values, knobs, min, max, labels } = this;
176+
const knob = this.knobElement(i) as HTMLElement;
177+
if (knob) {
178+
knob.setAttribute('aria-valuenow', `${values[i]}`);
179+
knob.setAttribute('aria-valuemin', `${knobs === 1 ? min : this.getPrevNeighborValue(i)}`);
180+
knob.setAttribute('aria-valuemax', `${knobs === 1 ? max : this.getNextNeighborValue(i)}`);
181+
}
182+
}
183+
173184
private get initialValue() {
174185
const { knobs, min, max, step } = this;
175186
const valueStep = (max - min) / (knobs - 1);
@@ -372,21 +383,21 @@ export class VcfSlider extends LitElement {
372383
}
373384

374385
private getPrevNeighborValue(knobIndex: number) {
375-
const { values, step } = this;
386+
const { values, step, min } = this;
376387
let neighboringValue;
377388
neighboringValue = values[knobIndex - 1];
378389
const neighborPrecisionOffset = neighboringValue % step;
379390
if (neighborPrecisionOffset) neighboringValue += step - neighborPrecisionOffset;
380-
return neighboringValue;
391+
return neighboringValue ? neighboringValue : min;
381392
}
382393

383394
private getNextNeighborValue(knobIndex: number) {
384-
const { values, step } = this;
395+
const { values, step, max } = this;
385396
let neighboringValue;
386397
neighboringValue = values[knobIndex + 1];
387398
const neighborPrecisionOffset = neighboringValue % step;
388399
if (neighborPrecisionOffset) neighboringValue -= neighborPrecisionOffset;
389-
return neighboringValue;
400+
return neighboringValue ? neighboringValue : max;
390401
}
391402

392403
private decreaseKnobValue({ knobIndex, single, first = this.min, other }: KnobValueOptions) {

0 commit comments

Comments
 (0)