2.5.8 - Interaktív mutató célpontok legkisebb mérete

Röviden a szabványpontról

A WCAG 2.2 szabványpont 2.5.8 előírja, hogy az interaktív mutató célpontok—mint a gombok, linkek és űrlap vezérlők—legalább 24×24 CSS pixel méretűek legyenek, kivéve ha specifikus kivételek vonatkoznak rájuk. Ez a szabály minden olyan felhasználói felület komponensre vonatkozik, amely mutató bevitellel aktiválható (egér, érintés, stylus stb.). A cél biztosítani, hogy az interaktív elemek elég nagyok legyenek a könnyű érintéshez, vagy kattintáshoz, csökkentve a hibákat és a frusztrációt a korlátozott motoros kontrollal rendelkező felhasználók esetén, vagy a nagy pontosságot igénylő feladatok elvégzésénél.

Mire vonatkozik: Minden interaktív felhasználói felület komponensére, amely mutató bevitellel aktiválható: gombok, linkek, űrlap vezérlők, egyéni komponensek.

Cél: A méretkövetelmény segít:

  • Megakadályozni a közeli vezérlők véletlen aktiválását
  • Támogatni az érintőbevitelre támaszkodó felhasználókat
  • Javítani a finommotoros készségekkel rendelkező nehézségekkel élők élményét
  • Csökkenteni a kattintási/érintési hibákat

Kiket érint

Elsődleges felhasználók: Mozgássérült személyek, akiknek nehézséget okoz a pontos mutató mozgások végrehajtása, mint a remegéssel élők, korlátozott kézügyességgel rendelkezők, vagy segítő technológiákat használók (szájbot, fejmutató).

Másodlagos előnyök: A nagyobb célpontok javítják minden felhasználó élményét érintőeszközökön, beleértve a nagyobb ujjakkal rendelkezőket, vagy olyan helyzetekben, ahol a pontos mutatás nehéz (pl. járás közben vagy mozgó mobileszköz használatakor).

Tesztelés

  1. Manuális mérés: Használd a böngésző fejlesztői eszközeit (pl. Chrome DevTools) az interaktív elemek számított méretének ellenőrzésére és győződj meg róla, hogy elérik a minimum 24×24 CSS pixelt
  2. Automatizált eszközök: Futtass akadálymentességi szkennereket, mint az axe DevTools, amelyek jelzik a 24×24 pixelnél kisebb célpontokat
  3. Érintőcélpont tesztelés: Érintőeszközökön próbáld meg megérinteni az interaktív elemeket, hogy megerősítsd, könnyű aktiválni őket anélkül, hogy véletlenül a szomszédos vezérlőket érintenéd
  4. Billentyűzet fókusz tesztelés: Biztosítsd, hogy a billentyűzet fókusz stílusok egyértelműen jelzik a célpontot és hogy a célpontok nem túl kicsik a billentyűzetes működtetéshez
  5. Felhasználói tesztelés: Végezz használhatósági teszteket mozgássérült felhasználókkal, hogy megerősítsd, a célpont méretek megfelelőek valós helyzetekben

Jó megoldások

1. Megfelelő méretű gombok

<!-- Jó: Gombok megfelelő minimum mérettel -->
<div class="gomb-pelda-container">
  <h3>Megfelelő méretű gombok</h3>
  
  <div class="gomb-sor">
    <button class="jo-gomb-alap" style="width: 32px; height: 32px;">
      ✓
    </button>
    <span class="magyarazat">32×32px - megfelel a minimum követelménynek</span>
  </div>
  
  <div class="gomb-sor">
    <button class="jo-gomb-kozepes">
      Mentés
    </button>
    <span class="magyarazat">Padding-gel megfelelő méret biztosítva</span>
  </div>
  
  <div class="gomb-sor">
    <button class="jo-gomb-nagy">
      🚀 Indítás
    </button>
    <span class="magyarazat">Nagy gomb jó kattintási élménnyel</span>
  </div>
  
  <div class="gomb-sor">
    <button class="jo-gomb-ikon" aria-label="Beállítások megnyitása">
      ⚙️
    </button>
    <span class="magyarazat">Ikon gomb megfelelő mérettel és leírással</span>
  </div>
  
  <div class="gomb-sor">
    <button class="jo-gomb-szoveg-ikon">
      <span class="ikon">📁</span>
      <span class="szoveg">Fájl megnyitása</span>
    </button>
    <span class="magyarazat">Kombinált ikon+szöveg gomb</span>
  </div>
</div>

<style>
.gomb-pelda-container {
  max-width: 600px;
  margin: 20px auto;
  padding: 20px;
  background: #f8f9fa;
  border-radius: 8px;
}

.gomb-sor {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 15px;
  padding: 10px;
  background: white;
  border-radius: 6px;
  border: 1px solid #dee2e6;
}

.magyarazat {
  font-size: 14px;
  color: #6c757d;
  flex: 1;
}

/* Alap gomb 32x32px */
.jo-gomb-alap {
  background: #28a745;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.jo-gomb-alap:hover {
  background: #218838;
}

