1.4.10 - Átméretezhető tartalom

Röviden a szabványpontról

A WCAG 1.4.10 (Reflow) előírja, hogy a tartalom információ vagy funkcionalitás elvesztése nélkül megjeleníthető legyen, és ne igényeljen görgetést két dimenzióban (vízszintes és függőleges irányban egyidejűleg) akár 400%-os nagyításnál vagy kis képernyőkön (mint a mobileszközök) történő megtekintéskor. Ez minden webes tartalomra vonatkozik, beleértve a szöveget, képeket és interaktív elemeket.

Cél: Biztosítani, hogy azok a felhasználók, akiknek nagyobb szövegre van szükségük vagy kis képernyőket használnak, könnyedén hozzáférjenek minden tartalomhoz vízszintes görgetés vagy levágott tartalom nélkül.

Kiket érint

Elsődleges felhasználók: Gyengénlátó vagy más látássérüléssel élő emberek, akik nagyításra vagy nagyítóra támaszkodnak a tartalom olvasásához.

Másodlagos előnyök: A mobileszközöket vagy kis képernyőket használó felhasználók profitálnak a jobb reszponzív elrendezésekből és könnyebb navigációból vízszintes görgetősávok nélkül.

Tesztelés

A megfelelőség ellenőrzéséhez próbáld ki ezeket a tesztelési módszereket:

  1. Nagyítási teszt: Használd a böngésző nagyítási vezérlőit a tartalom 400%-ig történő nagyításához és ellenőrizd a vízszintes görgetést vagy tartalom levágását
  2. Reszponzív design tesztelés: Méretezd át a böngészőablakot kis szélességekre (pl. 320px) és ellenőrizd, hogy a tartalom függőlegesen újrarendeződik vízszintes görgetés nélkül
  3. Képernyőolvasó és billentyűzet tesztelés: Győződj meg róla, hogy minden tartalom hozzáférhető és működtethető marad az újrarendezés után
  4. Automatizált eszközök: Használj akadálymentességi tesztelő eszközöket, mint az axe DevTools az újrarendezéssel kapcsolatos elrendezési problémák szkennelésére
  5. Manuális ellenőrzés: Nézd át a rögzített szélességű konténereket vagy elemeket, amelyek megakadályozzák az újrarendezést, mint a rögzített méretű képek vagy táblázatok

Jó gyakorlatok

1. Rugalmas elrendezések CSS Flexbox vagy Grid használatával

<!-- A konténer alkalmazkodik a képernyő méretéhez és függőlegesen rakja egymásra a tartalmat szűk képernyőkön -->
<div class="flex-container">
  <div class="content-block">Tartalom blokk 1</div>
  <div class="content-block">Tartalom blokk 2</div>
  <div class="content-block">Tartalom blokk 3</div>
</div>

