Fehlendes Title-Tag bei Bildern mit Links ergänzen

Ist in Contao (hier konkrekt Verison 4.9) ein Bild verlinkt, verschwindet der Title-Tag beim img und ist nur noch bei darüber stehenden Link zu finden. Was SEO angeht, istg das nicht immer so gewünscht. Unabhängig ob dies nun in Contao semantisch so korrekt ist oder nicht, aktuell ist es scheinbar so das in der optimalen SEO bei einem Bild immer ein Title-Tag sein sollte, auch wenn es verlink ist (ist auch of Wunsch der Kunden, der SEO-Analysetools auch e´benutzt).

Um das in Contao anzupassen, habe ich das Template picture_default.html5 angepasst. Diese im Moment sehr "schmutzige" Anpassung ist nur ein fader Kompromiss, funktioniert im Moment aber einmal. Es ist mir bsiher noch nicht gelungen den Inhalt von Title auch dauerhaft auzugeben (auch wenn das Bild einen Link hat). Was aber gut klappt ist das Alt-Tag Inhalt dauerhaft als Title-Tag auszugeben. Und da ich beides meist mit den gleichen Inhalten ausfülle ist dies eine mögliche Lösung. Gerne kann man aber eine Lösung vorschlagen wie der Title dauerhaft beim Bild bleibt. Einfach eine Mail an: info@liquid-artwork.de. Gerne veröffentliche ich die Lösung dann hier, gerne mit Namensnennung und Link.

Nun aber zu meiner "Dirty" Lösung:

Im Template picture_default.html5

<img src="<?= $this->img['src'] ?>"
<?php if ($this->img['srcset'] !== $this->img['src']): ?> srcset="<?= $this->img['srcset'] ?>"<?php endif; ?>
<?php if (!empty($this->img['sizes'])): ?> sizes="<?= $this->img['sizes'] ?>"<?php endif; ?>
<?php if (!empty($this->img['hasSingleAspectRatio']) && !empty($this->img['width']) && !empty($this->img['height'])): ?> width="<?= $this->img['width'] ?>" height="<?= $this->img['height'] ?>"<?php endif; ?> 
alt="<?= $this->alt ?>"<?php if (!empty($this->img['loading'])): ?> loading="<?= $this->img['loading'] ?>"<?php endif; ?>
<?php if ($this->title): ?> title="<?= $this->title ?>"<?php endif; ?>
<?php if ($this->class || !empty($this->img['class'])): ?> class="<?= trim($this->class.' '.$this->img['class']) ?>"<?php endif; ?>
<?= $this->attributes ?> itemprop="image">

Dies habe ich durch folgenden Code ersetzt:

<img src="<?= $this->img['src'] ?>"
<?php if ($this->img['srcset'] !== $this->img['src']): ?> srcset="<?= $this->img['srcset'] ?>"<?php endif; ?>
<?php if (!empty($this->img['sizes'])): ?> sizes="<?= $this->img['sizes'] ?>"<?php endif; ?>
<?php if (!empty($this->img['hasSingleAspectRatio']) && !empty($this->img['width']) && !empty($this->img['height'])): ?> width="<?= $this->img['width'] ?>" height="<?= $this->img['height'] ?>"<?php endif; ?>
alt="<?= $this->alt ?>"<?php if (!empty($this->img['loading'])): ?> loading="<?= $this->img['loading'] ?>"<?php endif; ?>
title="<?= $this->alt ?>"<?= $this->attributes ?> itemprop="image">

Man sieht am Ende, das der titel= nun mit dem Inhalt von alt besetzt wird. Ist wie erwähnt keine perfekte Lösung, aber es erfüllt im Moment meinen Zweck. Wer eine bessere Lösung hat, gerne melden.

Zurück