@@ -4,19 +4,24 @@ import DOMPurify from 'dompurify';
44
55function addSignFunctions ( AblePlayer ) {
66 AblePlayer . prototype . initSignLanguage = function ( ) {
7+ let firstSource , localSignSrc , remoteSignSrc , hasLocalSrc , hasRemoteSrc , hasRemoteSource , ytSignSrc , signSrc , signVideo ;
8+
79 this . hasSignLanguage = false ;
810 // Sign language is only currently supported in HTML5 player and YouTube.
9- var hasLocalSrc = ( this . sources [ 0 ] . getAttribute ( 'data-sign-src' ) !== undefined && this . sources [ 0 ] . getAttribute ( 'data-sign-src' ) !== "" ) ;
11+ firstSource = this . sources [ 0 ] ?? null ;
12+ localSignSrc = firstSource ? firstSource . getAttribute ( 'data-sign-src' ) : null ;
13+ remoteSignSrc = firstSource ? firstSource . getAttribute ( 'data-youtube-sign-src' ) : null ;
14+ hasLocalSrc = ( localSignSrc !== null && localSignSrc !== "" ) ;
1015 // YouTube src can either be on a `source` element or on the `video` element.
11- var hasRemoteSrc = ( this . $media . data ( 'youtube-sign-src' ) !== undefined && this . $media . data ( 'youtube-sign-src' ) !== "" ) ;
12- var hasRemoteSource = ( this . sources [ 0 ] . getAttribute ( 'data-youtube-sign-src' ) !== undefined && this . sources [ 0 ] . getAttribute ( 'data-youtube-sign-src' ) !== '' ) ;
16+ hasRemoteSrc = ( this . $media . data ( 'youtube-sign-src' ) !== undefined && this . $media . data ( 'youtube-sign-src' ) !== "" ) ;
17+ hasRemoteSource = ( remoteSignSrc !== null && remoteSignSrc !== '' ) ;
1318 if ( ! this . isIOS ( ) && ( hasLocalSrc || hasRemoteSrc || hasRemoteSource ) && ( this . player === 'html5' || this . player === 'youtube' ) ) {
1419 // check to see if there's a sign language video accompanying this video
1520 // check only the first source
1621 // If sign language is provided, it must be provided for all sources
17- let ytSignSrc = this . youTubeSignId ?? DOMPurify . sanitize ( this . sources [ 0 ] . getAttribute ( 'data-youtube-sign-src' ) ) ;
18- let signSrc = DOMPurify . sanitize ( this . sources [ 0 ] . getAttribute ( 'data-sign-src' ) ) ;
19- let signVideo = DOMPurify . sanitize ( this . $media . data ( 'youtube-sign-src' ) ) ;
22+ ytSignSrc = this . youTubeSignId ?? DOMPurify . sanitize ( remoteSignSrc ) ;
23+ signSrc = DOMPurify . sanitize ( localSignSrc ) ;
24+ signVideo = DOMPurify . sanitize ( this . $media . data ( 'youtube-sign-src' ) ) ;
2025 this . signFile = ( hasLocalSrc ) ? signSrc : false ;
2126 if ( hasRemoteSrc ) {
2227 this . signYoutubeId = signVideo ;
0 commit comments