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

+11 -11
View File
@@ -54,7 +54,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>
<!-- Поврзување до главната CSS-датотека -->
<link rel="stylesheet" href="../../css/main.css">
@@ -228,7 +228,7 @@
<!-- Project: Хуманитарен спортски турнир во Марибор -->
<article class="post-card" data-category="events" data-subcategory="sports">
<a href="humanitarian-tournament-in-maribor/" class="post-link">
<img loading="lazy" decoding="async" src="../../images/maribor-tournament-1.webp" alt="Хуманитарен спортски турнир во Марибор" class="post-image">
<img width="720" height="480" loading="lazy" decoding="async" src="../../images/maribor-tournament-1.webp" alt="Хуманитарен спортски турнир во Марибор" class="post-image">
<div class="post-content">
<p class="post-meta">Тим на МСОС • 5 Апр 2025 • Настан</p>
<h3 class="post-title">Хуманитарен спортски турнир во Марибор</h3>
@@ -239,7 +239,7 @@
<!-- Project: Во спомен на жртвите од Кочани -->
<article class="post-card" data-category="events">
<a href="in-memory-of-the-kochani-victims/" class="post-link">
<img loading="lazy" decoding="async" src="../../images/kochani-1.webp" alt="Во спомен на жртвите од Кочани" class="post-image">
<img width="720" height="480" loading="lazy" decoding="async" src="../../images/kochani-1.webp" alt="Во спомен на жртвите од Кочани" class="post-image">
<div class="post-content">
<p class="post-meta">Тим на МСОС • 21 Мар 2025 • Настан</p>
<h3 class="post-title">Во спомен на жртвите од Кочани</h3>
@@ -250,7 +250,7 @@
<!-- Project: Сликање и вино на зајдисонце -->
<article class="post-card" data-category="events" data-subcategory="cultural">
<a href="paint-and-wine-at-sunset/" class="post-link">
<img loading="lazy" decoding="async" src="../../images/paint-wine-1.webp" alt="Сликање и вино на зајдисонце" class="post-image">
<img width="1600" height="1067" loading="lazy" decoding="async" src="../../images/paint-wine-1.webp" alt="Сликање и вино на зајдисонце" class="post-image">
<div class="post-content">
<p class="post-meta">Тим на МСОС • 8 Мар 2025 • Настан</p>
<h3 class="post-title">Сликање и вино на зајдисонце</h3>
@@ -261,7 +261,7 @@
<!-- Project: Во спомен на Фросина Кулакова -->
<article class="post-card" data-category="events">
<a href="in-memory-of-frosina-kulakova/" class="post-link">
<img loading="lazy" decoding="async" src="../../images/frosina-1.webp" alt="Во спомен на Фросина Кулакова" class="post-image">
<img width="720" height="480" loading="lazy" decoding="async" src="../../images/frosina-1.webp" alt="Во спомен на Фросина Кулакова" class="post-image">
<div class="post-content">
<p class="post-meta">Тим на МСОС • 8 Фев 2025 • Настан</p>
<h3 class="post-title">Во спомен на Фросина Кулакова</h3>
@@ -272,7 +272,7 @@
<!-- Project: Заедничко гледање ракомет во Словенија -->
<article class="post-card" data-category="events" data-subcategory="sports">
<a href="watching-handball-together-in-slovenia/" class="post-link">
<img loading="lazy" decoding="async" src="../../images/handball-2025-1.webp" alt="Заедничко гледање ракомет во Словенија" class="post-image">
<img width="720" height="480" loading="lazy" decoding="async" src="../../images/handball-2025-1.webp" alt="Заедничко гледање ракомет во Словенија" class="post-image">
<div class="post-content">
<p class="post-meta">Тим на МСОС • 25 Јан 2025 • Настан</p>
<h3 class="post-title">Заедничко гледање ракомет во Словенија</h3>
@@ -283,7 +283,7 @@
<!-- Проект: Запознај ја студентска Словенија 2024 -->
<article class="post-card" data-category="events" data-subcategory="educational">
<a href="meet-student-slovenia-2024/" class="post-link">
<img loading="lazy" decoding="async" src="../../images/event4-img-1.webp" alt="Група студенти на настанот „Запознај ја студентска Словенија 2024“" class="post-image">
<img width="1920" height="1280" loading="lazy" decoding="async" src="../../images/event4-img-1.webp" alt="Група студенти на настанот „Запознај ја студентска Словенија 2024“" class="post-image">
<div class="post-content">
<p class="post-meta">Тим на МСОС • 16 Сеп 2024 • Настан</p>
<h3 class="post-title">Запознај ја студентска Словенија 2024</h3>
@@ -294,7 +294,7 @@
<!-- Проект: Утринско кафе пред ЦТК, 2024 -->
<article class="post-card" data-category="student-life">
<a href="morning-coffee-in-front-of-ctk/" class="post-link">
<img loading="lazy" decoding="async" src="../../images/event4-image1.webp" alt="Студенти уживаат во кафе и бурек пред библиотеката ЦТК" class="post-image">
<img width="1920" height="1280" loading="lazy" decoding="async" src="../../images/event4-image1.webp" alt="Студенти уживаат во кафе и бурек пред библиотеката ЦТК" class="post-image">
<div class="post-content">
<p class="post-meta">Тим на МСОС • 8 Јуни 2024 • Студентски живот</p>
<h3 class="post-title">Утринско кафе пред ЦТК, 2024</h3>
@@ -305,7 +305,7 @@
<!-- Проект: Запознај ја студентска Словенија 2023 -->
<article class="post-card" data-category="events" data-subcategory="educational">
<a href="meet-student-slovenia-2023/" class="post-link">
<img loading="lazy" decoding="async" src="../../images/event3-photo-1.webp" alt="Панел дискусија на настанот „Запознај ја студентска Словенија 2023“" class="post-image">
<img width="1920" height="1280" loading="lazy" decoding="async" src="../../images/event3-photo-1.webp" alt="Панел дискусија на настанот „Запознај ја студентска Словенија 2023“" class="post-image">
<div class="post-content">
<p class="post-meta">Тим на МСОС • 18 Сеп 2023 • Настан</p>
<h3 class="post-title">Запознај ја студентска Словенија 2023</h3>
@@ -316,7 +316,7 @@
<!-- Проект: Македонска студентска вечер во Љубљана -->
<article class="post-card" data-category="events" data-subcategory="entertainment">
<a href="macedonian-student-night-in-ljubljana/" class="post-link">
<img loading="lazy" decoding="async" src="../../images/msnl-1.webp" alt="Атмосфера од македонската студентска вечер во Љубљана" class="post-image">
<img width="1430" height="757" loading="lazy" decoding="async" src="../../images/msnl-1.webp" alt="Атмосфера од македонската студентска вечер во Љубљана" class="post-image">
<div class="post-content">
<p class="post-meta">Кристијан Поповски • 8 Окт 2022 • Настан</p>
<h3 class="post-title">Македонска студентска вечер во Љубљана</h3>
@@ -351,7 +351,7 @@
<p>Вести, соопштенија и отворени повици, директно во вашето сандаче.</p>
<form class="subscribe-form-bottom">
<div class="input-wrapper">
<input type="email" placeholder="Внесете ја вашата е-пошта">
<input type="email" placeholder="Внесете ја вашата е-пошта" aria-label="Е-пошта">
</div>
<button type="submit" class="btn btn-primary-orange">Претплати се</button>
</form>