From c6677dde20d6191f6617212dc54e289839d47c3c Mon Sep 17 00:00:00 2001 From: Brad Simpson Date: Thu, 4 Jun 2026 13:44:41 -0600 Subject: [PATCH 1/2] Fix: add aria-label to iframe for screen readers (fixes #22) --- templates/youtube.hbs | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/youtube.hbs b/templates/youtube.hbs index ad7ea60..9a69cc4 100644 --- a/templates/youtube.hbs +++ b/templates/youtube.hbs @@ -22,6 +22,7 @@ &controls={{#if _media._controls}}1{{else}}0{{/if~}} &playsinline={{#if _media._playsinline}}1{{else}}0{{/if~}} &enablejsapi=1&iv_load_policy={{#if _media._showAnnotations}}1{{else}}3{{/if~}}" + {{#if displayTitle}}aria-label="{{displayTitle}}"{{else}}{{#if title}}aria-label="{{title}}"{{/if}}{{/if}} {{#if _media._allowFullscreen}} allowfullscreen="true"{{/if}} allow="clipboard-write; autoplay; encrypted-media;" frameborder="0"> From 908761bb0e60ab159115cc172353c08d09672bd5 Mon Sep 17 00:00:00 2001 From: Brad Simpson Date: Thu, 16 Jul 2026 10:24:20 -0600 Subject: [PATCH 2/2] Fix: reference visible title heading via aria-labelledby (#22) Per PR review, when displayTitle is set the iframe now references the visible component heading (#{_id}-heading) with aria-labelledby instead of duplicating the string in aria-label. Falls back to aria-label with the non-visible title field when displayTitle is empty. Co-Authored-By: Claude Opus 4.8 (1M context) --- templates/youtube.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/youtube.hbs b/templates/youtube.hbs index 9a69cc4..4380f19 100644 --- a/templates/youtube.hbs +++ b/templates/youtube.hbs @@ -22,7 +22,7 @@ &controls={{#if _media._controls}}1{{else}}0{{/if~}} &playsinline={{#if _media._playsinline}}1{{else}}0{{/if~}} &enablejsapi=1&iv_load_policy={{#if _media._showAnnotations}}1{{else}}3{{/if~}}" - {{#if displayTitle}}aria-label="{{displayTitle}}"{{else}}{{#if title}}aria-label="{{title}}"{{/if}}{{/if}} + {{#if displayTitle}}aria-labelledby="{{_id}}-heading"{{else}}{{#if title}}aria-label="{{title}}"{{/if}}{{/if}} {{#if _media._allowFullscreen}} allowfullscreen="true"{{/if}} allow="clipboard-write; autoplay; encrypted-media;" frameborder="0">