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>
|
||||
|
||||
<!-- Правилна патека до главната CSS-датотека -->
|
||||
<link rel="stylesheet" href="../../../css/main.css">
|
||||
@@ -201,14 +201,14 @@
|
||||
</header>
|
||||
|
||||
<figure class="article-main-image">
|
||||
<img fetchpriority="high" src="../../../images/handball-2025-1.webp" alt="Навивачка атмосфера додека се гледа ракомет во Марибор">
|
||||
<img width="720" height="480" fetchpriority="high" src="../../../images/handball-2025-1.webp" alt="Навивачка атмосфера додека се гледа ракомет во Марибор">
|
||||
</figure>
|
||||
|
||||
<div class="article-body">
|
||||
<p>Во јануари 2025 година, македонските студенти во Љубљана и Марибор ги претворија кафулињата во навивачки зони, собирајќи се да навиваат, пеат и ја споделат возбудата од ракометот, докажувајќи дека дури и далеку од дома, духот на Македонија живее гласно.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/handball-2025-2.webp" alt="Момент од навивачката атмосфера во Марибор.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-2.webp" alt="Момент од навивачката атмосфера во Марибор.">
|
||||
<figcaption>Момент од навивачката атмосфера во Марибор.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -217,14 +217,14 @@
|
||||
<p>Оваа зима, Светското првенство во ракомет донесе повеќе од само натпревари на екран. Ги собра македонските студенти заедно. Во Љубљана, иницијативата дојде од студентот Љубен Најдовски, кој предложи МСОС да организира групно гледање на натпреварот против Гвинеја на 19 јануари 2025 година. Со брза организација и поддршка од локалното кафуле Lepa Žoga, беше резервиран простор, беа собрани пријави и наскоро 25 студенти го наполнија местото со знамиња, извици и смеа.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/handball-2025-3.webp" alt="Навивачите собрани во базата во Љубљана навиваат заедно за Македонија.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-3.webp" alt="Навивачите собрани во базата во Љубљана навиваат заедно за Македонија.">
|
||||
<figcaption>Навивачите собрани во базата во Љубљана навиваат заедно за Македонија.</figcaption>
|
||||
</figure>
|
||||
|
||||
<p>Само една недела подоцна, енергијата се пренесе во Марибор, каде што локалниот тим на МСОС организираше свое навивачко собирање за натпреварот против Франција на 25 јануари 2025 година. Во кафулето CLC во центарот на градот, настанот собра 35 студенти и пријатели, со грицки, музика и вистинска навивачка атмосфера. И покрај тоа што резултатот на семафорот не беше во корист на Македонија, вечерта заврши со славење, нови пријателства и дури и дружба по настанот што траеше долго по последниот свирок.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/handball-2025-4.webp" alt="Навивачите собрани во базата во Марибор навиваат заедно за Македонија.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-4.webp" alt="Навивачите собрани во базата во Марибор навиваат заедно за Македонија.">
|
||||
<figcaption>Навивачите собрани во базата во Марибор навиваат заедно за Македонија.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
<p>Тоа што ги направи овие настани посебни не беше само спортот. Беше начинот на кој студентите создадоа парче дом во странство: мавтање со знамиња, споделување пијалаци, извикување „Ајде Македонија!“ кон екранот и заеднички смеа при промашени шутови или брилијантни одбрани. За новодојдените, тоа беше можност веднаш да се почувствуваат дел од заедницата. За другите, тоа беше потсетник дека дури и стотици километри од дома, не навиваа сами.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/handball-2025-5.webp" alt="Двајца наши организатори од МСОС Марибор уживаат во вечерта на навивачкиот настан.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-5.webp" alt="Двајца наши организатори од МСОС Марибор уживаат во вечерта на навивачкиот настан.">
|
||||
<figcaption>Двајца наши организатори од МСОС Марибор уживаат во вечерта на навивачкиот настан.</figcaption>
|
||||
</figure>
|
||||
|
||||
@@ -242,12 +242,12 @@
|
||||
<p>Од Љубљана до Марибор, овие навивачки собири покажаа дека поддршката на репрезентацијата може да биде повеќе од спорт. Тоа е начин да се градат пријателства, да се зајакне заедницата и да се носи парче Македонија каде и да одиме. Со секој натпревар, енергијата расте, и едно е сигурно: овие собири ќе продолжат да бидат дел од приказната на МСОС.</p>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/handball-2025-6.webp" alt="Момент од нашиот тим во Марибор.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-6.webp" alt="Момент од нашиот тим во Марибор.">
|
||||
<figcaption>Момент од нашиот тим во Марибор.</figcaption>
|
||||
</figure>
|
||||
|
||||
<figure class="article-inline-image">
|
||||
<img loading="lazy" decoding="async" src="../../../images/handball-2025-7.webp" alt="Момент од нашиот тим во Љубљана.">
|
||||
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-7.webp" alt="Момент од нашиот тим во Љубљана.">
|
||||
<figcaption>Момент од нашиот тим во Љубљана.</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
@@ -255,13 +255,13 @@
|
||||
<section class="event-gallery">
|
||||
<h2 class="event-gallery-title">Фотографии од настанот</h2>
|
||||
<div class="event-gallery-grid js-lightbox">
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-1.webp" data-caption="Заедничко гледање ракомет во Словенија"><img loading="lazy" decoding="async" src="../../../images/handball-2025-1.webp" alt="Заедничко гледање ракомет во Словенија, photo 1"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-2.webp" data-caption="Заедничко гледање ракомет во Словенија"><img loading="lazy" decoding="async" src="../../../images/handball-2025-2.webp" alt="Заедничко гледање ракомет во Словенија, photo 2"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-3.webp" data-caption="Заедничко гледање ракомет во Словенија"><img loading="lazy" decoding="async" src="../../../images/handball-2025-3.webp" alt="Заедничко гледање ракомет во Словенија, photo 3"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-4.webp" data-caption="Заедничко гледање ракомет во Словенија"><img loading="lazy" decoding="async" src="../../../images/handball-2025-4.webp" alt="Заедничко гледање ракомет во Словенија, photo 4"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-5.webp" data-caption="Заедничко гледање ракомет во Словенија"><img loading="lazy" decoding="async" src="../../../images/handball-2025-5.webp" alt="Заедничко гледање ракомет во Словенија, photo 5"><span class="eg-more">+2</span></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/handball-2025-6.webp" data-caption="Заедничко гледање ракомет во Словенија"><img loading="lazy" decoding="async" src="../../../images/handball-2025-6.webp" alt="Заедничко гледање ракомет во Словенија, photo 6"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/handball-2025-7.webp" data-caption="Заедничко гледање ракомет во Словенија"><img loading="lazy" decoding="async" src="../../../images/handball-2025-7.webp" alt="Заедничко гледање ракомет во Словенија, photo 7"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-1.webp" data-caption="Заедничко гледање ракомет во Словенија"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-1.webp" alt="Заедничко гледање ракомет во Словенија, photo 1"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-2.webp" data-caption="Заедничко гледање ракомет во Словенија"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-2.webp" alt="Заедничко гледање ракомет во Словенија, photo 2"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-3.webp" data-caption="Заедничко гледање ракомет во Словенија"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-3.webp" alt="Заедничко гледање ракомет во Словенија, photo 3"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-4.webp" data-caption="Заедничко гледање ракомет во Словенија"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-4.webp" alt="Заедничко гледање ракомет во Словенија, photo 4"></button>
|
||||
<button type="button" class="eg-thumb" data-full="../../../images/handball-2025-5.webp" data-caption="Заедничко гледање ракомет во Словенија"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-5.webp" alt="Заедничко гледање ракомет во Словенија, photo 5"><span class="eg-more">+2</span></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/handball-2025-6.webp" data-caption="Заедничко гледање ракомет во Словенија"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-6.webp" alt="Заедничко гледање ракомет во Словенија, photo 6"></button>
|
||||
<button type="button" class="eg-thumb is-hidden" data-full="../../../images/handball-2025-7.webp" data-caption="Заедничко гледање ракомет во Словенија"><img width="720" height="480" loading="lazy" decoding="async" src="../../../images/handball-2025-7.webp" alt="Заедничко гледање ракомет во Словенија, photo 7"></button>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -272,7 +272,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>
|
||||
|
||||
Reference in new issue
Block a user