Chromium Code Reviews| Index: ui/file_manager/audio_player/elements/control_panel.js |
| diff --git a/ui/file_manager/audio_player/elements/control_panel.js b/ui/file_manager/audio_player/elements/control_panel.js |
| index 89562878932e291d1dcad25ac2b8ebd98db8d363..3427fe4236aa42d343e83e6b40924acb130effa6 100644 |
| --- a/ui/file_manager/audio_player/elements/control_panel.js |
| +++ b/ui/file_manager/audio_player/elements/control_panel.js |
| @@ -16,7 +16,9 @@ |
| playing: { |
| type: Boolean, |
| value: false, |
| - notify: true |
| + notify: true, |
| + reflectToAttribute: true, |
| + observer: 'playingChanged_' |
| }, |
| /** |
| @@ -88,6 +90,14 @@ |
| type: Boolean, |
| value: false, |
| notify: true |
| + }, |
| + |
| + /** |
| + * Dictionary which contains aria-labels for each controls. |
| + */ |
| + ariaLabels: { |
| + type: Object, |
| + observer: 'ariaLabelsChanged_' |
| } |
| }, |
| @@ -147,19 +157,34 @@ |
| }, |
| /** |
| - * Computes state for play button based on 'playing' property. |
| - * @return {string} |
| + * Invoked when the playing property is changed. |
| + * @param {boolean} playing |
| + * @private |
| */ |
| - computePlayState_: function(playing) { |
| - return playing ? "playing" : "ended"; |
| + playingChanged_: function(playing) { |
| + if (this.ariaLabels) { |
| + this.$.play.setAttribute('aria-label', |
| + playing ? this.ariaLabels.pause : this.ariaLabels.play); |
| + } |
| }, |
| /** |
| - * Computes style for '.filled' element of progress bar. |
| - * @return {string} |
| + * Invoked when the ariaLabels property is changed. |
| + * @param {Object} ariaLabels |
| + * @private |
| */ |
| - computeProgressBarStyle_: function(time, duration) { |
| - return 'width: ' + (time / duration * 100) + '%;'; |
| + ariaLabelsChanged_: function(ariaLabels) { |
|
yawano
2015/11/06 05:38:37
small nit: assert(ariaLabels)?
fukino
2015/11/06 10:13:21
Done.
|
| + // TODO(fukino): Use data bindings. |
| + this.$.volumeSlider.setAttribute('aria-label', ariaLabels.volumeSlider); |
|
yawano
2015/11/06 05:38:37
Is it difficult to use i18nTemplate here as we do
fukino
2015/11/06 10:13:21
I pass translated labels to the custom element bec
|
| + this.$.shuffle.setAttribute('aria-label', ariaLabels.shuffle); |
| + this.$.repeat.setAttribute('aria-label', ariaLabels.repeat); |
| + this.$.previous.setAttribute('aria-label', ariaLabels.previous); |
| + this.$.play.setAttribute('aria-label', |
| + this.playing ? ariaLabels.pause : ariaLabels.play); |
| + this.$.next.setAttribute('aria-label', ariaLabels.next); |
| + this.$.volume.setAttribute('aria-label', ariaLabels.volume); |
| + this.$.playList.setAttribute('aria-label', ariaLabels.playList); |
| + this.$.timeSlider.setAttribute('aria-label', ariaLabels.seekSlider); |
| } |
| }); |
| })(); // Anonymous closure |