יכולת פעולה הדדית ב-2024: עובדים עם Chrome ב-100% עבור התמקדות בנגישות

Jocelyn Tran
Jocelyn Tran

בתחילת השנה, Chrome עבר 88.2% מהבדיקות בתחום הנגישות של Interop 2024. ביוני 2024 היינו הראשונים להגיע ל-100% יעילות בבדיקות. בפוסט הזה נסביר מה עשינו כדי להשיג את היעד הזה.

כמו בכל תחום התמקדות ב-Interop 2024, תחום הנגישות מוגדר על ידי קבוצה של בדיקות פלטפורמת אינטרנט לתכונות נבחרות. מטרת הבדיקות ב-Interop 2024 היא לוודא שכל הדפדפנים יוצרים שמות נגישים ותפקידים מחושבים באותו אופן.

שמות נגישים משקפים את המטרה או הכוונה של אלמנט HTML. כך המשתמשים יוכלו להבין למה משמש הרכיב ואיך הם יכולים ליצור איתו אינטראקציה. מפרט accname מגדיר איך הדפדפנים יוצרים את מחרוזת השם הנגישה הזו לרכיב. במפרט ARIA מוסבר איך מחושב השם הזה.

התפקיד המחושב של רכיב הוא מחרוזת שמייצגת את התפקיד של הרכיב כפי שחושב על ידי מנוע הדפדפן. הוא משמש בעיקר בכלים למפתחים, למשל בפונקציה getComputedRole של WebDriver, שמאפשרת בדיקת יכולת פעולה הדדית.

מה צוות Chrome היה צריך לעשות?

היו שני תחומי עבודה גדולים יותר שעלינו להשלים – שינוי המיפוי של תפקידים לתפקידים כלליים והסרת תפקידים שהוצאו משימוש. לאחר מכן, הטמענו עוד כמה תיקונים ותכונות קטנות. בנוסף לעבודות הבאות שהצוות של Chrome השלים, עבדנו גם עם Microsoft על תיקונים שהיא התחייבה להוסיף ל-Chromium בתחום הנגישות.

שינוי המיפוי של תפקידים מסוימים לתפקיד כללי

שינוי של מיפוי לתפקיד כללי מסיר את סמנטיקה הנגישות מהרכיב. רכיבים כלליים לא מספקים ערך לעץ הנגישות, ולכן הם לא נכללים בעץ. כך אפשר לשפר את הביצועים, והעץ קטן יותר וקל יותר לנתח אותו עבור טכנולוגיה מסייעת. התפקידים הבאים משתנים לתפקיד כללי.

  • רכיב <header> ברמת <main> או רכיב תוכן של חלוקה לקטע (<article>,‏<aside>,‏ <nav> או <section>).
  • רכיב <footer> ברמת <main> או רכיב תוכן של חלוקה לקטע (<article>,‏ <aside>,‏ <nav> או <section>).
  • רכיב <aside> בתוך רכיב תוכן של חלוקה לקטע (<article>,‏ <aside>,‏ <nav> או <section>) ללא שם נגיש.
  • <section> ללא שם נגיש.
  • פריטים יתומים ברשימה (<li>).

בארבע הנקודות הראשונות, בדרך כלל הרכיבים האלה ממופה לתפקידים של ציוני דרך. אם יש יותר מדי ציוני דרך בדף, יכול להיות שיהיה קשה יותר לנווט בו. השינוי הזה עוזר לצמצם את מספר ציוני הדרך העודפים בדף, וכך קל יותר לנווט בו. הפריט האחרון בדרך כלל מציין טעות של מפתח הדף. פריט ברשימה תמיד צריך להיות בתוך רשימה, ולכן לפריט יתום מוקצה תפקיד כללי.

הסרת תפקיד שהוצא משימוש

הוצאנו משימוש את התפקיד directory ומיפו אותו לתפקיד הרשימה. ARIA 1.2 מוציאה משימוש את התפקיד directory. במפרט מוסבר שהוא שווה לתפקיד list, והמפתחים צריכים להשתמש ב-list. כדי לשמור על הסמנטיקה של תוכן ישן יותר שמשתמש ב-directory, הוא ממופה עכשיו ל-list ב-Chrome.

תיקונים נוספים

הוספנו תמיכה בתפקיד gridcell. התפקיד החדש הזה מאפשר להבחין בצורה ברורה יותר בין gridcell לבין cell. אפשר להתמקד ב-gridcell, לערוך אותו ולבחור בו, בניגוד ל-cell.

הוספנו חישוב של תפקיד חלופי. בעבר לא בדקנו אם יש תפקידים חלופיים, כך שאם התפקיד הראשון לא היה תקף, השתמשנו בתפקיד אחר, בניגוד למה שמפורט במפרט.

חלק מהתפקידים תקפים רק אם הם נמצאים בהקשר הנכון. הוספנו בדיקה לשימוש לא תקין בתפקידים, באופן הבא:

  • התפקיד row צריך להיות בתוך table,‏ grid,‏ rowgroup או treegrid.
  • התפקיד rowgroup צריך להיות בתוך table,‏ grid,‏ tree או treegrid.
  • התפקיד listitem צריך להיות בתוך list.

אם התפקיד לא חוקי, Chrome משתמש עכשיו במידע אחר, כמו רכיב ה-HTML, כדי לחשב תפקיד חלופי.

סימנו את thead ו-tfooter כחלק מעץ הנגישות. בעבר הן סומנו כ'מתעלמים מהן', אבל הן עדיין נכללו בעץ. מעכשיו, טכנולוגיות מסייעות יכולות לנתח כותרות עליונות ותחתונות של טבלאות.


יכול להיות שהשינויים האלה לא יהיו גלויים לרוב המפתחים, אבל כל הדפדפנים פועלים כדי לוודא שהדברים האלה פועלים באותו אופן, וכך אנחנו מוודאים שתפקידים שונים נחשפים באותו אופן בכל מקום.