קריטריון 4.1.3: הודעות מצב רמה AA
בקצרה
קריטריון 4.1.3 הודעות מצב (Status Messages, רמה AA) דורש שהודעות המתעדכנות דינמית בעמוד - כמו "הפריט נוסף לסל", "הטופס נשמר" או "4 שגיאות נמצאו" - יועברו לטכנולוגיות מסייעות גם ללא העברת פוקוס. הקריטריון נוסף ב-WCAG 2.1 ולכן אינו נדרש לפי ת"י 5568, אך יישומו מומלץ.
פרטי הקריטריון
| מספר | 4.1.3 |
|---|---|
| שם | הודעות מצב (Status Messages) |
| רמה | AA |
| גרסה | WCAG 2.1 |
| עיקרון | 4 - יציב (Robust) |
| הנחיה | 4.1 - תאימות |
| מחייב לפי ת"י 5568 | לא - מעבר לדרישת ת"י 5568 (מומלץ) |
מה דורש קריטריון 4.1.3?
הקריטריון עוסק בהודעות מצב - הודעות קצרות המופיעות בעמוד כתוצאה מפעולת משתמש, מבלי שהדף נטען מחדש. הנחיית W3C מגדירה כי ההודעות צריכות להיות זמינות לטכנולוגיות מסייעות ללא צורך להעביר את הפוקוס לאלמנט ההודעה. מקרים שהקריטריון חל עליהם:
- הודעות הצלחה - "הפריט נוסף לסל הקניות", "ההגדרות נשמרו בהצלחה".
- הודעות שגיאה שאינן מעבירות פוקוס - "שם משתמש שגוי", "השדה חובה" כשהן מוצגות מחוץ לשדה עצמו.
- הודעות התקדמות - "3 מתוך 10 קבצים הועלו", "אנא המתן...".
- שינויי כמות - "סל הקניות מכיל 3 פריטים", "נמצאו 12 תוצאות".
הקריטריון אינו חל על שינויים שמעבירים את הפוקוס אל ההודעה (למשל דיאלוג שגיאה שנפתח ומקבל פוקוס) - שם קורא המסך יקריא את התוכן ממילא. הוא גם אינו דורש שינוי בהתנהגות ויזואלית - רק שהמידע יהיה נגיש תכנותית.
למי זה עוזר?
בעיקר לעיוורים וכבדי-ראייה המשתמשים בקורא מסך - הם אינם יכולים לראות הודעות שצצות על המסך, ואם הפוקוס לא עבר להודעה, הם לא יידעו שהיא הופיעה. למשל, משתמש עיוור שמוסיף מוצר לסל קניות עלול להמשיך לחפש ולרכוש פריטים כפולים אם לא שמע שהפריט נוסף. הקריטריון מסייע גם למשתמשי הגדלה שרואים רק חלק מהמסך ועלולים להחמיץ הודעות מחוץ לאזור הנצפה.
איך עומדים בקריטריון?
- הוסיפו
role="status"אוaria-live="polite"לאלמנט שיכיל הודעות שאינן דחופות - קורא המסך יקריא אותן בסיום הקריאה הנוכחית. - לשגיאות קריטיות שמחייבות תשומת לב מיידית - השתמשו ב-
role="alert"(שווה ערך ל-aria-live="assertive"), אך בצמצום - הפרעות תכופות מפריעות לחוויית המשתמש. - ודאו שה-live region נמצא ב-DOM כבר בטעינת הדף - הכניסו לתוכו את ההודעה רק בעת הצורך. הוספת live region דינמית לאחר שהדף נטען עלולה שלא לפעול בכלל הדפדפנים.
- שמרו את נוסח ההודעה קצר וברור: "4 פריטים בסל", "הטופס נשמר", "שגיאה: שם המשתמש חסר".
- אל תשתמשו ב-
aria-live="assertive"להודעות שגרתיות - הפוקוס יופרע בכל עדכון.
טיפ
שמרו אלמנט role="status" ריק בתחילת הדף, ועדכנו אותו בתוכן ההודעה בעת הצורך. דפוס זה פועל בצורה אמינה ברוב שילובי קורא מסך ודפדפן.
איך בודקים?
- קורא מסך (NVDA + Firefox, VoiceOver + Safari): בצעו פעולה שמייצרת הודעת מצב (למשל הוספת פריט לסל) מבלי להזיז את העכבר - האם קורא המסך הקריא את ההודעה?
- בדיקת HTML: בדקו שאלמנטי הודעות מצב מכילים
role="status",role="alert"אוaria-liveעם הערך המתאים. - כלים אוטומטיים (axe) מזהים חלק מהמקרים, אך בדיקה ידנית עם קורא מסך אמיתי היא הדרך האמינה ביותר.
- בדקו שה-live region קיים ב-DOM לפני הפעולה ולא נוצר דינמית לאחריה - ייתכן שיש הבדלים בהתנהגות בין דפדפנים שונים.
שאלות נפוצות
מה דורש קריטריון 4.1.3?
שהודעות מצב שמוצגות למשתמש - כגון אישור שמירה, הוספת פריט לסל, הודעת שגיאה או מד התקדמות - יהיו זמינות לטכנולוגיות מסייעות גם ללא העברת פוקוס לאלמנט ההודעה, בדרך כלל באמצעות ARIA live regions.
מהי רמת הקריטריון 4.1.3?
רמה AA. הקריטריון נוסף ב-WCAG 2.1 ולכן אינו נדרש לפי ת"י 5568, אך יישומו מומלץ כחלק ממדיניות נגישות טובה.
מה ההבדל בין aria-live="polite" ל-aria-live="assertive"?
aria-live="polite" מודיע על ההודעה בהפסקה הבאה בקריאה ומתאים להודעות מידע שאינן דחופות. aria-live="assertive" מפריע לקריאה הנוכחית ומקריא מיד - מתאים רק להודעות שגיאה קריטיות שמחייבות תשומת לב מיידית.
מקורות
- W3C - Understanding SC 4.1.3 Status Messages (w3.org/WAI)
- W3C - How to Meet WCAG (Quick Reference) (w3.org/WAI/quickref)
צריכים לעמוד בקריטריון הזה באתר שלכם?
ראו את המדריך המעשי להטמעה, או בדקו את האתר מול הצ'ק-ליסט.
לצ'ק-ליסט הנגישות