Table of Contents
גישה ליישומים אינטרנטיים עשירים
יישומי אינטרנט עשירים (RIT) הוא מפרט טכני שפורסם על ידי World Wide Web Consortium (W3C) כי גשרים הפער בין ממשקים מונעים JavaScript וטכנולוגיות מסייעות כגון קוראי מסך, תצוגות חזייה ותוכנה בקרת קול.ללא 634, widget מורכבים משלבים בקפידה את הניקודים של תנועות JavaScript, לוחות הכרטיסיה, תצוגות עץ ודיאלוגים מודוליים יכולים להפוך לבלתי נראים או בלתי ניתנים לזיהוי למשתמשים אלה, אך אינם מסוגלים גם ליצור תכונות אבטחה של פתרונות דינמיים, אלא גם כן, אלא אם הם אלה, אך ורקמות, אשר אינם מסוגלים ליצור תכונות אבטחה, אלא גם כן, אלא גם כן, אלא אם הם אלה, אשר אינן מקודמות, אשר אינן מבוססות על ידי יישום מדויק של פתרונות מאובטחים של אבטחה, אלא אם הם אלה, אשר מקודמות, אלא גם כן, אשר מקודמות, אלא אם הם מספקים לממשקים של פתרונות אבטחה, אשר אינם מסוגלים ליצור תכונות אבטחה של פתרונות מאובטחים, אלא מקודמות, אלא גם כן, אשר מספקים, אשר מספקים, אשר אינם מסוגלים ליצור תכונות של פתרונות אבטחה של פתרונות אבטחה של פתרונות אבטחה של פתרונות אבטחה של אבטחה של אבטחה של אבטחה של אבטחה של אבטחה של אבטחה של אבטחה של אבטחה של אבטחה של אבטחה של פתרונות אבטחה של אבטחה של אבטחה
[ה] הערך המרכזי של RIT הוא ביכולתו להוסיף רטרואקטיביות משמעות סמנטית לאלמנטים HTML אשר עשויים שלא להעביר את תפקידם או המדינה.לדוגמה, AFLT:0 מכוונן להיראות כמו כפתור נשאר מיכל גנרית בעץ הנגישות, אלא אם כן ניתן להזיז את ה-FLT:1 ולטפל במקלדת מתאימה.
מאמר זה עובר דרך יישום מעשי של RIT עם JavaScript, כיסוי תפקידים, מדינות, תכונות, ניהול תכונת דינמי, מיקוד ומקלדת טיפול, ודפוסי פעולה משותפים.בכל שלב, הדגש הוא על כתיבת קוד קורא ייצור המכבד הן את מפרט RIT וצרכים של משתמשים בעולם האמיתי.
634 רולס, מדינות ונכסים
המונחים: Defining the Widget Type
[01] ה] ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה ה
מדינות ונכסים: דינמיקה
מדינות RIT הן תכונות שמשנות בתגובה לאינטראקציה או ללוגיקה של משתמשים.מדינות נפוצות כוללות:
- (ב) ,"הסברי" (בתרגום חופשי: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ).
- (ב) (ב) (ב) (ב)) - על מנת לנגב על כפתורים.
- (FLT:19) - בשימוש ברשימות כרטיסיות, תיבות רשימה או רשתות כדי להראות איזו אפשרות נבחרת.
- (ב) ,"מעביר כי לא קיים מרכיב.
נכסים, לעומת זאת, נוטים להיות יציבים יותר לתאר מערכות יחסים או תוויות.דוגמאות כוללות דוגמאות (נקודות לזיהוי של אלמנט אשר שולטות וידג'ט), FLT:22 (בקרובים תווית גלויה ל- widget), ו-FLT:23 (הבהיר כי אזור יעדכן באופן דינמי ויש לעקוב אחר הטכנולוגיה המסייעת).
JavaScript אחראית על שמירת התכונות הללו המסונכרנות עם מצב DOM הבסיסי.בכל פעם שפעולה של משתמשים או אירוע זמני משנה את UI, תכונות RIT RIT המקבילות חייבות להיות מעודכנים באופן מיידי.כישלון לעשות זאת בחוויה של נגישות שבורה שבה קוראי המסך עשויים להכריז על מידע מיושן.
יישום RIT עם JavaScript: תבניות הליבה
ניהול דינמי
המשימה הפשוטה ביותר RIT היא לגרות תכונות בוזקות.התבנית הבאה היא נפוצה עבור תפריטים מורחבים, שרביטי גילוי וידונים:
const trigger = document.getElementById('expand-trigger');
const target = document.getElementById('expandable-content');
trigger.addEventListener('click', () => {
const isExpanded = trigger.getAttribute('aria-expanded') === 'true';
trigger.setAttribute('aria-expanded', !isExpanded);
target.hidden = isExpanded;
});
שימו לב כי התכונה HTML של PHP היא גם מחוספסת.זה מבטיח שהתוכן באמת הוסר מעץ הנגישות כאשר הוא התמוטט, לא רק מוסתר מבחינה ויזואלית. Relying על CSS בלבד, כדי להסתיר תוכן יכול להשאיר אותו ממוקד או קורא על ידי קוראי מסך.
(ב) יש לבצע מספר רב של פריטים מורכבים יותר כמו לוחית כרטיסיות, תכונות מרובות יש לנהל יחד כאשר הכרטיסיה החדשה נבחרת, הכרטיסיה שנבחרה בעבר מאבד את ה-FLT:26 שלה ואת פאנל המשויך שלה מוסתר, בעוד הכרטיסייה שנבחרה החדשה מרוויחה FLT:27 ופאנל שלה הופך גלוי.
שימוש בתוכן דינמי
(ב) כאשר תוכן משתנה מחוץ למוקד המשתמש (למשל, העדכונים של מהדורות חדשות או טעות אימות מופיע), קוראי המסך עשויים לא להכריז על השינוי אלא אם האזור מסומן ב-FLT:30 הנכס FLT:31 לוקח שלושה ערכים: FLT:32 (default), FLT:33 (לא מסומן כאשר הוא idle), ו-FLT:34 (מעודכן באופן מיידי)
const liveRegion = document.getElementById('status-messages');
liveRegion.setAttribute('aria-live', 'polite');
function addMessage(text) {
const p = document.createElement('p');
p.textContent = text;
liveRegion.appendChild(p);
}
חשוב: התוכן חייב להיות מתואם או להסיר בתוך אזור החי.שינוי HTML פנימי לחלוטין עלול לגרום לשינוי להיות מפספס על ידי קוראי מסך מסוימים.
ניהול ממוקד עם JavaScript
משתמשים במקלדת מסתמכים על טבעת מיקוד גלויה כדי לנווט.כאשר דיאלוג מודוללי נפתח, יש להעביר את המיקוד לתוך הדיאלוג ולכדו שם עד שהוא נסגר.כאשר תפריט נסגר, להתמקד צריך לחזור אל האלמנט שהוביל אותו. JavaScript מטפל במעברים אלה על ידי קריאה FLT:40 על האלמנט המתאים ולהגדיר את FLT:41 ערכים.
דוגמה לשיח מודולי:
function openDialog(dialogElement) {
dialogElement.removeAttribute('hidden');
dialogElement.setAttribute('aria-modal', 'true');
dialogElement.setAttribute('role', 'dialog');
// Focus the first focusable element inside the dialog
const firstFocusable = dialogElement.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
if (firstFocusable) {
firstFocusable.focus();
}
// Store the previously focused element
this.lastFocused = document.activeElement;
}
מלכודות מיקוד מבטיח כי לחיצה על Tab או Shift + Tab מחזור רק באמצעות אלמנטים בתוך השיח.זה יכול להיות מושג על ידי האזנה לאירועים מרכזיים על הדו-שיח ופניית מיקוד לילד הראשון או האחרון להתמקד כאשר מתאים.
ניווט ו- RIT: The Inseparable Pair
(הופנה מהדף 59), ותכונות בלבד מעבירות את הסימנטיקה; הן אינן מספקות באופן אוטומטי אינטראקציה מקלדת. JavaScript חייבות ליישם את התנהגות המקלדת הצפויה לכל דפוס של widget.The W3C's FLT:0395 Authoring Practices Guide (APG)PSKFLT:1 מספק מוסכמות מפורטות עבור דפוסים משותפים.
(הכשלה במימוש התמיכה במקלדת היא אחת הכישלונות הנפוצים ביותר של נגישות.קל שעונה רק לקליקים עכבר, רשימת גרגור-אנדרופ שעובדת רק עם מגע, או כלי שמופיע רק על מרחף לא כולל מקליקים רק את משתמשי קוראי המסך באופן מלא.
תמיד לבדוק את הניווט ללא עכבר: להבטיח שכל האלמנטים האינטראקטיביים ניתנים להשגה באמצעות Tab, כי סדר מיקוד הגיוני מתאים הפריסה החזותית, וכי אין מלכודות מיקוד מונעות להשאיר את ה-widget.
Common RIT Patterns with JavaScript
1.ההסכם האפשרי
(ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
const accordionButtons = document.querySelectorAll('.accordion-button');
accordionButtons.forEach(btn => {
btn.addEventListener('click', () => {
const panel = document.getElementById(btn.getAttribute('aria-controls'));
const expanded = btn.getAttribute('aria-expanded') === 'true';
btn.setAttribute('aria-expanded', !expanded);
panel.hidden = expanded;
});
});
2.הרכב המלא של Auto- Complete Combobox
(ב) , ⁇ (ב) , ⁇ (ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
3.Dialog Modal
(ב) ויקרא י"א, ו[[1924]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]], [[1924]]]]]]
בדיקות NZITITATION
בדיקה עם טכנולוגיה יעילה באמת היא בלתי-אפשרית, אבל כלים אוטומטיים יכולים לתפוס נושאים רבים מוקדם.דפדפן כלים מפתח עכשיו כוללים לוחות נגישות המציגים את עץ הנגישות הנחשק.ה-FLT:0axe DevtoolsFLT 1:1 הרחבת הדפדפן מזהה הפרות כמו תכונות RIT חסרות, שימוש לא נכון, ומקדימים שגיאות ניהול, קוראי מסך כמו NVDA, JAWS, VoiceOver ו-Voice Over Pros, להציע הודעת הפעלה סגורה.
עוד תרגול חיוני הוא לבדוק עם מקלדת רק: הכרטיסיה דרך כל הבקרה האינטראקטיבית, להשתמש במפתחי החצים ברשימות ובעמודות, ולהבטיח כי שום אלמנט לא יהיה בלתי ניתן להשגה. 634 לבד אינו מבטיח נגישות; השילוב של תכונות נכונות, מטפלים מקלדת ולוגיקה ממוקדת הוא מה שעושה יישום באמת ניתן לעשות.
Best Practices for Production-Ready 940 with JavaScript
- (ב) [ה]העיקרי HTML של ה-HTMLIRFLT 1 מעל 634 תפקידים בכל פעם שניתן.A NativeFLT:64] הוא בעל מיקוד רב, קליקטיבי, ומעביר את תפקידו לטכנולוגיה מסייעת.
- (FLT:0) שמור RIT תכונות בסינכרון 1FLT עם מדינת DOM בכל עת. השתמש דפוס JavaScript עקבי - כגון פונקציה קטנה של תועלת - כדי לעדכן תכונות ומצב חזותי יחד.זה מקטין את הסיכון של סוג אחד של עדכון להיות מפספס.
- [ה]ב[[1924]]: [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]
- (ב) (בקיצור:0) להתמקד במפורש ב- 1 בינואר (ב) בכל פעם ש-UI משתנה באופן דרמטי.לאחר קרבה מודולרית, החזרה להתמקד כפתור ההדק.לאחר בחירת פריט תפריט, חזור להתמקד בלחיצת התפריט.
- (ב) ויקרא י"א): "כל יסוד אינטראקטיבי.ל.א.מ.א.ל.א.ל.א.ל.א.ל.א.ל.א.ל.א.ל.א.ל.א.ל.א.ל.א.ל.ל.ל.ל.ל.ל.ל.ל.ל. [ה]
- (FLT:0)Test עם משתמשים אמיתייםFLT:1 אשר מסתמכים על טכנולוגיה מסייעת.כלי אוטומטיים לתפוס רק 30–40% מבעיות נגישות. משוב משתמש אינו יקר להבנה אם NZ שלך מתורגם לחוויה שניתן לראות.
מלכודות נפוצות להימנע
טעות תכופה אחת היא יישום תפקיד RIT לרכיב ללא מתן אינטראקציה צפויה של מקלדת.לדוגמה, מתן:73 ל-FLT:74 אבל לא להוסיף FLT:75 ו מטפל מפתח עבור Enter/Space. Another הוא באמצעות FLT:76 עבור עדכונים שגרתיים, אשר יכול להציף את קוראי המסך על ידי הפרעה המשימה הנוכחית שלהם.
עוד נפילה היא לא נכונה של תפקידים קינון: AFLT:77 צריך להכיל רק ילדים עם קק"ל:78, וכל כרטיסה חייבת לשלוט על מקבילה FLT:79 הפרות של כללים אלה עלולות לגרום לטכנולוגיות מסייעות כדי לא להפריע למבנה.
לבסוף, להימנע שינויים דינמיים המתרחשים ללא יזום משתמשים. ARIA תכונות להתמקד צריך רק לעדכן בתגובה לפעולות משתמש או שינויים במצב היישום כי המשתמש מצפה.למקד באופן אוטומטי אלמנט לאחר כל כמה שניות או FLT:80 אזורים לעתים קרובות מדי יוצר ניסיון מרתיע.
מסקנה
בניית יישומים מקוונים עשירים עם JavaScript ו RIT היא גם משמעת טכנית ומחויבות לעיצוב כולל. 634 מספקת את השפע הסימנטטי שהופך מיכלי HTML גנריים לתוך וידג'טים לזיהוי, בעוד JavaScript מביא אותם לחיים עם התנהגות דינמית, מקלדת וניהול המדינה.
על ידי ביצוע הדפוסים והשיטות הטובות ביותר המפורטים כאן, מפתחים יכולים ליצור יישומי אינטרנט שעובדים עבור כולם: מגע, עכבר, מקלדת, קורא מסך, ומשתמשי בקרה קוליים כאחד. נגישות אינה אמצעי חשיבה; זהו חלק בלתי נפרד מתהליך פיתוח JavaScript.עבור קריאה נוספת, להתייעץ עם היישומים הנגישים:0W3C RIT RIT נהלים מנחים ל-FLT:1 ו-LTF:2MDN3, אשר מספקים משוב אמיתי ו-D.