1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-10 11:10:19 +02:00

fix: make sure all attributes are updated before applying to tag (#5416)

Fixes #5309
This commit is contained in:
Gary Katsevman 2018-09-07 08:56:11 -07:00 committed by GitHub
parent 6d6bfd1420
commit b25f024a04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -591,18 +591,28 @@ class Player extends Component {
// set tabindex to -1 to remove the video element from the focus order // set tabindex to -1 to remove the video element from the focus order
tag.setAttribute('tabindex', '-1'); tag.setAttribute('tabindex', '-1');
attrs.tabindex = '-1';
// Workaround for #4583 (JAWS+IE doesn't announce BPB or play button) // Workaround for #4583 (JAWS+IE doesn't announce BPB or play button)
// See https://github.com/FreedomScientific/VFO-standards-support/issues/78 // See https://github.com/FreedomScientific/VFO-standards-support/issues/78
// Note that we can't detect if JAWS is being used, but this ARIA attribute // Note that we can't detect if JAWS is being used, but this ARIA attribute
// doesn't change behavior of IE11 if JAWS is not being used // doesn't change behavior of IE11 if JAWS is not being used
if (IE_VERSION) { if (IE_VERSION) {
tag.setAttribute('role', 'application'); tag.setAttribute('role', 'application');
attrs.role = 'application';
} }
// Remove width/height attrs from tag so CSS can make it 100% width/height // Remove width/height attrs from tag so CSS can make it 100% width/height
tag.removeAttribute('width'); tag.removeAttribute('width');
tag.removeAttribute('height'); tag.removeAttribute('height');
if ('width' in attrs) {
delete attrs.width;
}
if ('height' in attrs) {
delete attrs.height;
}
Object.getOwnPropertyNames(attrs).forEach(function(attr) { Object.getOwnPropertyNames(attrs).forEach(function(attr) {
// don't copy over the class attribute to the player element when we're in a div embed // don't copy over the class attribute to the player element when we're in a div embed
// the class is already set up properly in the divEmbed case // the class is already set up properly in the divEmbed case