.jo-gomb-alap:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

/* Közepes gomb padding-gel */
.jo-gomb-kozepes {
  background: #007bff;
  color: white;
  border: none;
  border-radius: 6px;
  padding: 12px 20px; /* Biztosítja a min. 24x24px méretet */
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  min-width: 24px;
  min-height: 24px;
}

.jo-gomb-kozepes:hover {
  background: #0056b3;
}

.jo-gomb-kozepes:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

/* Nagy gomb */
.jo-gomb-nagy {
  background: #fd7e14;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 16px 32px;
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  min-width: 44px; /* Még nagyobb jobb élményért */
  min-height: 44px;
}

.jo-gomb-nagy:hover {
  background: #e8630a;
  transform: translateY(-1px);
}

.jo-gomb-nagy:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

/* Ikon gomb */
.jo-gomb-ikon {
  background: #6c757d;
  color: white;
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  cursor: pointer;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.jo-gomb-ikon:hover {
  background: #5a6268;
}

.jo-gomb-ikon:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

/* Szöveg+ikon gomb */
.jo-gomb-szoveg-ikon {
  background: #17a2b8;
  color: white;
  border: none;
  border-radius: 6px;
  padding: 12px 16px;
  cursor: pointer;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 24px;
  min-height: 24px;
}

.jo-gomb-szoveg-ikon:hover {
  background: #138496;
}

.jo-gomb-szoveg-ikon:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

.jo-gomb-szoveg-ikon .ikon {
  font-size: 16px;
}

.jo-gomb-szoveg-ikon .szoveg {
  font-weight: 500;
}
</style>

Ezek a gombok mind megfelelnek a 24×24 pixel minimum követelménynek. A padding, explicit width/height vagy nagyobb méretek biztosítják a megfelelő kattintási területet.

2. Linkek padding-gel növelt kattintási területtel

<!-- Jó: Linkek megfelelő kattintási területtel -->
<div class="link-pelda-container">
  <h3>Megfelelő méretű linkek</h3>
  
  <div class="link-sor">
    <a href="#" class="jo-link-padding">Bővebben</a>
    <span class="magyarazat">Padding biztosítja a megfelelő kattintási területet</span>
  </div>
  
  <div class="link-sor">
    <a href="#" class="jo-link-gomb">
      <span class="link-ikon">📎</span>
      <span class="link-szoveg">Fájl letöltése</span>
    </a>
    <span class="magyarazat">Gomb-szerű link megfelelő mérettel</span>
  </div>
  
  <div class="link-sor">
    <a href="#" class="jo-link-ikon" aria-label="Szerkesztés">
      ✏️
    </a>
    <span class="magyarazat">Ikon link megfelelő mérettel és alt szöveggel</span>
  </div>
  
  <nav class="navigacio-pelda">
    <h4>Navigációs linkek</h4>
    <ul class="nav-lista">
      <li><a href="#" class="nav-link">Főoldal</a></li>
      <li><a href="#" class="nav-link">Termékek</a></li>
      <li><a href="#" class="nav-link">Szolgáltatások</a></li>
      <li><a href="#" class="nav-link">Kapcsolat</a></li>
    </ul>
    <span class="magyarazat">Navigációs linkek megfelelő padding-gel</span>
  </nav>
  
  <div class="breadcrumb-pelda">
    <h4>Breadcrumb navigáció</h4>
    <nav aria-label="Breadcrumb">
      <ol class="breadcrumb-lista">
        <li><a href="#" class="breadcrumb-link">Kezdőlap</a></li>
        <li><span class="breadcrumb-elvalaszto">/</span></li>
        <li><a href="#" class="breadcrumb-link">Kategória</a></li>
        <li><span class="breadcrumb-elvalaszto">/</span></li>
        <li><span class="breadcrumb-jelenlegi">Jelenlegi oldal</span></li>
      </ol>
    </nav>
    <span class="magyarazat">Breadcrumb linkek megfelelő mérettel</span>
  </div>
</div>

<style>
.link-pelda-container {
  max-width: 700px;
  margin: 20px auto;
  padding: 20px;
  background: #f8f9fa;
  border-radius: 8px;
}

.link-sor {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 15px;
  padding: 10px;
  background: white;
  border-radius: 6px;
  border: 1px solid #dee2e6;
}

.navigacio-pelda, .breadcrumb-pelda {
  margin: 20px 0;
  padding: 15px;
  background: white;
  border-radius: 6px;
  border: 1px solid #dee2e6;
}

/* Padding-gel növelt link */
.jo-link-padding {
  display: inline-block;
  padding: 12px 16px; /* Biztosítja a min. 24x24px méretet */
  background: #e7f3ff;
  color: #0066cc;
  text-decoration: none;
  border-radius: 4px;
  font-weight: 500;
  min-width: 24px;
  min-height: 24px;
  text-align: center;
}

.jo-link-padding:hover {
  background: #cce7ff;
  text-decoration: underline;
}

.jo-link-padding:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

/* Gomb-szerű link */
.jo-link-gomb {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: #28a745;
  color: white;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 500;
  min-width: 24px;
  min-height: 24px;
}

.jo-link-gomb:hover {
  background: #218838;
  color: white;
  text-decoration: none;
}

.jo-link-gomb:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

.link-ikon {
  font-size: 16px;
}

/* Ikon link */
.jo-link-ikon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: #6c757d;
  color: white;
  text-decoration: none;
  border-radius: 50%;
  font-size: 16px;
}

