]> _ Git - fluidbook_tools.git/commitdiff
#7894
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 19 Jan 2026 14:25:41 +0000 (15:25 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 19 Jan 2026 14:25:41 +0000 (15:25 +0100)
src/Links/HTMLMultimediaPopupImage.php

index 29d9e524457ad9d47cde255774c0ccd4c8e8a47f..aef24e0517bfba33ee07fa7c10b5b2be5f5ac417 100644 (file)
@@ -4,6 +4,8 @@ namespace Fluidbook\Tools\Links;
 
 use Cubist\Util\Graphics\Image;
 use Cubist\Util\Graphics\Resizer;
+use Cubist\Util\Text;
+use Nette\Utils\Html;
 
 class HTMLMultimediaPopupImage extends NormalLink
 {
@@ -36,11 +38,23 @@ class HTMLMultimediaPopupImage extends NormalLink
 
         $imgSizeAttrs = is_array($dim) ? ' data-width="' . $dim[0] . '" data-height="' . $dim[1] . '"  width="' . $dim[0] . '" height="' . $dim[1] . '" ' : '';
 
-        $markup = '<div class="multimediaContainer" data-click-to-close="' . $this->clickToClose . '">';
-        $markup .= '<img ' . $imgSizeAttrs . ' src="' . Link::getUniversalLocation($this->to) . '" class="multimedia" aria-hidden="1" />';
         $alt = $this->getAlternativeText();
         if ($alt) {
-            $markup .= '<div class="visually-hidden" aria-live="polite">' . $alt . '</div>';
+            $adbid = 'adb_' . rand(1000, 100000);
+            $altmarkup = '<div class="visually-hidden" aria-live="polite" id="' . $adbid . '">' . $alt . '</div>';
+            $alttxt = Text::html2text($alt);
+        }
+
+        $markup = '<div class="multimediaContainer" data-click-to-close="' . $this->clickToClose . '">';
+        $markup .= '<img ' . $imgSizeAttrs . ' src="' . Link::getUniversalLocation($this->to) . '" class="multimedia" ';
+        if ($alt) {
+            $markup .= ' alt="' . $alttxt . '" aria-described-by="' . $adbid . '"';
+        } else {
+            $markup .= ' aria-hidden="true"';
+        }
+        $markup .= ' />';
+        if ($alt) {
+            $markup .= $altmarkup;
         }
         $markup .= '</div>';
         $read = '';