Skip to content

Commit

Permalink
fix(slider): fixes usage of aria-valuetext, adds aria-valuenow
Browse files Browse the repository at this point in the history
  • Loading branch information
benjamind committed Dec 17, 2019
1 parent 5800915 commit 4b25a89
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 19 deletions.
25 changes: 11 additions & 14 deletions __snapshots__/Slider.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,9 @@
```html
<div id="labelContainer">
<label for="input" id="label"></label>
<div
aria-labelledby="label"
aria-readonly="true"
id="value"
role="textbox"
></div>
<div aria-labelledby="label" aria-readonly="true" id="value" role="textbox">
10
</div>
</div>
<div id="controls">
<div
Expand All @@ -25,7 +22,8 @@
aria-label=""
aria-valuemax="20"
aria-valuemin="0"
aria-valuetext=""
aria-valuenow="10"
aria-valuetext="10"
id="input"
max="20"
min="0"
Expand All @@ -48,12 +46,9 @@
```html
<div id="labelContainer">
<label for="input" id="label"></label>
<div
aria-labelledby="label"
aria-readonly="true"
id="value"
role="textbox"
></div>
<div aria-labelledby="label" aria-readonly="true" id="value" role="textbox">
10
</div>
</div>
<div id="controls">
<div class="track"></div>
Expand All @@ -63,7 +58,8 @@
aria-label=""
aria-valuemax="20"
aria-valuemin="0"
aria-valuetext=""
aria-valuenow="10"
aria-valuetext="10"
id="input"
max="20"
min="0"
Expand Down Expand Up @@ -1104,6 +1100,7 @@
aria-label=""
aria-valuemax="100"
aria-valuemin="-100"
aria-valuenow="0"
aria-valuetext="0"
id="input"
max="100"
Expand Down
11 changes: 8 additions & 3 deletions packages/slider/src/slider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ export class Slider extends Focusable {
}

this._value = value;
this.ariaValueText = this.getAriaValueText(this._value);
this.requestUpdate('value', oldValue);
}

Expand Down Expand Up @@ -78,8 +77,13 @@ export class Slider extends Focusable {
@property({ attribute: false })
public getAriaValueText: (value: number) => string = (value) => `${value}`;

@property({ reflect: true, attribute: 'aria-valuetext' })
private ariaValueText = '';
@property({ attribute: false })
private get ariaValueText(): string {
if (!this.getAriaValueText) {
return `${this.value}`;
}
return this.getAriaValueText(this.value);
}

@property()
public label = '';
Expand Down Expand Up @@ -254,6 +258,7 @@ export class Slider extends Focusable {
max="${this.max}"
aria-disabled=${this.disabled ? 'true' : 'false'}
aria-label=${this.ariaLabel || this.label}
aria-valuenow=${this.value}
aria-valuemin=${this.min}
aria-valuemax=${this.max}
aria-valuetext=${this.ariaValueText}
Expand Down
5 changes: 3 additions & 2 deletions packages/slider/test/slider.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -600,11 +600,12 @@ describe('Slider', () => {

await elementUpdated(el);

expect(el.getAttribute('aria-valuetext')).to.equal('50%');
const input = el.focusElement as HTMLInputElement;
expect(input.getAttribute('aria-valuetext')).to.equal('50%');

el.value = 100;
await elementUpdated(el);

expect(el.getAttribute('aria-valuetext')).to.equal('100%');
expect(input.getAttribute('aria-valuetext')).to.equal('100%');
});
});

0 comments on commit 4b25a89

Please sign in to comment.