health: fix broken pages, add image dimensions, a11y & SEO wins
Site-wide health pass (excludes in-progress blog work). Verified with a
local server + headless browser: Timeline, homepage and gallery pages load
with zero console errors and no layout distortion.
Render bugs
- Timeline page (en/mk/si): fix ../../../ paths that overshot the site root,
so the main stylesheet and hero image load again.
- Meet Student Slovenia 2023 (en/mk/si): remove a <figure> referencing
event3-photo-11.png, an image that was never uploaded (broken image).
Performance
- Add intrinsic width/height to 1039 raster <img> tags to prevent layout
shift (CLS); 450 SVGs correctly skipped. Add a global
`img { max-width:100%; height:auto }` safety net so aspect ratio is
preserved and images never overflow.
- Preload the homepage hero (LCP) image on en/mk/si.
- Load Font Awesome non-blocking (media=print/onload swap) with a <noscript>
fallback, on 225 pages.
Accessibility
- Add aria-label to 57 unlabeled newsletter email inputs.
- Add an sr-only <h1> to the three "My Route" pages (had no h1).
- Add an .sr-only utility class.
SEO
- Add meta descriptions to legal/msos-hub/support pages (en/mk/si).
Note: MK/SI meta descriptions are machine-drafted and should be proofread
by a native speaker before considering them final.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
168e4ce378
commit
9ce7450aa1
209 files changed
+1289
-1267
No files matched your search
@@ -56,7 +56,7 @@
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
|
||||
<!-- Font Awesome (for icons) -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" media="print" onload="this.media='all'" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /></noscript>
|
||||
|
||||
<!-- Povezava na glavno CSS datoteko -->
|
||||
<link rel="stylesheet" href="../../../css/main.css">
|
||||
@@ -201,14 +201,14 @@
|
||||
</header>
|
||||
|
||||
<figure class="article-main-image">
|
||||
<img fetchpriority="high" src="../../../images/maribor-tournament-1.webp" alt="Ekipa MŠOS Maribor na humanitarnem športnem turnirju">
|
||||
<img width="720" height="480" fetchpriority="high" src="../../../images/maribor-tournament-1.webp" alt="Ekipa MŠOS Maribor na humanitarnem športnem turnirju">
|
||||
</figure>
|
||||
|
||||
<div class="article-body">
|
||||
<p>5. aprila 2025 je MŠOS Maribor organiziral prvi humanitarni športni turnir v zgodovini naše organizacije. Ideja se je porodila povsem naravno. Po tragičnih dogodkih v Kočanih smo se mnogi počutili nemočne, a hkrati smo vedeli, da moramo nekaj storiti. Kot študenti morda nismo mogli rešiti vsega, lahko pa smo naredili tisto, kar znamo najbolje: povezati ljudi. Šport je postal odličen način, da svoja čustva in energijo usmerimo v solidarnost.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-2.webp" alt="Utrinek ekipe MŠOS Maribor.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-2.webp" alt="Utrinek ekipe MŠOS Maribor.">
|
||||
<figcaption>Utrinek ekipe MŠOS Maribor.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -217,14 +217,14 @@
|
||||
<p>Dogodek je potekal v športni dvorani Leon Štukelj, ki je oživela od navijanja, smeha in zvoka košarkarskih ter futsal žog, ki so poskakovale po igriščih. Že od samega začetka se je čutilo, da ne gre le za tekmovanje. Šlo je za skupnost.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-3.webp" alt="Ekipe, postrojene in pripravljene na začetek turnirja.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-3.webp" alt="Ekipe, postrojene in pripravljene na začetek turnirja.">
|
||||
<figcaption>Ekipe, postrojene in pripravljene na začetek turnirja.</figcaption>
|
||||
</figure>
|
||||
|
||||
<p>Gostili smo 12 košarkarskih in 4 futsal ekipe, ki so jih sestavljali ne le makedonski študenti, ampak tudi prijatelji iz Srbije, Bosne in Hercegovine ter Španije. Ta mešanica kultur in jezikov je ustvarila poseben naboj, dokaz, da se solidarnost ne ustavi na državnih mejah. Ekipe so si med seboj pomagale, rivalstva so se končala z rokovanjem, vsak gol ali koš pa je bil kot majhna zmaga za cilj, zaradi katerega smo bili vsi tam.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-4.webp" alt="Študenti dajejo vse od sebe na futsal igrišču in tekmovanje spreminjajo v energijo, smeh in nepozabne trenutke.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-4.webp" alt="Študenti dajejo vse od sebe na futsal igrišču in tekmovanje spreminjajo v energijo, smeh in nepozabne trenutke.">
|
||||
<figcaption>Študenti dajejo vse od sebe na futsal igrišču in tekmovanje spreminjajo v energijo, smeh in nepozabne trenutke.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -235,12 +235,12 @@
|
||||
<p>Ob koncu turnirja so zmagovalcem podelili simbolične nagrade. To niso bili le pokali. Bili so način, da počastimo vse, ki so svoj čas in energijo namenili temu dogodku.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-5.webp" alt="Ko zmaga pomeni več kot igra, dvignjena visoko s strani ekipe.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-5.webp" alt="Ko zmaga pomeni več kot igra, dvignjena visoko s strani ekipe.">
|
||||
<figcaption>Ko zmaga pomeni več kot igra, dvignjena visoko s strani ekipe.</figcaption>
|
||||
</figure>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-6.webp" alt="Ogrevanje pred košarkarskimi tekmami, moške in ženske ekipe se pripravljajo na akcijo.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-6.webp" alt="Ogrevanje pred košarkarskimi tekmami, moške in ženske ekipe se pripravljajo na akcijo.">
|
||||
<figcaption>Ogrevanje pred košarkarskimi tekmami, moške in ženske ekipe se pripravljajo na akcijo.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
<p>Najpomembnejši rezultat ni bil na semaforju, ampak v škatli za donacije. Skupaj smo zbrali 1.010 €, ki smo jih razdelili med dve makedonski družini, katerih otroci so se zdravili v Sloveniji. To ni bil le denar. Bilo je sporočilo, da niso sami, da je študentska skupnost stala ob njih v najtežjih trenutkih.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-7.webp" alt="Dlani v zrak, pokali in nasmehi, praznovanje zmage na igrišču in izven njega.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-7.webp" alt="Dlani v zrak, pokali in nasmehi, praznovanje zmage na igrišču in izven njega.">
|
||||
<figcaption>Dlani v zrak, pokali in nasmehi, praznovanje zmage na igrišču in izven njega.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
<p>In morda najpomembnejše, to je bil šele začetek. Z akcijo »Igramo s srcem, skupaj za Kočane« nismo ustvarili le uspešne humanitarne akcije. Postavili smo temelj tradiciji, ki nas bo še naprej opominjala, da skupaj lahko naredimo razliko.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-8.webp" alt="Nepozaben trenutek z organizacijsko ekipo ter zmagovalnima košarkarsko in futsal ekipo.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-8.webp" alt="Nepozaben trenutek z organizacijsko ekipo ter zmagovalnima košarkarsko in futsal ekipo.">
|
||||
<figcaption>Nepozaben trenutek z organizacijsko ekipo ter zmagovalnima košarkarsko in futsal ekipo.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -269,14 +269,14 @@
|
||||
<p>Turnir ne bi bil mogoč brez podpore naših partnerjev in skupnosti. Hvaležni smo Univerzi v Mariboru, ki je brezplačno zagotovila celotno športno dvorano Leon Štukelj, podjetju Macedonia Trade, ki je poskrbelo za osvežitev in darila za zmagovalne ekipe, ter Radenski za vodo za vse udeležence.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-9.webp" alt="Zahvala podjetju Macedonia Trade in Radenski za podporo turnirju s pijačo in osvežitvijo za igralce.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-9.webp" alt="Zahvala podjetju Macedonia Trade in Radenski za podporo turnirju s pijačo in osvežitvijo za igralce.">
|
||||
<figcaption>Zahvala podjetju Macedonia Trade in Radenski za podporo turnirju s pijačo in osvežitvijo za igralce.</figcaption>
|
||||
</figure>
|
||||
|
||||
<p>Velika zahvala gre tudi naši ekipi MŠOS Maribor in prostovoljcem, ki so neutrudno delali, da je ta dogodek postal resničnost. In seveda vsem študentom, ki niso prišli le kot igralci, ampak tudi kot navijači, podporniki in prijatelji. Njihovo navijanje, smeh in energija so napolnili dvorano ter turnir spremenili v nekaj več kot tekmovanje. Postal je trenutek enotnosti, solidarnosti in veselja, ki ga nihče od nas ne bo pozabil.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/maribor-tournament-10.webp" alt="Ekipa MŠOS Maribor skupaj praznuje po uspešnem turnirju.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-10.webp" alt="Ekipa MŠOS Maribor skupaj praznuje po uspešnem turnirju.">
|
||||
<figcaption>Ekipa MŠOS Maribor skupaj praznuje po uspešnem turnirju.</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
@@ -284,16 +284,16 @@
|
||||
<section class="event-gallery">
|
||||
<h2 class="event-gallery-title">Fotografije z dogodka</h2>
|
||||
<div class="event-gallery-grid js-lightbox">
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-1.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-1.webp" alt="Humanitarni turnir v Mariboru, photo 1"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-2.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-2.webp" alt="Humanitarni turnir v Mariboru, photo 2"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-3.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-3.webp" alt="Humanitarni turnir v Mariboru, photo 3"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-4.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-4.webp" alt="Humanitarni turnir v Mariboru, photo 4"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-5.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-5.webp" alt="Humanitarni turnir v Mariboru, photo 5"><span class="eg-more">+5</span></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-6.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-6.webp" alt="Humanitarni turnir v Mariboru, photo 6"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-7.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-7.webp" alt="Humanitarni turnir v Mariboru, photo 7"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-8.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-8.webp" alt="Humanitarni turnir v Mariboru, photo 8"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-9.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-9.webp" alt="Humanitarni turnir v Mariboru, photo 9"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-10.webp" data-caption="Humanitarni turnir v Mariboru"><img loading="lazy" decoding="async" src="../../../images/maribor-tournament-10.webp" alt="Humanitarni turnir v Mariboru, photo 10"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-1.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-1.webp" alt="Humanitarni turnir v Mariboru, photo 1"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-2.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-2.webp" alt="Humanitarni turnir v Mariboru, photo 2"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-3.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-3.webp" alt="Humanitarni turnir v Mariboru, photo 3"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-4.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-4.webp" alt="Humanitarni turnir v Mariboru, photo 4"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/maribor-tournament-5.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-5.webp" alt="Humanitarni turnir v Mariboru, photo 5"><span class="eg-more">+5</span></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-6.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-6.webp" alt="Humanitarni turnir v Mariboru, photo 6"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-7.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-7.webp" alt="Humanitarni turnir v Mariboru, photo 7"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-8.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-8.webp" alt="Humanitarni turnir v Mariboru, photo 8"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-9.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-9.webp" alt="Humanitarni turnir v Mariboru, photo 9"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/maribor-tournament-10.webp" data-caption="Humanitarni turnir v Mariboru"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/maribor-tournament-10.webp" alt="Humanitarni turnir v Mariboru, photo 10"></button>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -304,7 +304,7 @@
|
||||
<p>Novice, obvestila in razpisi, naravnost v vaš e-poštni predal.</p>
|
||||
<form class="subscribe-form-bottom">
|
||||
<div class="input-wrapper">
|
||||
<input type="email" placeholder="Vnesite svoj e-mail">
|
||||
<input type="email" placeholder="Vnesite svoj e-mail" aria-label="E-poštni naslov">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary-orange">Naroči se</button>
|
||||
</form>
|
||||
|
||||
Reference in new issue
Block a user