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,7 +201,7 @@
|
||||
</header>
|
||||
|
||||
<figure class="article-main-image">
|
||||
<img fetchpriority="high" src="../../../images/event4-image1.webp" alt="Študenti uživajo ob kavi in bureku pred knjižnico CTK.">
|
||||
<img width="1920" height="1280" fetchpriority="high" src="../../../images/event4-image1.webp" alt="Študenti uživajo ob kavi in bureku pred knjižnico CTK.">
|
||||
</figure>
|
||||
|
||||
<div class="article-body">
|
||||
@@ -211,19 +211,19 @@
|
||||
<p>Izpitno obdobje vedno prinaša stres, ure in ure učenja, pogovori, ki se vrtijo samo okoli izpitov, prvih in drugih rokov, opravljenih ali neopravljenih obveznosti. Nekateri se z izpitom srečajo prvič, drugi že petič. Zato smo se odločili, da si vzamemo kratek odmor za vdih: da se sprostimo, nasmejimo in se spomnimo, da smo v tem študijskem stresu skupaj.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/event4-image2.webp" alt="Študentje čakajo v vrsti pred stavbo knjižnice CTK.">
|
||||
<img width="1425" height="950" loading="lazy" decoding="async" src="../../../images/event4-image2.webp" alt="Študentje čakajo v vrsti pred stavbo knjižnice CTK.">
|
||||
<figcaption>Stotine študentov v vrsti pred CTK, ki so čakali še pred odprtjem, da si zagotovijo svoje mesto v knjižnici.</figcaption>
|
||||
</figure>
|
||||
|
||||
<p>S skodelico vroče kave v roki in po zaslugi <strong>Bureka Olimpija</strong> smo uživali v okusnem bureku z mesom in sirom. Poskrbeli smo tudi za kanček zabave, študente smo povabili, da prinesejo svoje skodelice, za najbolj kreativne pa smo pripravili nagrado.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/event4-image3.webp" alt="Študent se smeji medtem ko je kos bureka.">
|
||||
<img width="1920" height="1280" loading="lazy" decoding="async" src="../../../images/event4-image3.webp" alt="Študent se smeji medtem ko je kos bureka.">
|
||||
<figcaption>Brezplačen topel burek, skrivna formula za reševanje tudi najtežjih matematičnih problemov 😉</figcaption>
|
||||
</figure>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/event4-image4.webp" alt="Skupina študentov s toplo kavo pozira pred kamero.">
|
||||
<img width="1920" height="1280" loading="lazy" decoding="async" src="../../../images/event4-image4.webp" alt="Skupina študentov s toplo kavo pozira pred kamero.">
|
||||
<figcaption>Skupina študentov s toplo kavo, nasmejani pred CTK.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -232,7 +232,7 @@
|
||||
<p>Odzivi so bili takojšnji, študenti so hiteli pisat, odgovori pa so bili vse prej kot dolgočasni: od "kaotično" in "Hočemo spat! (ampak ne v CTK)!" do "chill", "pod stresom", "izčrpano", "srečno" in "zaspano". Z drugimi besedami, celoten spekter študentskih čustev, iskreno prelitih v nekaj besed.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/event4-image5.webp" alt="Bela tabla z ročno napisanimi odgovori študentov o njihovih občutkih med izpitnim obdobjem.">
|
||||
<img width="1317" height="877" loading="lazy" decoding="async" src="../../../images/event4-image5.webp" alt="Bela tabla z ročno napisanimi odgovori študentov o njihovih občutkih med izpitnim obdobjem.">
|
||||
<figcaption>Duhoviti in iskreni odgovori na velikih tablah s vprašanji pred CTK.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -243,14 +243,14 @@
|
||||
<p>Skupno stojnico MSOS, Skupine Povezani in CTK je obiskalo okoli 150 ljudi, ki so se prišli družit, spit kavo, prigriznit nekaj in si izmenjat zgodbe med knjigami in roki. Dogodek je potekal v odličnem vzdušju, veliko nasmehov, nova poznanstva in majhen opomnik, da je tudi v najbolj stresnih obdobjih vedno čas za kavo in dobro družbo.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/event4-image6.webp" alt="Študenti zbrani na skupni stojnici med dogodkom.">
|
||||
<img width="1920" height="1280" loading="lazy" decoding="async" src="../../../images/event4-image6.webp" alt="Študenti zbrani na skupni stojnici med dogodkom.">
|
||||
<figcaption>Del vzdušja na skupni stojnici.</figcaption>
|
||||
</figure>
|
||||
|
||||
<p>Se vidimo ponovno prihodnje leto, še bolj sproščeni in z še več kave!</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/event4-image7.webp" alt="Kolaž fotografij, ki prikazuje študente, skodelice za kavo in burek.">
|
||||
<img width="1920" height="1080" loading="lazy" decoding="async" src="../../../images/event4-image7.webp" alt="Kolaž fotografij, ki prikazuje študente, skodelice za kavo in burek.">
|
||||
<figcaption>Dobra družba, veliko spominov in skupaj premagan izpitni stres.</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
@@ -259,13 +259,13 @@
|
||||
<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/event4-image1.webp" data-caption="Jutranja kava pred CTK"><img loading="lazy" decoding="async" src="../../../images/event4-image1.webp" alt="Jutranja kava pred CTK, photo 1"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/event4-image2.webp" data-caption="Jutranja kava pred CTK"><img loading="lazy" decoding="async" src="../../../images/event4-image2.webp" alt="Jutranja kava pred CTK, photo 2"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/event4-image3.webp" data-caption="Jutranja kava pred CTK"><img loading="lazy" decoding="async" src="../../../images/event4-image3.webp" alt="Jutranja kava pred CTK, photo 3"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/event4-image4.webp" data-caption="Jutranja kava pred CTK"><img loading="lazy" decoding="async" src="../../../images/event4-image4.webp" alt="Jutranja kava pred CTK, photo 4"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/event4-image5.webp" data-caption="Jutranja kava pred CTK"><img loading="lazy" decoding="async" src="../../../images/event4-image5.webp" alt="Jutranja kava pred CTK, photo 5"><span class="eg-more">+2</span></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/event4-image6.webp" data-caption="Jutranja kava pred CTK"><img loading="lazy" decoding="async" src="../../../images/event4-image6.webp" alt="Jutranja kava pred CTK, photo 6"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/event4-image7.webp" data-caption="Jutranja kava pred CTK"><img loading="lazy" decoding="async" src="../../../images/event4-image7.webp" alt="Jutranja kava pred CTK, photo 7"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/event4-image1.webp" data-caption="Jutranja kava pred CTK"><img width="1920" height="1280" loading="lazy" decoding="async" src="../../../images/event4-image1.webp" alt="Jutranja kava pred CTK, photo 1"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/event4-image2.webp" data-caption="Jutranja kava pred CTK"><img width="1425" height="950" loading="lazy" decoding="async" src="../../../images/event4-image2.webp" alt="Jutranja kava pred CTK, photo 2"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/event4-image3.webp" data-caption="Jutranja kava pred CTK"><img width="1920" height="1280" loading="lazy" decoding="async" src="../../../images/event4-image3.webp" alt="Jutranja kava pred CTK, photo 3"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/event4-image4.webp" data-caption="Jutranja kava pred CTK"><img width="1920" height="1280" loading="lazy" decoding="async" src="../../../images/event4-image4.webp" alt="Jutranja kava pred CTK, photo 4"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/event4-image5.webp" data-caption="Jutranja kava pred CTK"><img width="1317" height="877" loading="lazy" decoding="async" src="../../../images/event4-image5.webp" alt="Jutranja kava pred CTK, photo 5"><span class="eg-more">+2</span></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/event4-image6.webp" data-caption="Jutranja kava pred CTK"><img width="1920" height="1280" loading="lazy" decoding="async" src="../../../images/event4-image6.webp" alt="Jutranja kava pred CTK, photo 6"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/event4-image7.webp" data-caption="Jutranja kava pred CTK"><img width="1920" height="1080" loading="lazy" decoding="async" src="../../../images/event4-image7.webp" alt="Jutranja kava pred CTK, photo 7"></button>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -276,7 +276,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