.jo-link-ikon:hover {
  background: #5a6268;
  color: white;
  text-decoration: none;
}

.jo-link-ikon:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

/* Navigációs linkek */
.nav-lista {
  list-style: none;
  padding: 0;
  margin: 10px 0;
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

.nav-lista li {
  margin: 0;
}

.nav-link {
  display: block;
  padding: 12px 16px; /* Megfelelő kattintási terület */
  background: #007bff;
  color: white;
  text-decoration: none;
  border-radius: 4px;
  font-weight: 500;
  min-width: 24px;
  min-height: 24px;
  text-align: center;
}

.nav-link:hover {
  background: #0056b3;
  color: white;
  text-decoration: none;
}

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

/* Breadcrumb navigáció */
.breadcrumb-lista {
  list-style: none;
  padding: 0;
  margin: 10px 0;
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}

.breadcrumb-lista li {
  margin: 0;
}

.breadcrumb-link {
  display: inline-block;
  padding: 8px 12px; /* Megfelelő kattintási terület */
  color: #0066cc;
  text-decoration: none;
  border-radius: 3px;
  min-width: 24px;
  min-height: 24px;
  text-align: center;
}

.breadcrumb-link:hover {
  background: #e7f3ff;
  text-decoration: underline;
}

.breadcrumb-link:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
  background: #e7f3ff;
}

.breadcrumb-elvalaszto {
  color: #6c757d;
  margin: 0 5px;
}

.breadcrumb-jelenlegi {
  padding: 8px 12px;
  color: #6c757d;
  font-weight: 500;
}

.magyarazat {
  font-size: 14px;
  color: #6c757d;
  flex: 1;
}
</style>

A linkek padding-gel vagy explicit méretekkel biztosítják a 24×24 pixel minimum kattintási területet, javítva a használhatóságot minden eszközön.

3. Kis ikon gomb szomszédos nagyobb célponttal

<!-- Jó: Kis ikon gomb nagyobb alternatívával -->
<div class="szomszedos-celpontok-container">
  <h3>Kis gombok nagyobb alternatívákkal</h3>
  
  <div class="celpontok-sor">
    <div class="info-kombináció">
      <!-- 20x20px kis ikon gomb (kivétel a szabály alól) -->
      <button class="kis-info-gomb" 
              style="width: 20px; height: 20px;" 
              aria-label="Információ">
        ℹ️
      </button>
      <!-- Szomszédos nagyobb link célpont -->
      <a href="#" class="nagyobb-info-link">
        További információk
      </a>
    &div>
    <span class="magyarazat">20×20px gomb megengedett, mert van szomszédos nagyobb célpont</span>
  </div>
  
  <div class="celpontok-sor">
    <div class="szerkesztesi-kombináció">
      <button class="kis-szerkesztes-gomb" 
              style="width: 18px; height: 18px;" 
              aria-label="Gyors szerkesztés">
        ✏️
      </button>
      <a href="#" class="nagyobb-szerkesztes-link">
        Szerkesztés
      </a>
    </div>
    <span class="magyarazat">18×18px gomb + nagyobb szerkesztés link</span>
  </div>
  
  <div class="celpontok-sor">
    <div class="torles-kombináció">
      <button class="kis-torles-gomb" 
              style="width: 16px; height: 16px;" 
              aria-label="Gyors törlés">
        ❌
      </button>
      <button class="nagyobb-torles-gomb">
        🗑️ Törlés
      </button>
    </div>
    <span class="magyarazat">16×16px kis gomb + nagy törlés gomb</span>
  </div>
  
  <div class="lista-elemek-pelda">
    <h4>Lista elemek kis és nagy vezérlőkkel</h4>
    <ul class="elemek-lista">
      <li class="lista-elem">
        <span class="elem-tartalom">Dokumentum 1.pdf</span>
        <div class="elem-muveletek">
          <button class="kis-letoltes" 
                  style="width: 20px; height: 20px;"
                  aria-label="Gyors letöltés">
            ⬇️
          </button>
          <a href="#" class="nagy-letoltes-link">
            💾 Letöltés
          </a>
          <button class="kis-megosztás" 
                  style="width: 20px; height: 20px;"
                  aria-label="Gyors megosztás">
            🔗
          </button>
          <button class="nagy-megosztás-gomb">
            📤 Megosztás
          </button>
        </div>
      </li>
      
      <li class="lista-elem">
        <span class="elem-tartalom">Kép_2024.jpg</span>
        <div class="elem-muveletek">
          <button class="kis-letoltes" 
                  style="width: 20px; height: 20px;"
                  aria-label="Gyors letöltés">
            ⬇️
          </button>
          <a href="#" class="nagy-letoltes-link">
            💾 Letöltés
          </a>
          <button class="kis-megosztás" 
                  style="width: 20px; height: 20px;"
                  aria-label="Gyors megosztás">
            🔗
          </button>
          <button class="nagy-megosztás-gomb">
            📤 Megosztás
          </button>
        </div>
      </li>
    </ul>
  </div>
