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:
popovskikandClaude Opus 4.8 committed 2026-08-04 00:31:27 +02:00
1 parent 168e4ce378
commit 9ce7450aa1
209 files changed
+1289 -1267

No files matched your search

+21 -20
View File
@@ -4,6 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Поддржи го МСОС - Македонска студентска организација во Словенија</title>
<meta name="description" content="Поддржете ја Македонската студентска организација во Словенија (МСОС) со донација или партнерство и помогнете во финансирањето на студентските активности.">
<!-- SEO:START -->
<!-- Google tag (gtag.js) with Consent Mode v2 (default: denied) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-WVYV807VSS"></script>
@@ -51,7 +52,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=&#39;all&#39;" /><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>
<!-- Link to the main CSS file -->
<link rel="stylesheet" href="../../css/main.css">
@@ -211,7 +212,7 @@
<p>Твојата поддршка го одржува сето ова во живот, и ѝ помага на следната генерација студенти да се чувствува малку помалку сама.</p>
</div>
<div class="sup-story-media">
<img src="../../images/amazing_team.webp" alt="Волонтерскиот тим на МСОС заедно на настан" loading="lazy" decoding="async">
<img width="1920" height="1280" src="../../images/amazing_team.webp" alt="Волонтерскиот тим на МСОС заедно на настан" loading="lazy" decoding="async">
</div>
</div>
</div>
@@ -319,27 +320,27 @@
<div class="marquee" aria-label="Нашите партнери и поддржувачи">
<div class="marquee-track">
<div class="marquee-group">
<img src="../../images/partners/ambasada-slo.png" alt="Амбасада на Република Словенија во Скопје" loading="lazy">
<img src="../../images/partners/nlb.png" alt="НЛБ Банка" loading="lazy">
<img src="../../images/partners/ctk.png" alt="Централна техничка библиотека (ЦТК), Универзитет во Љубљана" loading="lazy">
<img src="../../images/partners/dsmp.png" alt="Здружение на словенечки и македонски претприемачи (ДСМП)" loading="lazy">
<img src="../../images/partners/kampus.png" alt="Кампус" loading="lazy">
<img src="../../images/partners/povezani.png" alt="Повезани" loading="lazy">
<img src="../../images/partners/mzzt-mk-wide.png" alt="Министерство за надворешни работи и трговија на Северна Македонија" loading="lazy">
<img src="../../images/partners/kdm-makedonija.png" alt="Македонско културно друштво Македонија во Љубљана" loading="lazy">
<img src="../../images/partners/ambasada-mkd.png" alt="Амбасада на Република Северна Македонија во Словенија" loading="lazy"> <img src="../../images/partners/mojster.png" alt="Spletni Mojster" loading="lazy">
<img width="499" height="98" src="../../images/partners/ambasada-slo.png" alt="Амбасада на Република Словенија во Скопје" loading="lazy">
<img width="469" height="107" src="../../images/partners/nlb.png" alt="НЛБ Банка" loading="lazy">
<img width="800" height="287" src="../../images/partners/ctk.png" alt="Централна техничка библиотека (ЦТК), Универзитет во Љубљана" loading="lazy">
<img width="411" height="149" src="../../images/partners/dsmp.png" alt="Здружение на словенечки и македонски претприемачи (ДСМП)" loading="lazy">
<img width="501" height="156" src="../../images/partners/kampus.png" alt="Кампус" loading="lazy">
<img width="327" height="155" src="../../images/partners/povezani.png" alt="Повезани" loading="lazy">
<img width="816" height="202" src="../../images/partners/mzzt-mk-wide.png" alt="Министерство за надворешни работи и трговија на Северна Македонија" loading="lazy">
<img width="400" height="403" src="../../images/partners/kdm-makedonija.png" alt="Македонско културно друштво Македонија во Љубљана" loading="lazy">
<img width="917" height="206" src="../../images/partners/ambasada-mkd.png" alt="Амбасада на Република Северна Македонија во Словенија" loading="lazy"> <img width="534" height="35" src="../../images/partners/mojster.png" alt="Spletni Mojster" loading="lazy">
</div>
<div class="marquee-group" aria-hidden="true">
<img src="../../images/partners/ambasada-slo.png" alt="" loading="lazy">
<img src="../../images/partners/nlb.png" alt="" loading="lazy">
<img src="../../images/partners/ctk.png" alt="" loading="lazy">
<img src="../../images/partners/dsmp.png" alt="" loading="lazy">
<img src="../../images/partners/kampus.png" alt="" loading="lazy">
<img src="../../images/partners/povezani.png" alt="" loading="lazy">
<img src="../../images/partners/mzzt-mk-wide.png" alt="" loading="lazy">
<img src="../../images/partners/kdm-makedonija.png" alt="" loading="lazy">
<img src="../../images/partners/ambasada-mkd.png" alt="" loading="lazy"> <img src="../../images/partners/mojster.png" alt="" loading="lazy">
<img width="499" height="98" src="../../images/partners/ambasada-slo.png" alt="" loading="lazy">
<img width="469" height="107" src="../../images/partners/nlb.png" alt="" loading="lazy">
<img width="800" height="287" src="../../images/partners/ctk.png" alt="" loading="lazy">
<img width="411" height="149" src="../../images/partners/dsmp.png" alt="" loading="lazy">
<img width="501" height="156" src="../../images/partners/kampus.png" alt="" loading="lazy">
<img width="327" height="155" src="../../images/partners/povezani.png" alt="" loading="lazy">
<img width="816" height="202" src="../../images/partners/mzzt-mk-wide.png" alt="" loading="lazy">
<img width="400" height="403" src="../../images/partners/kdm-makedonija.png" alt="" loading="lazy">
<img width="917" height="206" src="../../images/partners/ambasada-mkd.png" alt="" loading="lazy"> <img width="534" height="35" src="../../images/partners/mojster.png" alt="" loading="lazy">
</div>
</div>