<style>
.flex-container {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.content-block {
  flex: 1 1 200px; /* grow, shrink, basis */
  min-width: 150px;
  padding: 1rem;
  background-color: #f0f0f0;
  border: 1px solid #ccc;
}
</style>

Magyarázat: A flex-wrap: wrap lehetővé teszi a blokkok függőleges egymásra rakását kis szélességeknél, elkerülve a vízszintes görgetést.

2. Rögzített szélességek kerülése

<!-- Kerüld a rögzített szélességeket, mint a width: 600px -->
<div class="responsive-container">
  <h2>Reszponzív konténer</h2>
  <p>Ez a konténer alkalmazkodik a képernyő méretéhez és soha nem okoz vízszintes görgetést.</p>
</div>

<style>
.responsive-container {
  width: 100%;
  max-width: 600px; /* maximum szélesség, de rugalmas */
  margin: 0 auto;
  padding: 1rem;
  box-sizing: border-box;
}
</style>

Magyarázat: A relatív szélességek használata, mint a 100% max-width-tel, lehetővé teszi a skálázást túlcsordulás nélkül.

3. Media query-k használata az elrendezés módosításához

<nav class="main-navigation">
  <ul class="nav-menu">
    <li><a href="/">Főoldal</a></li>
    <li><a href="/termekek">Termékek</a></li>
    <li><a href="/szolgaltatasok">Szolgáltatások</a></li>
    <li><a href="/kapcsolat">Kapcsolat</a></li>
  </ul>
</nav>

<style>
.nav-menu {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}

.nav-menu li {
  margin-right: 2rem;
}

.nav-menu a {
  text-decoration: none;
  padding: 0.5rem 1rem;
  display: block;
}

/* Szűk viewport-ok esetén függőleges elrendezés */
@media (max-width: 400px) {
  .nav-menu {
    display: block; /* Navigációs elemek függőleges egymásra rakása */
  }
  
  .nav-menu li {
    margin-right: 0;
    margin-bottom: 0.5rem;
  }
}
</style>

Magyarázat: Az elrendezés módosítása szűk viewport-okhoz biztosítja, hogy a tartalom vízszintes görgetés nélkül férjen el.

4. Képek és média elemek rugalmas kezelése

<div class="media-container">
  <img src="pelda-kep.jpg" alt="Példa kép leírása" class="responsive-image">
  
  <video class="responsive-video" controls>
    <source src="pelda-video.mp4" type="video/mp4">
    A böngésző nem támogatja a video elemet.
  </video>
</div>

<style>
.media-container {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.responsive-image {
  max-width: 100%;
  height: auto;
  display: block;
  margin-bottom: 1rem;
}

.responsive-video {
  width: 100%;
  height: auto;
  max-width: 100%;
}
</style>

Magyarázat: A max-width: 100% beállítása megakadályozza, hogy a képek túllépjék a konténerük határait.

5. CSS Grid reszponzív elrendezéshez

<div class="grid-container">
  <header class="header">Fejléc</header>
  <nav class="sidebar">Oldalsáv</nav>
  <main class="main-content">Fő tartalom</main>
  <footer class="footer">Lábléc</footer>
</div>

<style>
.grid-container {
  display: grid;
  grid-template-columns: 1fr 3fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas: 
    "header header"
    "sidebar main"
    "footer footer";
  gap: 1rem;
  min-height: 100vh;
}

.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main-content { grid-area: main; }
.footer { grid-area: footer; }

/* Kis képernyőkön egyoszlopos elrendezés */
@media (max-width: 600px) {
  .grid-container {
    grid-template-columns: 1fr;
    grid-template-areas: 
      "header"
      "main"
      "sidebar"
      "footer";
  }
}
</style>

Magyarázat: A CSS Grid lehetővé teszi összetett elrendezések létrehozását, amelyek automatikusan alkalmazkodnak különböző képernyőméretekhez.

Rossz gyakorlatok

Rögzített szélességek konténereken vagy elemeken

<div style="width: 600px;">Rögzített szélességű konténer</div>

Probléma: Vízszintes görgetést okoz kisebb képernyőkön vagy nagyított nézetekben.

Táblázatok használata elrendezéshez

<table width="800">
  <tr>
    <td>Elrendezési tartalom</td>
    <td>Másik oszlop</td>
  </tr>
</table>

Probléma: A rögzített szélességű táblázatok vízszintes túlcsordulást okozhatnak és megakadályozzák a rugalmas újrarendezést.

Nem tördelődő szöveg vagy hosszú törhetetlen karakterláncok

<p>Szupertöbbszörösenösszetettmegszentségteleníthetetetlenségeskedéseitekértszupertöbbszörösenösszetett</p>

Probléma: A hosszú, törés nélküli szavak kényszeríthetik a vízszintes görgetést.

Overflow hidden beállítása konténereken

<style>
.container {
  overflow-x: hidden;
  width: 300px;
}
</style>

Probléma: Elrejti a vízszintesen túlcsorduló tartalmat, információvesztést okozva.

Abszolút pozicionálás rögzített értékekkel

<style>
.fixed-position {
  position: absolute;
  left: 500px;
  width: 400px;
}
</style>

Probléma: Az abszolút pozicionálás rögzített értékekkel nem alkalmazkodik a különböző képernyőméretekhez és túlcsordulást okozhat.

Nem reszponzív iframe-ek

<iframe src="https://example.com" width="800" height="600"></iframe>

Probléma: A rögzített méretű iframe-ek nem alkalmazkodnak a képernyő méretéhez és vízszintes görgetést okozhatnak.

Források

Iratkozz fel hírlevelünkre!

Amennyiben szeretnél első kézből értesülni az új bejegyzésekről, iratkozz fel hírlevelünkre!

Ez a weboldal sütiket használ a böngészési élmény javítása és a webhely megfelelő működésének biztosítása érdekében. A webhely használatának folytatásával elismeri és elfogadja a sütik használatát.

Összes elfogadása Csak a szükségesek elfogadása