קריטריון 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 הוא רק אחד האמצעים לספק את השם הנגיש.

מקורות

צריכים לעמוד בקריטריון הזה באתר שלכם?

ראו את המדריך המעשי להטמעה, או בדקו את האתר מול הצ'ק-ליסט.

לצ'ק-ליסט הנגישות