@@ -165,7 +165,7 @@ Object.assign(MediaElementPlayer.prototype, {
165165 inputId = `${ t . id } -qualities-${ quality } `
166166 ;
167167 player . qualitiesContainer . querySelector ( 'ul' ) . innerHTML += `<li class="${ t . options . classPrefix } qualities-selector-list-item">` +
168- `<input class="${ t . options . classPrefix } qualities-selector-input" type="radio" name="${ t . id } _qualities" disabled="disabled"` +
168+ `<input class="${ t . options . classPrefix } qualities-selector-input ${ ( quality === defaultValue ? ` ${ t . options . classPrefix } qualities-selected-input` : '' ) } " type="radio" name="${ t . id } _qualities" disabled="disabled" ` +
169169 `value="${ quality } " id="${ inputId } " ${ ( quality === defaultValue ? ' checked="checked"' : '' ) } />` +
170170 `<label for="${ inputId } " class="${ t . options . classPrefix } qualities-selector-label ${ ( quality === defaultValue ? ` ${ t . options . classPrefix } qualities-selected` : '' ) } ">` +
171171 `${ src . title || quality } </label></li>` ;
@@ -196,7 +196,9 @@ Object.assign(MediaElementPlayer.prototype, {
196196 qualitiesSelector . style . height = `${ qualitiesSelector . querySelector ( 'ul' ) . offsetHeight } px` ;
197197 qualitiesSelector . style . top = `${ ( - 1 * parseFloat ( qualitiesSelector . offsetHeight ) ) } px` ;
198198 qualityButton . setAttribute ( 'aria-expanded' , 'true' ) ;
199- qualitiesList . focus ( ) ;
199+ const selectedLabel = qualitiesSelector . querySelector ( '.' + t . options . classPrefix + 'qualities-selected' ) ;
200+ const selectedInput = selectedLabel . parentElement . querySelector ( 'input' ) ;
201+ selectedInput . focus ( ) ;
200202 isHidden = false ;
201203 }
202204
@@ -429,15 +431,17 @@ Object.assign(MediaElementPlayer.prototype, {
429431 ;
430432 currentQuality = newQuality ;
431433
432- const selected = player . qualitiesContainer . querySelectorAll ( `.${ t . options . classPrefix } qualities-selected` ) ;
433- for ( let i = 0 , total = selected . length ; i < total ; i ++ ) {
434- mejs . Utils . removeClass ( selected [ i ] , `${ t . options . classPrefix } qualities-selected` ) ;
434+ const formerSelected = player . qualitiesContainer . querySelectorAll ( `.${ t . options . classPrefix } qualities-selected` ) ;
435+ for ( let i = 0 , total = formerSelected . length ; i < total ; i ++ ) {
436+ mejs . Utils . removeClass ( formerSelected [ i ] , `${ t . options . classPrefix } qualities-selected` ) ;
437+ formerSelected [ i ] . parentElement . querySelector ( 'input' ) . classList . remove ( `${ t . options . classPrefix } qualities-selected-input` ) ;
435438 }
436439
437440 self . checked = true ;
438- const siblings = mejs . Utils . siblings ( self , ( el ) => mejs . Utils . hasClass ( el , `${ t . options . classPrefix } qualities-selector-label` ) ) ;
439- for ( let j = 0 , total = siblings . length ; j < total ; j ++ ) {
440- mejs . Utils . addClass ( siblings [ j ] , `${ t . options . classPrefix } qualities-selected` ) ;
441+ const currentSelected = mejs . Utils . siblings ( self , ( el ) => mejs . Utils . hasClass ( el , `${ t . options . classPrefix } qualities-selector-label` ) ) ;
442+ for ( let j = 0 , total = currentSelected . length ; j < total ; j ++ ) {
443+ mejs . Utils . addClass ( currentSelected [ j ] , `${ t . options . classPrefix } qualities-selected` ) ;
444+ currentSelected [ j ] . parentElement . querySelector ( 'input' ) . classList . add ( `${ t . options . classPrefix } qualities-selected-input` ) ;
441445 }
442446
443447 player . qualitiesContainer . querySelector ( 'button' ) . innerHTML = newQuality ;
0 commit comments