אתר ה-React לא מדורג אם הוא לא נגיש. בדיקה במהלך הפיתוח יכולה לעזור לך לאתר בעיות.
react-axe
היא ספרייה שמבצעת ביקורת
טיפול באפליקציה וברישום של בעיות נגישות בכלי הפיתוח ל-Chrome
במסוף. היא משתמשת בציר הקוד הפתוח
כדי לדווח על בעיות ואת חומרת הבעיה.
eslint-plugin-jsx-a11y
הוא
פלאגין של ESLint שמזהה ואוכף מספר כללי נגישות
ישירות ב-JSX. בשימוש בשילוב עם כלי שבודק את
יחידות DOM שעברו רינדור, כמו react-axe
, יכולות לעזור לך למצוא ולתקן כל נגישות
בעיות באתר.
למה זה שימושי?
חשוב מאוד לבנות אתרים שמספקים כל משתמש, ללא קשר
פגיעה או הגבלה, את היכולת לגשת לתוכן שלו. שימוש בבדיקה
ספריות כמו react-axe
ו-eslint-plugin-jsx-a11y
במהלך
של אפליקציית React שלך תחשוף באופן אוטומטי
בעיות נגישות בזמן שהן מופיעות.
שימוש ב-eslint-plugin-jsx-a11y
ב-React כבר יש תמיכה בכתיבה של רכיבי HTML נגישים בתחביר JSX. עבור
לדוגמה, צריך להשתמש רק במאפיין htmlFor
במקום במאפיין for
כדי לקשר
לתווית לרכיב צורה ספציפי בתוך רכיב React.
<input id="promo" type="checkbox">
<label htmlFor="promo">Receive promotional offers?</label>
תגובה למסמכי הנגישות
כוללת את כל הניואנסים של טיפול בבעיות נגישות בתגובה
לרכיב הזה. כדי שיהיה לך קל יותר לזהות את הבעיות האלה במהלך הפיתוח, אפשר ליצור
React App (CRA) כולל את הפלאגין eslint-plugin-jsx-a11y
עבור ESLint של
כברירת מחדל.
כדי להפעיל איתור שגיאות בקוד מוגדר מראש שמסופק על ידי CRA:
- מתקינים את הפלאגין של ESLint המתאים לעורך הקוד
- הוספת קובץ
.eslintrc.json
לפרויקט
{
"extends": "react-app"
}
עכשיו יופיעו כמה בעיות נגישות נפוצות.
כדי לבדוק כללי נגישות נוספים, יש לשנות את הקובץ באופן אוטומטי כוללים את כל הכללים המומלצים על ידי הפלאגין:
{
"extends": ["react-app", "plugin:jsx-a11y/recommended"]
}
אם רוצים קבוצת משנה מחמירה יותר של כללים, אפשר לעבור למצב מחמיר:
{
"extends": ["react-app", "plugin:jsx-a11y/strict"]
}
הפרויקט מסמכי תיעוד מספק מידע על ההבדלים בין מצב מומלץ למצב מחמיר.
שימוש בגרזן תגובה
eslint-plugin-jsx-a11y
יכול לעזור לך לזהות בקלות בעיות נגישות
ב-JSX, אבל הוא לא בודק אף אחד מפלט ה-HTML הסופי. react-axe
היא ספרייה שעושה בדיוק את זה על ידי מתן wrapper במסגרת תגובה
axe-core
כלי הבדיקה של Deque Labs.
כדי להתחיל, מתקינים את הספרייה כתלות בפיתוח:
npm install --save-dev react-axe
עכשיו צריך לאתחל את המודול רק ב-index.js
:
if (process.env.NODE_ENV !== 'production') {
import('react-axe').then(axe => {
axe.default(React, ReactDOM, 1000);
ReactDOM.render(<App />, document.getElementById('root'));
});
} else {
ReactDOM.render(<App />, document.getElementById('root'));
}
א'
ייבוא דינמי
משמש כאן לטעינת הספרייה רק כאשר היא לא במצב ייצור לפני כן
רינדור והפעלה של רכיב הבסיס App
. כך אפשר לוודא שלא
שנכללו שלא לצורך בחבילת הייצור הסופית.
עכשיו, כשמריצים את האפליקציה במהלך הפיתוח, מופיעות בעיות ישירות למסוף כלי הפיתוח ל-Chrome.
לכל הפרה ניתנת גם רמת חוּמרה. הרמות הן:
- קטין
- בינוני
- רציני
- קריטי
סיכום
- אם אתם בונים אתר באמצעות React, יש לכלול את בדיקות הנגישות אל את תהליך העבודה בשלב מוקדם כדי לזהות בעיות בזמן יצירת הרכיבים.
- שימוש ב-
eslint-plugin-jsx-a11y
כדי להוסיף בדיקות נגישות לאיתור השגיאות בקוד בתהליך העבודה. התגובה המוכנה מראש כבר כלולה בהגדרות, אבל צריך לעבור במצב מומלץ או מחמיר. - בנוסף לבדיקות פיתוח מקומיות, יש לכלול את
react-axe
כדי לזהות בעיות ב-DOM הסופי שעבר רינדור. אל תכללו אותו בחבילת הייצור שלכם.