From 6fff15c4f0a2e43085a89cb712f13f66e3fd8fee Mon Sep 17 00:00:00 2001 From: conorom Date: Mon, 27 Jan 2025 16:32:21 -0500 Subject: [PATCH] auto-headings for YouTube video embeds --- app/services/embed_code_service.rb | 4 ++-- .../_video_able_player_youtube.html.erb | 1 + spec/fixtures/fake_epub_with_embeds.epub | Bin 477556 -> 477584 bytes spec/services/embed_code_service_spec.rb | 4 +++- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/services/embed_code_service.rb b/app/services/embed_code_service.rb index 69ef3d325..cc243767a 100644 --- a/app/services/embed_code_service.rb +++ b/app/services/embed_code_service.rb @@ -166,8 +166,8 @@ def maybe_add_figcaption(node, file_set_presenter) end def heading_node(heading_tag_for_node, file_set_presenter) - # this whole "auto-heading" deal only applies to Able Player embeds (so, audio or video) - return nil unless file_set_presenter.audio? || file_set_presenter.video? + # this whole "auto-heading" deal only applies to media player embeds (so, audio, video or YouTube videos) + return nil unless file_set_presenter.audio? || file_set_presenter.video? || file_set_presenter.able_player_youtube_video? || file_set_presenter.youtube_player_video? # https://uit.stanford.edu/accessibility/concepts/screen-reader-only-content "<#{heading_tag_for_node} style=\"clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute;\">Media player: #{file_set_presenter.embed_code_title}" end diff --git a/app/views/hyrax/file_sets/media_display_embedded/_video_able_player_youtube.html.erb b/app/views/hyrax/file_sets/media_display_embedded/_video_able_player_youtube.html.erb index 01e6b0d25..65b91f04c 100644 --- a/app/views/hyrax/file_sets/media_display_embedded/_video_able_player_youtube.html.erb +++ b/app/views/hyrax/file_sets/media_display_embedded/_video_able_player_youtube.html.erb @@ -15,6 +15,7 @@ data-able-player data-skin="2020" data-youtube-id="<%=@presenter.youtube_id%>" + data-heading-level="0" <%# see HELIO-4718, HELIO-4802 %> data-allow-fullscreen=<%= params[:fs] == '1' ? "true" : "false" %> data-youtube-nocookie="true" <%# removes "watch later as..." button %> <%= raw file_set.closed_captions.present? ? 'data-transcript-div="video-transcript-container" data-lyrics-mode' : 'data-include-transcript="false"' %>> diff --git a/spec/fixtures/fake_epub_with_embeds.epub b/spec/fixtures/fake_epub_with_embeds.epub index 47cccc6724d84fa18d4354866c607d8d9394cee4..c3e41d16614ff94cea87e3f4a899e0646eaaa23d 100644 GIT binary patch delta 2924 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 player: #{video_top_level.title.first}") expect(enhanced_file).to include("

Media player: #{video_under_h1.title.first}

") + expect(enhanced_file).to include("

Media player: #{youtube_video.title.first}

") expect(enhanced_file).to include("

Media player: #{video_under_h2.title.first}

") expect(enhanced_file).to include("

Media player: #{video_under_h3.title.first}

") expect(enhanced_file).to include("
Media player: #{video_under_h4.title.first}
")