</div>

<style>
.szomszedos-celpontok-container {
  max-width: 800px;
  margin: 20px auto;
  padding: 20px;
  background: #f8f9fa;
  border-radius: 8px;
}

.celpontok-sor {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 15px;
  padding: 15px;
  background: white;
  border-radius: 6px;
  border: 1px solid #dee2e6;
}

.info-kombináció, .szerkesztesi-kombináció, .torles-kombináció {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Kis info gomb */
.kis-info-gomb {
  background: #17a2b8;
  color: white;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kis-info-gomb:hover {
  background: #138496;
}

.kis-info-gomb:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

/* Nagyobb info link */
.nagyobb-info-link {
  display: inline-block;
  padding: 8px 16px;
  background: #e7f3ff;
  color: #0066cc;
  text-decoration: none;
  border-radius: 4px;
  font-size: 14px;
  min-width: 24px;
  min-height: 24px;
}

.nagyobb-info-link:hover {
  background: #cce7ff;
  text-decoration: underline;
}

.nagyobb-info-link:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

/* Kis szerkesztés gomb */
.kis-szerkesztes-gomb {
  background: #ffc107;
  color: #212529;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  font-size: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kis-szerkesztes-gomb:hover {
  background: #e0a800;
}

.kis-szerkesztes-gomb:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

/* Nagyobb szerkesztés link */
.nagyobb-szerkesztes-link {
  display: inline-block;
  padding: 8px 16px;
  background: #fff3cd;
  color: #856404;
  text-decoration: none;
  border-radius: 4px;
  font-size: 14px;
  min-width: 24px;
  min-height: 24px;
}

.nagyobb-szerkesztes-link:hover {
  background: #ffeaa7;
  text-decoration: underline;
}

.nagyobb-szerkesztes-link:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

/* Kis törlés gomb */
.kis-torles-gomb {
  background: #dc3545;
  color: white;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  font-size: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kis-torles-gomb:hover {
  background: #c82333;
}

.kis-torles-gomb:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

/* Nagyobb törlés gomb */
.nagyobb-torles-gomb {
  background: #dc3545;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 8px 16px;
  cursor: pointer;
  font-size: 14px;
  min-width: 24px;
  min-height: 24px;
}

.nagyobb-torles-gomb:hover {
  background: #c82333;
}

.nagyobb-torles-gomb:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

/* Lista elemek */
.lista-elemek-pelda {
  margin-top: 30px;
  padding: 15px;
  background: white;
  border-radius: 6px;
  border: 1px solid #dee2e6;
}

.elemek-lista {
  list-style: none;
  padding: 0;
  margin: 15px 0;
}

.lista-elem {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
  margin-bottom: 10px;
  background: #f8f9fa;
  border-radius: 4px;
  border: 1px solid #dee2e6;
}

.elem-tartalom {
  font-weight: 500;
  flex: 1;
}

.elem-muveletek {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Kis letöltés gomb */
.kis-letoltes {
  background: #28a745;
  color: white;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kis-letoltes:hover {
  background: #218838;
}

.kis-letoltes:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

/* Nagy letöltés link */
.nagy-letoltes-link {
  display: inline-block;
  padding: 6px 12px;
  background: #d4edda;
  color: #155724;
  text-decoration: none;
  border-radius: 4px;
  font-size: 12px;
  min-width: 24px;
  min-height: 24px;
}

.nagy-letoltes-link:hover {
  background: #c3e6cb;
  text-decoration: underline;
}

.nagy-letoltes-link:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

/* Kis megosztás gomb */
.kis-megosztás {
  background: #6f42c1;
  color: white;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kis-megosztás:hover {
  background: #5a32a3;
}

.kis-megosztás:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

/* Nagy megosztás gomb */
.nagy-megosztás-gomb {
  background: #6f42c1;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 6px 12px;
  cursor: pointer;
  font-size: 12px;
  min-width: 24px;
  min-height: 24px;
}

.nagy-megosztás-gomb:hover {
  background: #5a32a3;
}

.nagy-megosztás-gomb:focus {
  outline: 2px solid #ffbf47;
  outline-offset: 2px;
}

.magyarazat {
  font-size: 14px;
  color: #6c757d;
  flex: 1;
}
</style>

A kis gombok (16-20px) megengedettek, mert szomszédos nagyobb célpontok biztosítják az alternatív elérést ugyanahhoz a funkcióhoz.

4. CSS media query-k érintőeszközökhöz

<!-- Jó: Adaptív célpont méretek eszköz típus szerint -->
<div class="adaptiv-celpontok-container">
  <h3>Adaptív célpont méretek</h3>
  
  <div class="adaptiv-gombok">
    <button class="adaptiv-gomb-1">Adaptív gomb</button>
    <button class="adaptiv-gomb-2">Másik gomb</button>
    <a href="#" class="adaptiv-link">Adaptív link</a>
  </div>
  
  <div class="adaptiv-navigacio">
    <nav>
      <ul class="adaptiv-nav-lista">
        <li><a href="#" class="adaptiv-nav-link">Kezdőlap</a></li>
        <li><a href="#" class="adaptiv-nav-link">Szolgáltatások</a></li>
        <li><a href="#" class="adaptiv-nav-link">Kapcsolat</a></li>
      </ul>
    </nav>
  </div>
  
  <div class="adaptiv-ikon-sor">
    <button class="adaptiv-ikon-gomb" aria-label="Keresés">🔍</button>
    <button class="adaptiv-ikon-gomb" aria-label="Beállítások">⚙️</button>
    <button class="adaptiv-ikon-gomb" aria-label="Profil">👤</button>
    <button class="adaptiv-ikon-gomb" aria-label="Értesítések">🔔</button>
  </div>
  
  <div class="info-szoveg">
    <p><strong>Működés:</strong></p>
    <ul>
      <li>🖱️ Egérrel (fine pointer): Alapértelmezett méretek</li>
      <li>👆 Érintéssel (coarse pointer): Nagyobb méretek automatikusan</li>
      <li>📱 Kis képernyő: Még nagyobb méretek jobb használhatóságért</li>
    </ul>
  </div>
</div>

<style>
.adaptiv-celpontok-container {
  max-width: 700px;
  margin: 20px auto;
  padding: 20px;
  background: #f8f9fa;
  border-radius: 8px;
}

/* Alapértelmezett méretek (fine pointer - egér, trackpad) */
.adaptiv-gomb-1, .adaptiv-gomb-2 {
  background: #007bff;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 8px 16px;
  margin: 5px;
  cursor: pointer;
  font-size: 14px;
  min-width: 24px;
  min-height: 24px;
}

.adaptiv-link {
  display: inline-block;
  padding: 8px 16px;
  margin: 5px;
  background: #e7f3ff;
  color: #0066cc;
  text-decoration: none;
  border-radius: 4px;
  min-width: 24px;
  min-height: 24px;
}

.adaptiv-nav-lista {
  list-style: none;
  padding: 0;
  margin: 20px 0;
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

.adaptiv-nav-link {
  display: block;
  padding: 10px 15px;
  background: #6c757d;
  color: white;
  text-decoration: none;
  border-radius: 4px;
  min-width: 24px;
  min-height: 24px;
}

.adaptiv-ikon-sor {
  display: flex;
  gap: 10px;
  margin: 20px 0;
  flex-wrap: wrap;
}

.adaptiv-ikon-gomb {
  background: #28a745;
  color: white;
  border: none;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Érintőeszközök (coarse pointer) */
@media (pointer: coarse) {
  .adaptiv-gomb-1, .adaptiv-gomb-2 {
    padding: 12px 20px;
    font-size: 16px;
    min-width: 44px;  /* Nagyobb érintőcélpont */
    min-height: 44px;
  }
  
  .adaptiv-link {
    padding: 12px 20px;
    font-size: 16px;
    min-width: 44px;
    min-height: 44px;
  }
  
  .adaptiv-nav-link {
    padding: 14px 18px;
    font-size: 16px;
    min-width: 44px;
    min-height: 44px;
  }
  
  .adaptiv-ikon-gomb {
    width: 48px;     /* Nagyobb ikon gombok érintéshez */
    height: 48px;
    font-size: 20px;
  }
}

/* Kis képernyők (mobil eszközök) */
@media (max-width: 768px) {
  .adaptiv-gomb-1, .adaptiv-gomb-2 {
    padding: 14px 24px;
    font-size: 18px;
    min-width: 48px;  /* Még nagyobb mobil eszközökön */
    min-height: 48px;
  }
  
  .adaptiv-link {
    padding: 14px 24px;
    font-size: 18px;
    min-width: 48px;
    min-height: 48px;
  }
  
  .adaptiv-nav-link {
    padding: 16px 20px;
    font-size: 18px;
    min-width: 48px;
    min-height: 48px;
  }
  
  .adaptiv-ikon-gomb {
    width: 52px;     /* Maximum méret kis képernyőkön */
    height: 52px;
    font-size: 22px;
  }
  
  .adaptiv-ikon-sor {
    justify-content: center;
  }
  
  .adaptiv-nav-lista {
    flex-direction: column;
    align-items: center;
  }
}

/* Hover és focus állapotok */
.adaptiv-gomb-1:hover, .adaptiv-gomb-2:hover {
  background: #0056b3;
}

.adaptiv-gomb-1:focus, .adaptiv-gomb-2:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

.adaptiv-link:hover {
  background: #cce7ff;
  text-decoration: underline;
}

.adaptiv-link:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

.adaptiv-nav-link:hover {
  background: #5a6268;
}

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

.adaptiv-ikon-gomb:hover {
  background: #218838;
}

.adaptiv-ikon-gomb:focus {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

.info-szoveg {
  margin-top: 30px;
  padding: 15px;
  background: #e7f3ff;
  border-radius: 6px;
  border-left: 4px solid #0066cc;
}

.info-szoveg ul {
  margin: 10px 0;
  padding-left: 20px;
}

.info-szoveg li {
  margin-bottom: 5px;
}
</style>

A CSS media query-k automatikusan nagyobb célpontokat biztosítanak érintőeszközökön és kis képernyőkön, ahol a pontosság kritikusabb.

Helytelen megoldások

Apró kattintási területek padding nélkül

<!-- Rossz: Túl kicsi kattintási területek -->
<div class="rossz-celpontok-container">
  <h3>Túl kicsi célpontok (ROSSZ példák)</h3>
  
  <div class="rossz-pelda">
    <!-- Rossz: Túl kicsi X gomb -->
    <a href="#" class="rossz-x-gomb">X</a>
    <span class="hibajelzes">❌ Gyakran kevesebb mint 24×24px, nehéz eltalálni</span>
  </div>
  
  <div class="rossz-pelda">
    <!-- Rossz: Ikon csak font-size-szal, padding nélkül -->
    <button class="rossz-ikon-gomb">✕</button>
    <span class="hibajelzes">❌ Vizuális méret kicsi, tényleges célpont még kisebb</span>
  </div>
  
  <div class="rossz-pelda">
    <!-- Rossz: Kicsi checkbox és radio gombok -->
    <label class="rossz-checkbox-label">
      <input type="checkbox" class="rossz-checkbox">
      Elfogadom
    </label>
    <span class="hibajelzes">❌ Alapértelmezett checkbox túl kicsi érintéshez</span>
  </div>
  
  <div class="rossz-pelda">
    <!-- Rossz: Kicsi linkek lista formában -->
    <ul class="rossz-linkek-lista">
      <li><a href="#" class="rossz-lista-link">Link 1</a></li>
      <li><a href="#" class="rossz-lista-link">Link 2</a></li>
      <li><a href="#" class="rossz-lista-link">Link 3</a></li>
    </ul>
    <span class="hibajelzes">❌ Linkek túl közel egymáshoz, kis célpont</span>
  </div>
</div>

<style>
.rossz-celpontok-container {
  max-width: 600px;
  margin: 20px auto;
  padding: 20px;
  background: #fff5f5;
  border: 2px solid #dc3545;
  border-radius: 8px;
}

.rossz-pelda {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 20px;
  padding: 15px;
  background: white;
  border-radius: 6px;
  border: 1px solid #f5c6cb;
}

.hibajelzes {
  color: #721c24;
  font-size: 14px;
  font-weight: 500;
  flex: 1;
}

/* Rossz: Túl kicsi X gomb */
.rossz-x-gomb {
  color: #dc3545;
  text-decoration: none;
  font-size: 16px;
  font-weight: bold;
  /* Nincs padding, nincs minimum méret */
  /* Tényleges kattintási terület ~16x16px vagy kevesebb */
}

/* Rossz: Ikon gomb csak font-size-szal */
.rossz-ikon-gomb {
  background: #dc3545;
  color: white;
  border: none;
  cursor: pointer;
  font-size: 16px;
  /* Nincs padding, nincs width/height */
  /* Célpont méret ismeretlen és valószínűleg kicsi */
}

/* Rossz: Kicsi checkbox */
.rossz-checkbox-label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
}

.rossz-checkbox {
  /* Alapértelmezett böngésző méret, általában ~13x13px */
  /* Túl kicsi érintőeszközökön */
}

/* Rossz: Kicsi linkek lista */
.rossz-linkek-lista {
  list-style: none;
  padding: 0;
  margin: 0;
}

.rossz-linkek-lista li {
  margin-bottom: 2px; /* Túl kis távolság */
}

.rossz-lista-link {
  color: #007bff;
  text-decoration: none;
  font-size: 14px;
  /* Nincs padding, nincs minimum méret */
  /* Kattintási terület csak a szöveg mérete */
}

.rossz-lista-link:hover {
  text-decoration: underline;
}
</style>

Probléma: Ezek az elemek nem érik el a 24×24 pixel minimum méretet, nehézzé téve a pontos kattintást vagy érintést, különösen mozgássérült felhasználók számára.

Átfedő kis célpontok véletlen aktiválást váltanak ki

<!-- Rossz: Átfedő kis gombok -->
<div class="atfedo-celpontok-container">
  <h3>Átfedő kis célpontok (ROSSZ példák)</h3>
  
  <div class="rossz-pelda">
    <div class="atfedo-gombok-1">
      <!-- Rossz: Túl közel egymáshoz, kis méretek -->
      <button class="rossz-kis-gomb" style="position: absolute; left: 10px; top: 10px;">A</button>
      <button class="rossz-kis-gomb" style="position: absolute; left: 25px; top: 10px;">B</button>
      <button class="rossz-kis-gomb" style="position: absolute; left: 40px; top: 10px;">C</button>
    </div>
    <span class="hibajelzes">❌ 20×20px gombok 15px távolságra - átfedő célterületek</span>
  </div>
  
  <div class="rossz-pelda">
    <div class="zsufolt-ikonok">
      <!-- Rossz: Túl sok kis ikon egy helyen -->
      <button class="rossz-ikon-kicsi">📝</button>
      <button class="rossz-ikon-kicsi">🗑️</button>
      <button class="rossz-ikon-kicsi">📤</button>
      <button class="rossz-ikon-kicsi">⚙️</button>
      <button class="rossz-ikon-kicsi">❤️</button>
    </div>
    <span class="hibajelzes">❌ Zsúfolt kis ikon gombok nehéz célzással</span>
  </div>
  
  <div class="rossz-pelda">
    <div class="rossz-navigacio">
      <!-- Rossz: Navigációs linkek túl közel -->
      <a href="#" class="rossz-nav-link">Főoldal</a> |
      <a href="#" class="rossz-nav-link">Termékek</a> |
      <a href="#" class="rossz-nav-link">Szolgáltatások</a> |
      <a href="#" class="rossz-nav-link">Kapcsolat</a>
    </div>
    <span class="hibajelzes">❌ Inline linkek elválasztó karakterekkel - kis célpontok</span>
  </div>
  
  <div class="rossz-pelda">
    <div class="rossz-tabla-muveletek">
      <!-- Rossz: Táblázat műveletek kis gombokkal -->
      <table class="rossz-tabla">
        <tr>
          <td>Elem 1</td>
          <td class="muveletek-oszlop">
            <button class="rossz-tabla-gomb">📝</button>
            <button class="rossz-tabla-gomb">👁️</button>
            <button class="rossz-tabla-gomb">🗑️</button>
          </td>
        </tr>
        <tr>
          <td>Elem 2</td>
          <td class="muveletek-oszlop">
            <button class="rossz-tabla-gomb">📝</button>
            <button class="rossz-tabla-gomb">👁️</button>
            <button class="rossz-tabla-gomb">🗑️</button>
          </td>
        </tr>
      </table>
    </div>
    <span class="hibajelzes">❌ Táblázat műveletek túl kicsi gombokkal</span>
  </div>
</div>

<style>
.atfedo-celpontok-container {
  max-width: 700px;
  margin: 20px auto;
  padding: 20px;
  background: #fff5f5;
  border: 2px solid #dc3545;
  border-radius: 8px;
}

.rossz-pelda {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 25px;
  padding: 20px;
  background: white;
  border-radius: 6px;
  border: 1px solid #f5c6cb;
  position: relative;
}

.atfedo-gombok-1 {
  position: relative;
  width: 80px;
  height: 40px;
  background: #f8f9fa;
  border: 1px dashed #dc3545;
}

/* Rossz: Kis gombok túl közel */
.rossz-kis-gomb {
  width: 20px;
  height: 20px;
  background: #dc3545;
  color: white;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
  /* Átfedő pozíciók miatt véletlen kattintások */
}

/* Rossz: Zsúfolt ikonok */
.zsufolt-ikonok {
  display: flex;
  gap: 2px; /* Túl kicsi távolság */
}

.rossz-ikon-kicsi {
  width: 18px;
  height: 18px;
  background: #6c757d;
  color: white;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  font-size: 10px;
  /* Túl kicsi érintéshez */
}

/* Rossz: Navigációs linkek */
.rossz-navigacio {
  font-size: 14px;
}

.rossz-nav-link {
  color: #007bff;
  text-decoration: none;
  padding: 2px 4px; /* Túl kicsi padding */
  /* Kattintási terület túl kicsi */
}

.rossz-nav-link:hover {
  text-decoration: underline;
}

/* Rossz: Táblázat gombok */
.rossz-tabla {
  border-collapse: collapse;
  width: 100%;
}

.rossz-tabla td {
  padding: 5px;
  border: 1px solid #dee2e6;
}

.muveletek-oszlop {
  text-align: center;
}

.rossz-tabla-gomb {
  width: 16px;
  height: 16px;
  background: #6c757d;
  color: white;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  font-size: 8px;
  margin: 0 1px;
  /* Túl kicsi minden eszközön */
}

.hibajelzes {
  color: #721c24;
  font-size: 14px;
  font-weight: 500;
  flex: 1;
}
</style>

Probléma: Az átfedő vagy túl közeli kis célpontok véletlen aktiválásokat okoznak és megnehezítik a pontos interakciót, különösen érintőeszközökön.

Responsive hiány kis képernyőkön

<!-- Rossz: Nem adaptív célpontok -->
<div class="nem-adaptiv-container">
  <h3>Nem adaptív célpontok (ROSSZ példák)</h3>
  
  <div class="rossz-pelda">
    <div class="fix-meretu-gombok">
      <!-- Rossz: Fix kicsi méretek minden eszközön -->
      <button class="fix-kicsi-gomb">Mentés</button>
      <button class="fix-kicsi-gomb">Mégse</button>
      <button class="fix-kicsi-gomb">Törlés</button>
    </div>
    <span class="hibajelzes">❌ Fix 20×20px méret minden eszközön - mobilon használhatatlan</span>
  </div>
  
  <div class="rossz-pelda">
    <div class="egesz-ikon-sor">
      <!-- Rossz: Képernyő mérettől függetlenül ugyanaz -->
      <button class="nem-adaptiv-ikon">🏠</button>
      <button class="nem-adaptiv-ikon">🔍</button>
      <button class="nem-adaptiv-ikon">⚙️</button>
      <button class="nem-adaptiv-ikon">❤️</button>
      <button class="nem-adaptiv-ikon">📧</button>
      <button class="nem-adaptiv-ikon">🔔</button>
    </div>
    <span class="hibajelzes">❌ Ikonok nem nőnek mobilon - túl kicsik érintéshez</span>
  </div>
  
  <div class="rossz-pelda">
    <form class="nem-adaptiv-form">
      <!-- Rossz: Űrlap elemek nem adaptívok -->
      <input type="text" class="fix-input" placeholder="Név">
      <input type="email" class="fix-input" placeholder="Email">
      <button type="submit" class="fix-submit">Küldés</button>
    </form>
    <span class="hibajelzes">❌ Űrlap elemek nem növekednek mobilon</span>
  </div>
  
  <div class="rossz-pelda">
    <div class="apro-vezerlok">
      <!-- Rossz: Minuscule vezérlők mobilon -->
      <div class="szam-bevitel">
        <button class="apro-csokkento">-</button>
        <span class="szam-kijelzo">5</span>
        <button class="apro-novelo">+</button>
      </div>
    </div>
    <span class="hibajelzes">❌ Szám vezérlők túl kicsik mobilon</span>
  </div>
</div>

<style>
.nem-adaptiv-container {
  max-width: 700px;
  margin: 20px auto;
  padding: 20px;
  background: #fff5f5;
  border: 2px solid #dc3545;
  border-radius: 8px;
}

.rossz-pelda {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 25px;
  padding: 20px;
  background: white;
  border-radius: 6px;
  border: 1px solid #f5c6cb;
}

/* Rossz: Fix kicsi gombok */
.fix-meretu-gombok {
  display: flex;
  gap: 5px;
}

.fix-kicsi-gomb {
  width: 20px;              /* Fix kicsi méret */
  height: 20px;             /* Fix kicsi méret */
  background: #6c757d;
  color: white;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  font-size: 10px;
  /* Nincs @media query, nincs adaptivitás */
  /* Mobilon használhatatlan */
}

/* Rossz: Nem adaptív ikonok */
.egesz-ikon-sor {
  display: flex;
  gap: 8px;
}

.nem-adaptiv-ikon {
  width: 22px;              /* Fix méret */
  height: 22px;             /* Fix méret */
  background: #17a2b8;
  color: white;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  font-size: 12px;
  /* Mobilon és érintőeszközökön túl kicsi */
}

/* Rossz: Nem adaptív űrlap */
.nem-adaptiv-form {
  display: flex;
  gap: 5px;
  align-items: center;
}

.fix-input {
  width: 80px;              /* Fix keskeny */
  height: 20px;             /* Fix alacsony */
  padding: 2px 4px;         /* Kicsi padding */
  border: 1px solid #ced4da;
  border-radius: 3px;
  font-size: 12px;
  /* Mobilon nehéz használni */
}

.fix-submit {
  width: 40px;              /* Fix kicsi */
  height: 24px;             /* Fix kicsi */
  background: #dc3545;
  color: white;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  font-size: 10px;
  /* Mobilon eltalálhatatlan */
}

/* Rossz: Apró szám vezérlők */
.szam-bevitel {
  display: flex;
  align-items: center;
  gap: 5px;
}

.apro-csokkento, .apro-novelo {
  width: 16px;              /* Nagyon kicsi */
  height: 16px;             /* Nagyon kicsi */
  background: #ffc107;
  color: #212529;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  font-size: 10px;
  font-weight: bold;
  /* Mobilon szinte használhatatlan */
}

.szam-kijelzo {
  padding: 2px 8px;
  background: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: 3px;
  font-size: 12px;
  min-width: 20px;
  text-align: center;
}

.hibajelzes {
  color: #721c24;
  font-size: 14px;
  font-weight: 500;
  flex: 1;
}

/* Nincs @media (pointer: coarse) - ez a probléma! */
/* Nincs @media (max-width: ...) - ez is probléma! */
/* A célpontok sosem növekednek mobilon vagy érintőeszközökön */
</style>

Probléma: A fix kicsi méretű interaktív mutató célpontok minden eszközön ugyanakkorák maradnak, amelyek így mobileszközökön és érintőeszközökön használhatatlanul kicsik lesznek.

Források

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