1.4.12 - Szövegtávolság

Röviden a szabványpontról

A WCAG 1.4.12 (Text Spacing) előírja, hogy a tartalom nem veszíthet információt vagy funkcionalitást, amikor a felhasználók módosítják a szöveggel kapcsolatos térközöket. Konkrétan, a felhasználóknak képesnek kell lenniük a sormagasságot (sortávolságot) legalább a betűméret 1,5-szeresére, a bekezdések utáni térközt legalább a betűméret 2-szeresére, a betűközt legalább a betűméret 0,12-szeresére, és a szóközt legalább a betűméret 0,16-szorosára állítani anélkül, hogy a tartalom vagy használhatósága megtörne.

Ez a kritérium minden weboldalon található szöveges tartalomra vonatkozik, különösen azokra, amelyek szövegstílusokat támogató jelölőnyelvekkel (mint a HTML és CSS) vannak megvalósítva.

Cél: Biztosítani, hogy a gyengénlátó vagy kognitív fogyatékossággal élő felhasználók, akiknek megnövelt térközökre van szükségük az olvashatóság javításához, módosíthassák a szöveg térközöket anélkül, hogy elveszítenék a hozzáférést a tartalomhoz vagy funkcionalitáshoz.

Kiket érint

Elsődleges felhasználók: A gyengénlátó, diszlexiás vagy kognitív fogyatékossággal élő emberek gyakran növelik a szöveg térközöket az olvashatóság javítása és a vizuális zsúfoltság csökkentése érdekében.

Másodlagos előnyök:

  • A javított térközök előnyösek lehetnek a mozgássérült felhasználók számára is, akiknek nehézséget okoz a szorosan egymás mellett elhelyezett szövegre való összpontosítás
  • Kis képernyőkön olvasó vagy kihívást jelentő környezetben tartózkodó felhasználók számára is hasznos

A szöveg térközök rugalmasságának biztosítása segít egy befogadóbb élmény létrehozásában a testreszabott megjelenítési beállításokra támaszkodó felhasználók széles köre számára.

Tesztelés

Konkrét módszerek e kritérium megfelelőségének tesztelésére:

  1. Manuális CSS módosítás: Használd a böngésző fejlesztői eszközeit vagy egyéni felhasználói stíluslapokat a sormagasság, bekezdés térköz, betűköz és szóköz megadott minimumokra való növelésére, és ellenőrizd, hogy nem vész el tartalom vagy funkcionalitás
  2. Nagyítás és újrarendezés tesztelés: Kombináld a szöveg térköz változásokat nagyítással (akár 200%-ig) és ellenőrizd, hogy a tartalom olvasható és használható marad vízszintes görgetés nélkül
  3. Kisegítő technológiák tesztelése: Használj képernyőnagyítókat vagy böngésző kiegészítőket, amelyek szöveg térköz módosításokat szimulálnak, hogy megfigyeld az oldal reakcióját
  4. Automatizált eszközök: Néhány akadálymentességi tesztelő eszköz jelezhet szöveg térközökkel kapcsolatos potenciális problémákat, de a manuális ellenőrzés elengedhetetlen
  5. Felhasználói tesztelés: Gyűjts visszajelzéseket a megnövelt szöveg térközökre támaszkodó felhasználóktól a valós használhatóság validálásához

Jó gyakorlatok

1. Relatív egységek használata térközökhöz

<div class="text-spacing-example">
  <p class="well-spaced-text">
    Ez a bekezdés relatív egységeket használ annak biztosítására, hogy a térközök a betűmérettel együtt skálázódjanak. A sormagasság 1.5-szeres, a bekezdés margó 2em, a betűköz 0.12em, a szóköz pedig 0.16em.
  </p>
  
  <p class="well-spaced-text">
    Egy másik bekezdés, amely ugyanazokat a térköz szabályokat követi. Ez biztosítja a konzisztens megjelenést a teljes tartalomban.
  </p>
</div>

<style>
.text-spacing-example {
  max-width: 600px;
  margin: 20px auto;
  padding: 20px;
  background-color: #f8f9fa;
  border-radius: 8px;
}

.well-spaced-text {
  font-size: 16px;
  line-height: 1.5; /* legalább 1.5x a betűméret */
  margin-bottom: 2em; /* legalább 2x a betűméret */
  letter-spacing: 0.12em; /* legalább 0.12x a betűméret */
  word-spacing: 0.16em; /* legalább 0.16x a betűméret */
  color: #333;
}
</style>

Magyarázat: A relatív egységek (mint az em) használata a térközökhöz biztosítja, hogy amikor a felhasználók növelik a betűméretet vagy térközt, az elrendezés megfelelően alkalmazkodik törés nélkül.

2. Rögzített magasságú konténerek kerülése

