Text field

A text fielddel rövid szöveges adatokat adhat meg a felhasználó.

Fejlesztői dokumentáció Felépítés

Label komponens: A beviteli mező címe. A Label komponens opcionálisan helper textet, toggletipet és a required (kötelező) vagy az optional (nem kötelező) mezőket jelző indikátort is tartalmazhat.

Input field: A beviteli mező teljes interaktív területe.

Content: A felhasználó által beírt tartalom. Üres, kitöltetlen állapotban placeholder szöveget is tartalmazhat.

Feedback message: A beviteli mező validációs üzenete. A Feedback message komponens error (hiba) , warning (figyelmeztetés) vagy success (sikeres vagy helyes) állapotú lehet.

Loading spinner: Loading (töltő) állapotban megjelenő animált ikon Loading spinner komponenssel megvalósítva.

Opciók Méretek

A text field két méretben – small és large – használható. A méretet a rendelkezésre álló hely és a felhasználói felület kontextusának megfelelően kell kiválasztani.

Többlépcsős űrlapoknál, főleg mobileszközökön érdemes a large méretet használni.

Státusz állapotok Loading állapot

A text field loading állapotában a mező jobb szélén egy Loading spinner jelenik meg.

Akkor érdemes használni, ha hosszabb ideig tartó, élő validációt igényel a tartalom.

Disabled állapot

Disabled állapotban a komponens és a hozzá tartozó label halványabb, szürke megjelenést kap és nem interaktív.

Read-only állapot

Read-only állapotban a komponens nem interaktív, de a szöveg kimásolható belőle.

Error állapot

Error (hiba) állapotban a komponens piros keretet kap. A feedback message a komponens alatt jelenik meg.

Success állapot

Success (sikeres vagy helyes) állapotban a komponens zöld keretet kap. Ha szükséges, ilyenkor is elhelyezhetünk feedback message-et a komponens alatt.

Működés Interakciós állapotok

A komponens a design system sztenderd interakciós állapotainak logikáját követi.

Minimális szélesség

A text field minimális szélessége 2.25rem és 2.8rem. Ez kényelmes aktiválási felületet biztosít mobilfelületeken is.

Szöveg túlcsordulása

Ha a beírt szöveg hosszabb, mint a beviteli mező, akkor a szöveg kifut oldalra, és a mező görgethetővé válik.

Interaktív terület

A mező teljes területe interaktív, és a hozzátartozó labelre való kattintás is aktiválja azt.

Beviteli típusok (input types)

A text fieldnek többféle input típusa van, amelyek mobileszközökön a megfelelő virtuális billentyűzetet nyitják meg.

Text: Szöveges tartalmak bevitelére szolgál.

URL: URL-ek bevitelére szolgál. A virtuális billentyűzet többek között “www” és “.com” gombokkal egészül ki.

Phone: Telefonszámok bevitelére szolgál. A virtuális billentyűzet csak számokat fog tartalmazni.

Email: E-mail címek bevitelére szolgál. A virtuális billentyűzet többek között “@” és “.com” gombokkal egészül ki.

Password: Jelszavak bevitelére szolgál, a bevitt karakterek rejtettek. Jelszavaknál inkább a Password field komponenst használjuk.

Number: Számok bevitelére szolgál. Számos használati és akadálymentesítési problémát okoz, ezért inkább a Number field komponenst használjuk. (Ha mégis text fieldet használunk, akkor adjunk rá inputmode="numeric" és pattern="[0-9]*" attribútumokat.)

Szövegírási útmutató

A text fieldhez tartozó szövegírási útmutatók a Label és a Feedback message komponensnél találhatók.

Használati megfontolások

A text field rövid szöveges adatok megadására szolgál. Hosszabb szövegekhez a Textarea komponenst használjuk.

Számok megadására a Number field, jelszavak megadására a Password field komponenst használjuk.

Ha adott lehetőségek közül választhat a felhasználó, a Select vagy a Combobox komponenst használjuk.

Egyszerű, gyakran használt adatok – például születési dátum – megadásához érdemes egyszerű beviteli mezőket használni komplex komponensek helyett.

A design system további szöveg bevitelére használható komponensei.
Látható labelek

A látható, egyértelmű labelek a text fieldek és az űrlapok használhatóságának kulcsai. Sem az úgynevezett floating labelek, sem a placeholderek, sem a csak ikonokkal jelzett mezők nem helyettesítik a labeleket, és számos használhatósági és akadálymentesítési problémát okoznak.

