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