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:
- 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
- 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
- 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
- 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
- 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!