קריטריון 4.1.2: שם, תפקיד, ערך רמה A
בקצרה
קריטריון 4.1.2 שם, תפקיד, ערך (Name, Role, Value, רמה A) דורש שכל רכיב ממשק - כפתור, שדה טופס, תפריט, תיבת סימון ועוד - יחשוף לטכנולוגיות מסייעות את שמו הנגיש, את תפקידו הסמנטי ואת מצבו הנוכחי. זהו קריטריון מחייב לפי ת"י 5568.
פרטי הקריטריון
| מספר | 4.1.2 |
|---|---|
| שם | שם, תפקיד, ערך (Name, Role, Value) |
| רמה | A |
| גרסה | WCAG 2.0 |
| עיקרון | 4 - יציב (Robust) |
| הנחיה | 4.1 - תאימות |
| מחייב לפי ת"י 5568 | כן |
מה דורש קריטריון 4.1.2?
הקריטריון מחייב שלכל רכיב ממשק משתמש (User Interface Component) יהיו שלושה מרכיבים חשופים לטכנולוגיות מסייעות כגון קוראי מסך:
- שם (Name) - זיהוי טקסטואלי של הרכיב שמאפשר להבין מה הוא. למשל: "שם מלא", "שלח טופס", "פתח תפריט". השם הנגיש עשוי להגיע מתווית גלויה, מ-
aria-label, מ-aria-labelledbyאו מהקשר HTML מתאים. - תפקיד (Role) - הסוג הסמנטי של הרכיב: כפתור, תיבת סימון, תפריט, קישור וכדומה. כאשר משתמשים ברכיבי HTML סטנדרטיים (
<button>,<input>,<a>) התפקיד מוגדר אוטומטית. לרכיבים מותאמים אישית יש לציין תפקיד ב-ARIA. - ערך ומצב (Value / State) - המצב הנוכחי של הרכיב: מסומן או לא מסומן, פרוש או מכווץ, לחוץ, נבחר, מושבת. כל שינוי במצב חייב להיות מועבר לממשק הנגישות באופן אוטומטי.
הדרישה חלה גם על רכיבים מותאמים אישית שנבנו באמצעות <div>, <span> או רכיבי Web Components - כאשר אין סמנטיקה מובנית, יש לספקה באמצעות ARIA.
למי זה עוזר?
בעיקר לעיוורים וכבדי-ראייה המשתמשים בקורא מסך - ללא שם, תפקיד וערך, קורא המסך אינו יכול לתאר את הרכיב ואת מצבו, ומשתמש לא ידע מה הכפתור עושה או האם התיבה מסומנת. הקריטריון מסייע גם למשתמשי מקלדת בלבד ולמשתמשי תוכנות בקרה קולית שמפעילים רכיבים לפי שמם.
איך עומדים בקריטריון?
- השתמשו ברכיבי HTML סמנטיים (
<button>,<input>,<select>,<a>) - הם חושפים תפקיד אוטומטית. - שייכו כל שדה טופס לתווית נגישה:
<label for="...">מחובר לשדה, אוaria-label, אוaria-labelledby. - לכפתורי אייקון ללא טקסט גלוי - הוסיפו
aria-labelשמתאר את הפעולה (למשלaria-label="סגור"). - לרכיבים מותאמים אישית שנבנו עם
<div>- הגדירוroleמתאים ואמצעי מחוות מקלדת, וציינו מצבים ב-aria-checked,aria-expanded,aria-selectedוכדומה. - ודאו שכל שינוי מצב (פתיחה, סגירה, סימון) מעדכן גם את תכונת ARIA המתאימה - לא רק את המראה החזותי.
- הימנעו משימוש ב-
aria-hidden="true"על רכיבים שניתן לקבל להם פוקוס - הם יהפכו לבלתי נגישים.
טיפ
הכלל הפשוט: אם ניתן להשתמש ברכיב HTML מובנה - עדיפות לו על פני <div> עם ARIA. HTML מובנה ניתן ליישום נכון בסיכוי גבוה יותר וללא צורך בניהול מצבים ידני.
איך בודקים?
- קורא מסך (NVDA + Firefox, VoiceOver + Safari): נווטו בין רכיבי הממשק והקשיבו - האם מוקרא שם, תפקיד ומצב עדכני לכל רכיב?
- בדיקת עץ נגישות: בדפדפן Chrome פתחו DevTools, לשונית Accessibility - בדקו שכל רכיב חושף Name ו-Role.
- כלים אוטומטיים (axe, WAVE) מזהים רכיבים ללא שם נגיש,
roleחסר ב-ARIA widgets, ו-labelחסר לשדות טופס. - בדיקה ידנית: לכל רכיב אינטראקטיבי - בדקו שיש לו שם ברור, שהתפקיד הסמנטי נכון ושמצבו משתנה בממשק הנגישות כאשר המשתמש מבצע פעולה.
שאלות נפוצות
מה דורש קריטריון 4.1.2?
שלכל רכיב ממשק משתמש (כפתור, שדה טופס, תפריט, תיבת סימון וכדומה) יהיו שם נגיש, תפקיד סמנטי וערך הנוכחי חשופים לטכנולוגיות מסייעות, ושכל שינוי במצב יימסר אוטומטית לקורא המסך.
מהי רמת הקריטריון 4.1.2?
רמה A - הרמה הבסיסית. הקריטריון נכלל ב-WCAG 2.0 ולכן הוא מחייב לפי ת"י 5568.
מה ההבדל בין שם נגיש ל-aria-label?
השם הנגיש הוא התוצאה הסופית שקורא המסך מקריא - הוא עשוי להגיע ממקורות שונים: תוכן גלוי, aria-label, aria-labelledby או תכונות HTML כמו alt ו-title. aria-label הוא רק אחד האמצעים לספק את השם הנגיש.
מקורות
- W3C - Understanding SC 4.1.2 Name, Role, Value (w3.org/WAI)
- W3C - How to Meet WCAG (Quick Reference) (w3.org/WAI/quickref)
צריכים לעמוד בקריטריון הזה באתר שלכם?
ראו את המדריך המעשי להטמעה, או בדקו את האתר מול הצ'ק-ליסט.
לצ'ק-ליסט הנגישות