mirror of
https://github.com/videojs/video.js.git
synced 2025-02-10 12:08:14 +02:00
Change the button text when the button state is toggled, and indicate to screen reader users that the text may change
Signed-off-by: Greg Kraus <gdkraus@ncsu.edu>
This commit is contained in:
parent
56ebe98386
commit
1d6e93d990
18
src/js/controls.js
vendored
18
src/js/controls.js
vendored
@ -100,6 +100,7 @@ vjs.Button.prototype.createEl = function(type, props){
|
||||
className: this.buildCSSClass(),
|
||||
innerHTML: '<div><span class="vjs-control-text">' + (this.buttonText || 'Need Text') + '</span></div>',
|
||||
role: 'button',
|
||||
'aria-live': 'polite', // let the screen reader user know that the text of the button may change
|
||||
tabIndex: 0
|
||||
}, props);
|
||||
|
||||
@ -209,12 +210,14 @@ vjs.PlayToggle.prototype.onClick = function(){
|
||||
vjs.PlayToggle.prototype.onPlay = function(){
|
||||
vjs.removeClass(this.el_, 'vjs-paused');
|
||||
vjs.addClass(this.el_, 'vjs-playing');
|
||||
this.el_.children[0].children[0].innerHTML = 'Pause'; // change the button text to "Pause"
|
||||
};
|
||||
|
||||
// OnPause - Add the vjs-paused class to the element so it can change appearance
|
||||
vjs.PlayToggle.prototype.onPause = function(){
|
||||
vjs.removeClass(this.el_, 'vjs-playing');
|
||||
vjs.addClass(this.el_, 'vjs-paused');
|
||||
this.el_.children[0].children[0].innerHTML = 'Play'; // change the button text to "Play"
|
||||
};
|
||||
|
||||
|
||||
@ -240,8 +243,10 @@ vjs.FullscreenToggle.prototype.buildCSSClass = function(){
|
||||
vjs.FullscreenToggle.prototype.onClick = function(){
|
||||
if (!this.player_.isFullScreen) {
|
||||
this.player_.requestFullScreen();
|
||||
this.el_.children[0].children[0].innerHTML = 'Non-Fullscreen'; // change the button text to "Non-Fullscreen"
|
||||
} else {
|
||||
this.player_.cancelFullScreen();
|
||||
this.el_.children[0].children[0].innerHTML = 'Fullscreen'; // change the button to "Fullscreen"
|
||||
}
|
||||
};
|
||||
|
||||
@ -896,6 +901,19 @@ vjs.MuteToggle.prototype.update = function(){
|
||||
} else if (vol < 0.67) {
|
||||
level = 2;
|
||||
}
|
||||
|
||||
// Don't rewrite the button text if the actual text doesn't change.
|
||||
// This causes unnecessary and confusing information for screen reader users.
|
||||
// This check is needed because this function gets called every time the volume level is changed.
|
||||
if(this.player_.muted()){
|
||||
if(this.el_.children[0].children[0].innerHTML!='Unmute'){
|
||||
this.el_.children[0].children[0].innerHTML = 'Unmute'; // change the button text to "Unmute"
|
||||
}
|
||||
} else {
|
||||
if(this.el_.children[0].children[0].innerHTML!='Mute'){
|
||||
this.el_.children[0].children[0].innerHTML = 'Mute'; // change the button text to "Mute"
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO improve muted icon classes */
|
||||
for (var i = 0; i < 4; i++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user