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
@@ -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='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>
|
||||
|
||||
<!-- Link to the main CSS file -->
|
||||
<link rel="stylesheet" href="../../css/main.css">
|
||||
@@ -197,7 +197,7 @@
|
||||
<h1>Get to know Slovenia</h1>
|
||||
<p class="page-description">Slovenia may be small on the map, but there is a lot to discover between the Alps, the Adriatic coast, green rivers, old towns, and quiet places that quickly begin to feel familiar. Through these stories, we share the places, tastes, traditions, and everyday details that helped many of us get to know the country we now also call home.</p>
|
||||
<form class="subscribe-form">
|
||||
<input type="email" placeholder="Enter your email">
|
||||
<input type="email" placeholder="Enter your email" aria-label="Email address">
|
||||
<button type="submit" class="btn btn-primary-orange">Subscribe</button>
|
||||
</form>
|
||||
<p class="privacy-note">We care about your data in our <a href="../../en/privacy-policy/">privacy policy</a></p>
|
||||
@@ -222,7 +222,7 @@
|
||||
<!-- Story: Welcome to Slovenia -->
|
||||
<article class="post-card" data-category="identity">
|
||||
<a href="welcome-to-slovenia/" class="post-link">
|
||||
<img loading="lazy" decoding="async" src="../../images/slovenia-welcome-hero.webp" alt="Lake Jasna near Kranjska Gora, with mountain peaks reflected in the water" class="post-image">
|
||||
<img width="1200" height="800" loading="lazy" decoding="async" src="../../images/slovenia-welcome-hero.webp" alt="Lake Jasna near Kranjska Gora, with mountain peaks reflected in the water" class="post-image">
|
||||
<div class="post-content">
|
||||
<p class="post-meta">MSOS Team • People & Identity</p>
|
||||
<h3 class="post-title">Welcome to Slovenia</h3>
|
||||
@@ -233,7 +233,7 @@
|
||||
<!-- Story: Ljubljana Through Our Eyes -->
|
||||
<article class="post-card" data-category="places">
|
||||
<a href="ljubljana-through-our-eyes/" class="post-link">
|
||||
<img loading="lazy" decoding="async" src="../../images/slovenia-ljubljana-river-life-hero.webp" alt="A crowd gathered along the Ljubljanica during an event in central Ljubljana" class="post-image">
|
||||
<img width="1400" height="933" loading="lazy" decoding="async" src="../../images/slovenia-ljubljana-river-life-hero.webp" alt="A crowd gathered along the Ljubljanica during an event in central Ljubljana" class="post-image">
|
||||
<div class="post-content">
|
||||
<p class="post-meta">MSOS Team • Places & Nature</p>
|
||||
<h3 class="post-title">Ljubljana Through Our Eyes</h3>
|
||||
@@ -244,7 +244,7 @@
|
||||
<!-- Story: Lake Bled Beyond the Famous View -->
|
||||
<article class="post-card" data-category="places">
|
||||
<a href="lake-bled-beyond-the-famous-view/" class="post-link">
|
||||
<img loading="lazy" decoding="async" src="../../images/slovenia-bled-lakeside-walk-hero.webp" alt="A walking path beside Lake Bled with the island and mountains in view" class="post-image">
|
||||
<img width="1023" height="682" loading="lazy" decoding="async" src="../../images/slovenia-bled-lakeside-walk-hero.webp" alt="A walking path beside Lake Bled with the island and mountains in view" class="post-image">
|
||||
<div class="post-content">
|
||||
<p class="post-meta">MSOS Team • Places & Nature</p>
|
||||
<h3 class="post-title">Lake Bled Beyond the Famous View</h3>
|
||||
@@ -255,7 +255,7 @@
|
||||
<!-- Story: A First Taste of Slovenian Food -->
|
||||
<article class="post-card" data-category="food">
|
||||
<a href="a-first-taste-of-slovenian-food/" class="post-link">
|
||||
<img loading="lazy" decoding="async" src="../../images/slovenia-food-regional-table-hero.webp" alt="Several regional Slovenian dishes served together on a table" class="post-image">
|
||||
<img width="1400" height="933" loading="lazy" decoding="async" src="../../images/slovenia-food-regional-table-hero.webp" alt="Several regional Slovenian dishes served together on a table" class="post-image">
|
||||
<div class="post-content">
|
||||
<p class="post-meta">MSOS Team • Food & Flavours</p>
|
||||
<h3 class="post-title">A First Taste of Slovenian Food</h3>
|
||||
@@ -266,7 +266,7 @@
|
||||
<!-- Story: Slovenian Habits That May Surprise You -->
|
||||
<article class="post-card" data-category="culture">
|
||||
<a href="slovenian-habits-that-may-surprise-you/" class="post-link">
|
||||
<img loading="lazy" decoding="async" src="../../images/slovenia-habits-guest-slippers-hero.webp" alt="A pair of slippers by the entrance of a Slovenian home" class="post-image">
|
||||
<img width="1400" height="933" loading="lazy" decoding="async" src="../../images/slovenia-habits-guest-slippers-hero.webp" alt="A pair of slippers by the entrance of a Slovenian home" class="post-image">
|
||||
<div class="post-content">
|
||||
<p class="post-meta">MSOS Team • Culture & Traditions</p>
|
||||
<h3 class="post-title">Slovenian Habits That May Surprise You</h3>
|
||||
@@ -277,7 +277,7 @@
|
||||
<!-- Story: Slovenia's Stories in Stone and Tradition -->
|
||||
<article class="post-card" data-category="heritage">
|
||||
<a href="slovenias-stories-in-stone-and-tradition/" class="post-link">
|
||||
<img loading="lazy" decoding="async" src="../../images/slovenia-heritage-plecnik-daily-life-hero.webp" alt="A Plečnik-designed public space beside the Ljubljanica" class="post-image">
|
||||
<img width="1400" height="933" loading="lazy" decoding="async" src="../../images/slovenia-heritage-plecnik-daily-life-hero.webp" alt="A Plečnik-designed public space beside the Ljubljanica" class="post-image">
|
||||
<div class="post-content">
|
||||
<p class="post-meta">MSOS Team • History & Heritage</p>
|
||||
<h3 class="post-title">Slovenia's Stories in Stone and Tradition</h3>
|
||||
|
||||
Reference in new issue
Block a user