טפסים נגישים: תוויות, שגיאות ושדות חובה
טופס נגיש הוא טופס שכל שדה בו מתויג בטקסט שרואים וששומעים, שגיאות מוסברות בטקסט ליד השדה, ואפשר למלא ולשלוח אותו עם מקלדת בלבד. אלה הכשלים הנפוצים ביותר בטפסים בעברית, ואפשר לתקן את רובם ב-HTML פשוט.
נבדק מול המקורות:
בקצרה
- label לכל שדה (3.3.2, 1.3.1, 4.1.2).
- placeholder לא מחליף תווית.
- שגיאות בטקסט, ליד השדה, ומקושרות עם aria-describedby (3.3.1).
- טלפון, מייל ות"ז: dir="ltr" ו-inputmode מתאים.
תווית לכל שדה
כל שדה צריך label שמחובר אליו (for ו-id), ושמופיע על המסך. placeholder נעלם ברגע שמקלידים, לא תמיד מוקרא, ובדרך כלל בניגודיות נמוכה.
קבוצה של כפתורי רדיו או תיבות סימון עוטפים ב-fieldset עם legend, כדי שקורא המסך יקריא את השאלה לפני כל אפשרות.
<label for="phone">טלפון נייד</label>
<input id="phone" name="phone" type="tel" inputmode="tel" dir="ltr" autocomplete="tel">
<fieldset>
<legend>איך נחזור אליכם?</legend>
<label><input type="radio" name="via" value="phone"> בטלפון</label>
<label><input type="radio" name="via" value="email"> במייל</label>
</fieldset>שדות חובה
- סמנו שדה חובה גם בטקסט (למשל "(חובה)"), לא רק בכוכבית אדומה.
- הוסיפו required או aria-required="true" כדי שקורא המסך יכריז.
- אם רוב השדות חובה, כתבו בתחילת הטופס "כל השדות חובה חוץ מ...".
הודעות שגיאה
הודעה טובה אומרת מה לא בסדר ואיך לתקן, בעברית, ליד השדה. היא מקושרת לשדה עם aria-describedby, והשדה מסומן aria-invalid="true". אחרי שליחה, העבירו את המיקוד לשדה הראשון עם שגיאה או לסיכום שגיאות בראש הטופס.
<label for="id-num">מספר תעודת זהות</label>
<input id="id-num" inputmode="numeric" dir="ltr"
aria-invalid="true" aria-describedby="id-num-err">
<p id="id-num-err">מספר תעודת זהות צריך להכיל 9 ספרות.</p>עברית, כיוון ומספרים
- שדות טלפון, מייל, כתובת אתר ות"ז: dir="ltr", כדי שהסדר יישאר נכון בזמן ההקלדה.
- inputmode="numeric" או type="tel" פותחים מקלדת מספרים בטלפון.
- autocomplete (name, email, tel, street-address) חוסך הקלדה, ומומלץ לפי 1.3.5 ב-WCAG 2.1.
- גודל גופן בשדות של 16 פיקסלים לפחות, כדי שאייפון לא יגדיל את הדף.
CAPTCHA ומגבלות זמן
CAPTCHA של תמונות חוסם אנשים עיוורים, ו-CAPTCHA קולי באנגלית חוסם דוברי עברית. העדיפו שדה מלכודת מוסתר (honeypot), הגבלת קצב, או בדיקה שקטה ברקע.
אם יש ניתוק אחרי זמן, הציגו אזהרה לפני שהוא קורה ואפשרו להאריך (2.2.1).
איך לבדוק טופס בחמש דקות
- מקלדת בלבדמלאו ושלחו את הטופס רק עם Tab, רווח ו-Enter.
- לחצו על התוויותלחיצה על תווית צריכה להעביר את הסמן לשדה.
- שלחו ריקבדקו שהשגיאות מופיעות בטקסט, בעברית, ליד כל שדה.
- קורא מסךעברו עם F ב-NVDA בין השדות ובדקו שכל שדה מוכרז בשמו.
שאלות נפוצות
מספיק placeholder בלי label?
לא. placeholder נעלם כשמקלידים, לא מוקרא בעקביות, ובדרך כלל חסר ניגודיות. צריך label גלוי שמחובר לשדה.
איך מסמנים שדה חובה בצורה נגישה?
בטקסט גלוי כמו "(חובה)" ליד התווית, ובקוד עם required או aria-required="true". כוכבית בצבע בלבד לא מספיקה.
האם reCAPTCHA נגיש?
הגרסאות הבלתי נראות עדיפות על אתגר תמונות, אבל גם הן עלולות לחסום. פתרון נגיש יותר הוא שדה מלכודת מוסתר והגבלת קצב בצד השרת.
מקורות
המידע בדף מבוסס על: W3C WAI: מדריך טפסים נגישים (נפתח בחלון חדש) · WCAG 2.0 (W3C, 2008) (נפתח בחלון חדש) · ת"י 5568 חלק 1, ספטמבר 2023 (gov.il) (נפתח בחלון חדש)