A labeleket csak nagyon indokolt esetben lehet elrejteni. Ilyenkor gondoskodni kell az akadálymentesítésről, és szakértővel kell validálni az implementációt.

Helper text és toggletip

A beviteli mező labelének egyértelműen le kell írnia, hogy milyen adatot várunk a felhasználótól. Ha a label kiegészítésre szorul, helper texttel vagy toggletippel segíthetünk a felhasználónak.

A helper text és a toggletip is helyben, navigálás nélkül elérhető, kontextuális segítség, ezért felfedezhetőbb és gyorsabb megoldás, mint például a súgó.

  • A helper textet a mező kitöltéséhez szükséges információk – például formátum – megjelenítésére használjuk.

  • A toggletip csak interakció után olvasható, ezért csak indokolt esetben, kevésbé fontos kiegészítő információkhoz használjuk.

Csak akkor használjunk helper textet vagy toggletipet, ha valóban szükség van rá! Érdemes felhasználói kutatásokkal vagy tesztekkel felmérni, hogy hol igényel segítséget a felhasználó.

A helper textet és a toggletipet a Label komponens tartalmazza.

Hibaüzenetek

A hibaüzeneteket – és a sikeres üzeneteket –, illetve a hozzájuk tartozó részletes útmutatókat a Feedback message komponens tartalmazza. A legfontosabb megfontolások:

  • Mindig jelenítsük meg a hibaüzeneteket! A sikeres üzeneteket elhagyhatjuk, de vegyük figyelembe, hogy így csak egy zöld keret jelzi az állapotot, ami színvak felhasználók számára elveszítheti a szemantikai jelentését.

  • Az üzenetek előtt található ikonok megerősítik a színek szemantikai jelentését, így többek között a színvak felhasználóknak is “megőrzik” azt. Ne hagyjuk el őket!

  • Az üzeneteket kódban asszociálni kell a hozzájuk tartozó mezőkkel. Erről a design system komponensei gondoskodnak.

  • Ne jelezzük túl korán a hibákat. Nem hiba, ha belekattint, majd kitöltés nélkül elhagyja a mezőt a felhasználó, hiszen előfordulhat, hogy csak ismerkedik az űrlappal. Viszont érdemes valós idejű hibakezelést használni azoknál a mezőknél, amiket nem biztos, hogy elsőre helyesen tölt ki a felhasználó.

Kötelező és opcionális mezők

A kötelező mezőket a label mögötti piros csillaggal jelöljük. Ha minden mező kötelező, elhagyhatjuk a piros csillagot, elég kódban jelölni az asszisztív technológiák számára.

Az opcionális mezőket a label mögötti (Nem kötelező) szöveggel jelöljük. Ha egy űrlap kötelező és opcionális mezőket is tartalmaz, érdemes azt jelölni, amelyikből kevesebb van.

Ezeket a tulajdonságokat a Label komponens tartalmazza.

Ha egy űrlap minden mezője kötelező, nem szükséges vizuálisan jelölni őket. Ha vegyesen tartalmaz kötelező és nem kötelező mezőket, azt jelöljük amelyikből kevesebb van.
Elrendezés

A beviteli mezőket egymás alá, balra rendezzük. Ez az elrendezés követi a szem természetes mozgását, és a nagyítóval böngészőket is támogatja.

A beviteli mezők több oszlopba rendezése csak akkor elfogadható, ha az egymás mellé rendezett adatok a valóságban is tipikusan így jelennek meg. (Például a vezeték- és keresztnév.)

Szélesség

A beviteli mező szélességének tükröznie kell a tartalom várható hosszát. (Például az irányítószám beviteli mezője olyan széles legyen, hogy 4 karakter férjen el benne.)

Nem javasolt azonos szélességűre állítani az űrlap összes beviteli mezőjét. Esztétikailag kiegyensúlyozottabbnak tűnhet a felület, de használhatósági problémákat okozhat.

  • A szükségesnél szélesebb beviteli mezők azt sugallják, hogy a felhasználónak a ténylegesnél hosszabb adatot kell megadnia.

  • A szükségesnél keskenyebb beviteli mezők a ténylegesnél rövidebb adatra utalnak, és frusztráló a használatuk.

Megfelelő input mode használata

