מקשי גלילה שניתן להתמקד בהם במקלדת

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

רקע

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

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

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

2.1.1 מקלדת: כל הפונקציונליות של התוכן ניתנת לתפעול באמצעות ממשק מקלדת, בלי צורך בתזמון ספציפי של הקשות בודדות, למעט מקרים שבהם הפונקציה הבסיסית דורשת קלט שמבוסס על הנתיב של תנועת המשתמש ולא רק על נקודות הקצה. (רמה A)

לפני השינוי הזה להעברת המיקוד בגלילים

לפני השינוי הזה, אפשר היה להתמקד ברכיב גלילה באמצעות מקש Tab רק אם הגדרתם את ה-tabIndex ספציפית לערך של 0 ומעלה. לדוגמה, אפשר להשתמש בקוד ה-CSS וה-HTML הבאים. לאחר מכן, מנסים לעבור מהלחצן הראשון אל רכיב הגלילה.

div.scroll, button {
  border: 1px solid lightgray;
  margin-top: 1em;
  border-radius: 0.5em;
}

div.scroll {
  overflow: auto;
  width: 20em;
  height: 5em;
  display: block;
}
div.long {
  width: 10em;
  height: 10em;
}
<button>Start</button>
<div class="scroll" tabindex="0">
<p>This is a tab focusable scroller...</p>
<div class="long"></div>
<p>You need to scroll down to see this line.</p>
</div>
<button>End</button>
ניתן להתמקד בפס הגלילה בגלל הוספה של כרטיסיות חיוביות.

שימוש ב-tabindex שלילי, כמו בקוד ה-HTML הבא, יגרום לדילוג על סרגל ההזזה.

<button>Start</button>
<div class="scroll" tabindex="-1">
<p>This is not a tab focusable scroller...</p>
<div class="long"></div>
<p>You cannot see this line using the keyboard.</p>
</div>
<button>End</button>
הגלילה מופסקת בגלל ערך tabindex שלילי.

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

<button>Start</button>
<div class="scroll">
<p>This scroller does not have a tabindex value set...</p>
<div class="long"></div>
<p>You cannot see this line using the keyboard.</p>
</div>
<button>End</button>
לסרגל הגלילה אין אינדקס כרטיסיות.

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

<button>Start</button>
<div class="scroll">
<p>This is a terms and conditions text. Please scroll down to acknowledge reading.</p>
<div class="long"></div>
<button id="B">Acknowledge</button>
</div>
<button>End</button>
הרכיב לגלילה ניתן למיקוד כי הוא מכיל צאצאים שניתן להתמקד בהם.

מ-Chrome 130 עם כלי גלילה שניתן להתמקד בהם

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

<button>Start</button>
<div class="scroll">
<p>This scroller does not have a tabindex value set...</p>
<div class="long"></div>
<p>but you can scroll through its content!</p>
</div>
<button>End</button>
לרכיב הגלילה אין tabindex או צאצאים שניתן להתמקד בהם, אבל עדיין אפשר להתמקד בו.

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

<button>Start</button>
<div class="scroll" tabindex="0">
<p>This is a terms and conditions text. Please scroll down to acknowledge reading.</p>
<div class="long"></div>
<button id="B">Acknowledge</button>
</div>
<button>End</button>
בחלונית הגלילה יש אינדקס כרטיסיות של 0.

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