<div class="flexible-containers">
  <div class="flexible-card">
    <h3>Rugalmas kártya</h3>
    <p class="card-text">
      Ez a szöveg egy rugalmas konténerben van, amely kiterjed a megnövelt térközökkel. A konténer automatikusan alkalmazkodik a tartalom méretéhez.
    </p>
  </div>
  
  <div class="content-box">
    <h4>Tartalom doboz</h4>
    <p class="box-text">
      Ez a doboz szintén rugalmasan viselkedik és nem vágja le a szöveget, amikor a térközök növekednek.
    </p>
  </div>
</div>

<style>
.flexible-containers {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin: 20px 0;
}

.flexible-card, .content-box {
  flex: 1;
  min-width: 250px;
  /* min-height használata height helyett */
  min-height: auto;
  padding: 20px;
  background-color: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.card-text, .box-text {
  line-height: 1.6; /* nagyobb sormagasság */
  margin-bottom: 1.5em;
  letter-spacing: 0.05em;
  word-spacing: 0.1em;
}

/* Responsive behavior megőrzése */
@media (max-width: 600px) {
  .flexible-containers {
    flex-direction: column;
  }
}
</style>

Magyarázat: A konténereknek nem szabad rögzített magasságot használniuk, amely levágná vagy elrejtené a szöveget, amikor a térközök növekednek.

3. Reszponzivitás tesztelése térköz változásokkal

<div class="spacing-test-area">
  <h2>Térköz tesztelési terület</h2>
  
  <article class="test-article">
    <h3>Cikk címsor</h3>
    <p>
      Ez egy tesztbekezdés, amely bemutatja, hogyan viselkedik a szöveg megnövelt térközökkel. 
      A design rugalmasan alkalmazkodik különböző térköz beállításokhoz.
    </p>
    
    <ul class="test-list">
      <li>Lista elem megfelelő térközökkel</li>
      <li>Másik lista elem teszteléshez</li>
      <li>Harmadik elem az konzisztencia ellenőrzésére</li>
    </ul>
    
    <button class="test-button">Teszt gomb</button>
  </article>
</div>

<style>
/* Globális térköz beállítások teszteléshez */
.spacing-test-area {
  font-family: Arial, sans-serif;
  max-width: 800px;
  margin: 20px auto;
  padding: 20px;
}

.spacing-test-area * {
  line-height: 1.5; /* minimum követelmény */
  letter-spacing: 0.12em; /* minimum követelmény */
  word-spacing: 0.16em; /* minimum követelmény */
}

.spacing-test-area p,
.spacing-test-area li {
  margin-bottom: 2em; /* minimum követelmény bekezdésekhez */
}

.test-article {
  background-color: #f1f3f4;
  padding: 1.5em;
  border-radius: 8px;
  margin-bottom: 2em;
}

.test-list {
  padding-left: 2em;
}

.test-list li {
  margin-bottom: 1em;
}

.test-button {
  padding: 0.75em 1.5em;
  font-size: 1em;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  /* A gomb szövege is követi a térköz szabályokat */
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.test-button:hover {
  background-color: #0056b3;
}

.test-button:focus {
  outline: 3px solid #80bdff;
  outline-offset: 2px;
}
</style>

Magyarázat: A térköz stílusok globális alkalmazása biztosítja a konzisztens viselkedést. Teszteld különböző térköz értékekkel, hogy megbizonyosodj róla, hogy nem történik átfedés vagy levágás.

4. Űrlap elemek rugalmas kezelése

<form class="accessible-form">
  <div class="form-group">
    <label for="name">Teljes név:</label>
    <input type="text" id="name" name="name" class="form-input">
  </div>
  
  <div class="form-group">
    <label for="email">E-mail cím:</label>
    <input type="email" id="email" name="email" class="form-input">
  </div>
  
  <div class="form-group">
    <label for="message">Üzenet:</label>
    <textarea id="message" name="message" class="form-textarea"></textarea>
  </div>
  
  <div class="form-group">
    <input type="checkbox" id="newsletter" name="newsletter" class="form-checkbox">
    <label for="newsletter" class="checkbox-label">Feliratkozom a hírlevelére</label>
  </div>
  
  <button type="submit" class="submit-button">Küldés</button>
</form>

<style>
.accessible-form {
  max-width: 500px;
  margin: 20px auto;
  padding: 20px;
  background-color: #f8f9fa;
  border-radius: 8px;
}

.form-group {
  margin-bottom: 2em; /* térköz bekezdések után */
}

.accessible-form label {
  display: block;
  margin-bottom: 0.5em;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.form-input, .form-textarea {
  width: 100%;
  padding: 0.75em;
  border: 2px solid #ced4da;
  border-radius: 4px;
  font-size: 1em;
  line-height: 1.5;
  letter-spacing: 0.05em;
  box-sizing: border-box;
  /* A mező magassága rugalmasan alkalmazkodik */
  min-height: auto;
}

.form-textarea {
  min-height: 120px;
  resize: vertical;
}

.form-input:focus, .form-textarea:focus {
  outline: 3px solid #80bdff;
  outline-offset: 2px;
  border-color: #007bff;
}

.checkbox-label {
  display: inline;
  margin-left: 0.5em;
  font-weight: normal;
}

.form-checkbox {
  margin-right: 0.5em;
  vertical-align: middle;
}

.submit-button {
  background-color: #28a745;
  color: white;
  padding: 0.75em 2em;
  border: none;
  border-radius: 4px;
  font-size: 1em;
  line-height: 1.5;
  letter-spacing: 0.05em;
  cursor: pointer;
  margin-top: 1em;
}

.submit-button:hover {
  background-color: #218838;
}

.submit-button:focus {
  outline: 3px solid #80bdff;
  outline-offset: 2px;
}
</style>

Magyarázat: Győződj meg róla, hogy az elemek, mint a gombok, címkék vagy űrlap mezők nem fedik át egymást vagy válnak homályossá, amikor a szöveg térközök változnak.

5. Navigációs elemek térköz-barát kialakítása

<nav class="main-nav">
  <ul class="nav-list">
    <li class="nav-item"><a href="/" class="nav-link">Főoldal</a></li>
    <li class="nav-item"><a href="/rolunk" class="nav-link">Rólunk</a></li>
    <li class="nav-item"><a href="/szolgaltatasok" class="nav-link">Szolgáltatások</a></li>
    <li class="nav-item"><a href="/kapcsolat" class="nav-link">Kapcsolat</a></li>
  </ul>
</nav>

<style>
.main-nav {
  background-color: #343a40;
  padding: 1em 0;
  margin-bottom: 2em;
}

.nav-list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0 2em;
  gap: 2em; /* rugalmas térköz a navigációs elemek között */
}

.nav-item {
  /* Nincs rögzített szélesség vagy magasság */
}

.nav-link {
  color: white;
  text-decoration: none;
  padding: 0.75em 1em;
  display: block;
  border-radius: 4px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  word-spacing: 0.1em;
  transition: background-color 0.3s ease;
}

.nav-link:hover {
  background-color: #495057;
}

.nav-link:focus {
  outline: 3px solid #80bdff;
  outline-offset: 2px;
}

/* Reszponzív viselkedés térköz változásokhoz */
@media (max-width: 768px) {
  .nav-list {
    flex-direction: column;
    gap: 1em;
  }
  
  .nav-link {
    text-align: center;
  }
}
</style>

Magyarázat: A navigációs elemek rugalmasan alkalmazkodnak a térköz változásokhoz és nem okoznak átfedést vagy elérhetetlenséget.

Rossz gyakorlatok

Rögzített pixel magasságok okozta levágás

<div style="height: 50px; overflow: hidden; border: 1px solid #ccc;">
  <p style="line-height: 1.5; margin: 10px;">
    Ez a szöveg levágódhat, amikor a térközök növekednek, mert a konténer rögzített magasságú.
  </p>
</div>

Probléma: A rögzített magasságok overflow: hidden beállítással levághatják a szöveget, amikor a térközök növekednek.

Szövegképek használata valódi szöveg helyett

<img src="gomb-szoveg.png" alt="Küldés" width="120" height="40" />

Probléma: A szövegképek nem méretezhetők át és térközük nem módosítható, megsértve ezt a kritériumot.

Keménykódolt térköz értékek pixelekben

<style>
p {
  line-height: 18px; /* rögzített pixel érték */
  letter-spacing: 1px; /* nem skálázódik a betűmérettel */
  word-spacing: 2px; /* rögzített érték */
  margin-bottom: 15px; /* nem arányos */
}
</style>

Probléma: A pixel értékek nem skálázódnak jól a felhasználói beállításokkal, kockáztatva a tartalom törését.

Átfedő elemek rögzített pozicionálással

<div style="position: relative;">
  <p style="margin: 0;">Első bekezdés</p>
  <p style="position: absolute; top: 20px; margin: 0;">
    Második bekezdés, amely átfedheti az elsőt térköz növelésnél
  </p>
</div>

Probléma: Az abszolút pozicionálás és rögzített távolságok átfedést okozhatnak, amikor a szöveg térközök növekednek.

Nem rugalmas táblázat elrendezés

<table style="width: 400px; table-layout: fixed;">
  <tr>
    <td style="height: 30px; overflow: hidden;">Rögzített cella</td>
    <td style="height: 30px; overflow: hidden;">Másik rögzített cella</td>
  </tr>
</table>

Probléma: A rögzített táblázat elrendezés és cella magasságok nem alkalmazkodnak a megnövelt szöveg térközökhöz.

CSS Grid vagy Flexbox nem megfelelő használata

<style>
.bad-grid {
  display: grid;
  grid-template-rows: 50px 100px 50px; /* rögzített sorok */
  grid-gap: 10px; /* rögzített gap pixel értékben */
}

.bad-flex {
  display: flex;
  height: 60px; /* rögzített magasság */
  align-items: center;
}
</style>

Probléma: A rögzített grid sorok és flex magasságok nem tudnak alkalmazkodni a megnövelt szöveg térközökhöz, tartalomvesztést okozva.

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