Mindig a megfelelő beviteli mező típust (input mode-ot) használjuk, hogy mobileszközökön a megfelelő billentyűzet jelenjen meg.

Adatok több beviteli mezőre bontása

Érdemes kerülni az adatok több beviteli mezőre bontását. (Pélául ne bontsuk több beviteli mezőre a szóközökkel elválasztott bankkártyaszámot.)

Az “input maszkolás” és az automatikus léptetés több mezőnél nehezen akadálymentesíthető megoldások, és sok felhasználó számára ismeretlen lehet a működésük, ezért ezeket kerüljük.

Ne bontsuk több beviteli mezőre a szóközökkel elválasztott bankkártyaszámot.

Bizonyos esetekben – például nemzetközi dátumoknál – a validáció nem egyértelmű, ha csak egyetlen beviteli mezőt használunk. Ezeket érdemes szétbontatni.

Emlékezetes dátumoknál – például születési dátumnál – nem érdemes dátumválasztót használni. A felhasználók három különálló beviteli mezőben gyorsabban meg tudják adni a dátumot.

Születési dátumnál nem érdemes dátumválasztót használni, mert sokkal nagyobb az interakciós költsége, mint az egyszerű gépelésnek.
Nem egyértelmű validációval ellátott mezők

A nem mindenki számára egyértelmű vagy nehezebben kitölthető mezőknél – például jelszó beállításánál – adjunk segítséget a helyes kitöltéshez például a Label komponens helper textjével. Ne bízzuk csak a hibaüzenetre a tájékoztatást!

Karakterszám limitálása

A beviteli mezőkbe írható karakterek számát (maxlength) csak nagyon indokolt esetben limitáljuk.

Gépelés közben sokan nem nézik a képernyőt, ezért nem veszik észre, ha elérték a limitet. Az adatok bemásolásánál sem egyértelmű a működés, ezért inkább a validációnál kezeljük a karakterszámot.

Autofill

A beviteli mezőket érdemes úgy paraméterezni, hogy támogassák a böngészők automatikus kiegészítését és a jelszókezelőket (autofill). Ez sok felhasználónak segít, és csökkenti az elírásokból fakadó hibákat.

Nyelvtanilag helytelen adatok

Azoknál a beviteli mezőknél, ahol nyelvtanilag helytelen adatokat várunk el – például e-mail címeknél vagy felhasználóneveknél – az autocapitalize="none", autocorrect="off" és a spellcheck="false" attribútumokat használjuk. Így a böngészők nem fogják korrigálni a beírt értékeket.

Akadálymentesség Kontrasztarányok

A komponens a design system kontrasztcélokkal generált szemantikus színeit használja, ezért megfelel az akadálymentesítési követelményeknek. A tokenizálás miatt ez színsémától és sötét vagy világos módtól függetlenül igaz.

A design system sztenderd interakciós állapotainak logikája miatt a kontrasztcélok a komponens minden interaktív állapotánál biztosítottak.

A kontraszt minimumokat a design system legsötétetebb – sötét módban a legvilágosabb – hátterén generáljuk, emiatt ez az arány minden más használható háttéren ennél csak jobb lehet.

Ha a komponenst nem tokenizált háttérszínen használjuk, manuálisan ellenőrizni kell a kontrasztot!

Színhasználat

A komponens állapotai és kiegészítő elemei nem kizárólag színnel közlik az információt. Így a színtévesztő vagy színvak, illetve a monokróm kijelzőt használó felhasználók is megkapják a szükséges információkat.

Billentyűzettel való használat

A komponens fókuszálható a Tab billentyűvel és rendelkezik a design system sztenderd fókuszjelölőjével. Fókuszáláskor a teljes szöveg kijelölésre kerül.

A sztenderd szövegbeviteli módosítók – például a sor elejére ugrás – Ctrl vagy Option billentyűvel is használhatóak.

A komponenshez tartozó egyéb elemek – például a Labelben található ikonok – az Enter vagy Space billenyűkkel is aktiválhatóak és a mezőhöz hasonlóan fókuszálhatóak.

A text field és minden interaktív kiegészítő eleme fókuszálható.
Label és feedback message

A label, a helper text és a feedback message is asszociálva van a text fieldhez, így ezek mind elérhetőek az asszisztív technológiák számára, beleértve a required indicatort is. (Bővebb dokumentáció a Label komponensben.)