1.3.4 - Elrendezés megőrzése

Röviden a szabványpontról

A WCAG 1.3.4 (Orientation) előírja, hogy a tartalom nem korlátozhatja a megtekintését és működését egyetlen kijelző tájolásra – mint például álló vagy fekvő -, kivéve, ha egy konkrét tájolás elengedhetetlen. Ez azt jelenti, hogy a webes vagy alkalmazás tartalomnak elegánsan kell alkalmazkodnia a különböző eszköz tájolásokhoz információ vagy funkcionalitás elvesztése nélkül.

A cél az, hogy biztosítsa, hogy azok a felhasználók, akik a képernyő forgatására támaszkodnak, vagy olyan eszközöket használnak, amelyek csak egy bizonyos tájolást támogatnak, hozzáférjenek minden tartalomhoz és funkcióhoz.

Kiket érint

Ez a szabványpont elsősorban azokat a mozgásfogyatékossággal élő embereket érinti, akik rögzített tájolásban felszerelt eszközöket használhatnak, vagy azokat a felhasználókat, akik olyan kisegítő technológiákra támaszkodnak, amelyek egy tájolásban működnek a legjobban. De hasznos lehet akkor is, ha:

  • Javítja a használhatóságot minden felhasználó számára a rugalmas eszközhasználat támogatásával
  • Javítja a felhasználói élményt táblagépeken, telefonokon és hibrid eszközökön

Tesztelés

  1. Manuális tájolás tesztelés: Forgasd el az eszközt vagy emulátort álló és fekvő módok között, és ellenőrizd, hogy a tartalom teljesen elérhető és funkcionális marad-e
  2. Reszponzív dizájn ellenőrzések: Használd a böngésző fejlesztői eszközeit különböző képernyő tájolások szimulálásához, és győződj meg róla, hogy az elrendezés alkalmazkodik tartalom levágás vagy veszteség nélkül
  3. Billentyűzet és érintés interakciós tesztek: Erősítsd meg, hogy minden interaktív elem működtethető marad mindkét tájolásban
  4. Képernyőolvasó tesztelés: Ellenőrizd, hogy a képernyőolvasó fókusz és tartalom folyam logikus és következetes marad a tájolás változások után
  5. Automatizált eszközök: Használj akadálymentességi tesztelő eszközöket, amelyek ellenőrzik a CSS-t vagy JavaScriptet, amely lezárja a tájolást vagy a tartalmat elérhetetlenné teszi tájolás változáskor

Jó gyakorlatok

1. Reszponzív elrendezések

<!-- CSS media query-k használata az elrendezés adaptálásához -->
<style>
  @media (orientation: portrait) {
    .container {
      flex-direction: column;
      padding: 20px;
    }
    .sidebar {
      width: 100%;
      margin-bottom: 20px;
    }
  }
  
  @media (orientation: landscape) {
    .container {
      flex-direction: row;
      padding: 40px;
    }
    .sidebar {
      width: 30%;
      margin-right: 20px;
    }
  }
</style>

Magyarázat: Ez a példa mutatja, hogyan alkalmazkodhat a tartalom vizuálisan a tájolás korlátozása nélkül.

2. Rugalmas UI komponensek

<div class="button-container">
  <button>Opció 1</button>
  <button>Opció 2</button>
  <button>Opció 3</button>
</div>

<style>
.button-container {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.button-container button {
  flex: 1 1 150px; /* Min szélesség 150px, de nőhet */
  padding: 10px 20px;
}
</style>

Magyarázat: A flexbox lehetővé teszi a gombok újrarendezését az elérhető szélesség alapján, támogatva a különböző tájolásokat az elrendezés megtörése nélkül.

3. Tájolás változások kezelése dinamikus tartalomhoz

<script>
window.addEventListener('orientationchange', () => {
  // UI beállítása vagy tartalom újra renderelése szükség esetén
  console.log('Tájolás változott:', screen.orientation.type);
  
  // Példa: Grid elrendezés frissítése
  const grid = document.querySelector('.content-grid');
  if (screen.orientation.type.includes('landscape')) {
    grid.style.gridTemplateColumns = 'repeat(3, 1fr)';
  } else {
    grid.style.gridTemplateColumns = 'repeat(2, 1fr)';
  }
});
</script>

Magyarázat: A tájolás változási események kezelése biztosítja, hogy a dinamikus tartalom megfelelően frissül vagy újrarendeződik.

4. Viewport meta tag helyes használata

<!-- JÓ: Rugalmas viewport beállítás -->
<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- ROSSZ: Ne korlátozd a felhasználói méretezést -->
<!-- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> -->

Magyarázat: A megfelelő viewport beállítás lehetővé teszi a tartalom alkalmazkodását különböző tájolásokhoz.

Rossz gyakorlatok

Rögzített szélességek/magasságok használata

<div style="width: 1024px; height: 768px; overflow: hidden;">
  <!-- Tartalom -->
</div>

Probléma: A rögzített méretek miatt a tartalom levágódik vagy elérhetetlenné válik különböző tájolásokban.

Tájolás zárolása JavaScript vagy meta tagekkel

<!-- Manifest.json példa - KERÜLENDŐ -->
{
  "orientation": "portrait"
}

<!-- JavaScript példa - KERÜLENDŐ -->
<script>
screen.orientation.lock('landscape').catch(() => {
  console.warn('Tájolás zárolás nem támogatott vagy megtagadva');
});
</script>

Probléma: Megakadályozza a felhasználókat a preferált vagy kisegítő eszköz által megkövetelt tájolás használatában.

Tájolás változások nem tesztelése

<div class="modal" style="position: fixed; top: 100px; left: 200px; width: 600px;">
  <!-- Modal tartalom -->
</div>

Probléma: A fix pozícionált elemek kívül eshetnek a látható területen tájolás váltáskor.

Rögzített tájolás feltételezése navigációhoz

<nav style="position: fixed; bottom: 0; width: 100%; height: 50px;">
  <!-- Csak fekvő módban működik jól -->
</nav>

Probléma: A navigáció használhatatlanná válhat vagy túl sok helyet foglalhat álló módban.

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