נגישות באתרי אינטרנט

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

לידיעה כללית - הנחיות הנגישות מתחלקות לשלוש רמות תקן – A, AA, AAA, כאשר רמה A היא ההנגשה הבסיסית והנמוכה ביותר מבין השלוש. כיום עפ"י חוק הנגישות החדש (נכנס חלקית לתוקף החל מאוקטובר 2015 וייכנס לתוקפו בצורה מלאה עד סוף 2016) מרבית האתרים מחויבים בהנגשה ברמה AA.
אז ראשית עלינו להבין ש"בעלי מוגבלויות" הינו מונח רחב המייצג מגוון של קהלים שונים ודורש התייחסות שונה בהתאם לכל מוגבלות.

סוגי מוגבלויות הרלוונטיים לעניין אתרי אינטרנט:

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

    כמו כן, חשוב לדעת שלקויי ראייה בד"כ משתמשים בתוכנה הנקראת "קורא-מסך" (
    screen reader) שתפקידה הוא לקרוא עבורם את התכנים, וליידע על חשיבות התוכן – האם זהו קישור, כותרת, מאמר, לאן מפנה הקישור, האם בלחיצה ייפתח חלון או תוכן נוסף מעל החלון הנוכחי ומידע חשוב נוסף לתפעול האתר בנוחות.

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

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

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

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

 

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

  •          עיצוב
  •      אפיון ועריכת תוכן
  •      תכנות

 

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

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

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

  •          תכנות – הקפדה על תכנות סמנטי תקני, כלומר שימוש בתגיות מתאימות, הקפדה על הפרדה בין תוכן לעיצוב (html  לתוכן, css לעיצוב) ועל היררכיית תכנים גם בכתיבת הקוד, תגיות עבור כותרות צריכות להיות הגיוניות ועקביות ובהתאם לסדר הכרונולוגי – כותרת ראשית (h1) ואז כותרת משנית (h2). בלוק טקסט גדול מחולק לפסקאות מסודרות.
    תגיות ה-
    HTML5 כיום מאפשרות להבין בדיוק מהו סוג התוכן המוצג בהן – מאמר, איזור מוגדר, איזור צדדי, רכיב ניווט וכו'.
    אלמנטים המובילים לעמודים אחרים או גורמים לפתיחת תוכן נוסף – צריכים להיות מוגדרים כך בצורה מסודרת בקוד ע"י תגיות לינק
    a,  titleהמבהיר את תפקיד האלמנט, שימוש באלמנט מסוג כפתור או שימוש באטריביוטס מיוחדים הנקראים "חוקי aria" – עליהם יפורט בהמשך.
    חשיבות גדולה יש להנגשת טפסים שכן על המשתמש להבין היכן הוא מכניס את המידע הדרוש, ואיזה מידע עליו להכניס בכל שדה. לשם כך יש להקפיד גם על תוויות (
    LABEL) לכל שדה אינפוט, המפרטות בדיוק את המידע הנדרש לשדה הספציפי.
    בנוסף רצוי לסמן במידה ואלמנט כלשהו הוא קישוטי בלבד ולא בעל תפקיד בתוכן.
    לכל אלמנט אינטראקטיבי בעל תוכן רץ/מתחלף כגון חדשות רצות, קרוסלת תמונות מתחלפות, טקסטים מתחלפים – ישנה אפשרות עצירה, השהייה או החזרה לאחור.

 

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

 

כמו כן, נדאג לתכנת רכיבי נגישות כפי שציינו בהיבט העיצובי, של מתן יכולת הגדלת הטקסט ב200% ושינוי צבעוניות העמוד בגיליון css נפרד במידה והניגודיות אינה גבוהה מספיק.

סיכום פרקטי של פעולות תכנותיות להנגשה

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

  יש להקפיד על אלטרנטיבה טקסטואלית ו/או נתינת תיאור טקסטואלי ע"י אטריביוט ALT לכל תוכן שאינו טקסטואלי כגון תמונות, וידאו, אודיו.

 כל קישור צריך להיות מובן בדיוק לאן הוא מפנה את הגולש. ניסוח כמו "קרא עוד" אינו מספיק מובן ונטול הקשר מעשי (מאחר וניווט ע"י מקש TAB 'מקפיץ' את הגולש מלינק ללינק ומאלמנט לחיץ לאלמנט לחיץ אחר והוא אינו תמיד מודע להקשרים בין התכנים). במקום זאת ניתן לכתוב "קרא עוד אודות חוק הנגישות החדש", כך שיובן לאן מוביל הלינק. בנוסף אפשר לספק מידע רלוונטי נוסף באמצעות TITLE בתגית הלינק – כמו "קישור זה נפתח בחלון חדש".

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

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

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

יש לתת אופציה להגדלת הטקסטים באתר ב200% מבלי לפגוע במבניות האתר.

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

 טפסים – יש לשייך כל שדה בטופס לתווית (label) המתארת את המידע הנדרש למילוי ולוודא שלכל רכיב בטופס יש TYPE ו-NAME.
יש להקפיד על הודעות שגיאה ברורות המכילות הסבר מדויק מהי הבעיה שאירעה בעת מילוי השדות ומה יש לתקן.
כמו כן, בטפסים ארוכים או מורכבים, להקפיד על שימוש בחלוקה לקבוצות שדות באמצעות תגית
fieldset ונתינת כותרת הולמת לכל קבוצת שדות ע"י תגית legend.

 הקפדה על קיבוץ אלמנטים דומים בתוך תגית UL על מנת ליצור הבנה ברורה שכל האלמנטים הנ"ל משתייכים לאותה קבוצת-מידע.

במידת הצורך בלבד - שימוש בחוקי ARIA להבהרת תפקידו של אלמנט ופירוט מידע נוסף עליו.

למידע נוסף אודות חוק הנגישות והסברים לפי רמות הנגשה:
http://www.nagish.org.il/?page_id=1427

תוסף שימושי לבדיקת נגישות אתרים בדפדפן כרום:
wave-evaluation-tool

אתר עם כלי לבדיקת נגישות אתרים אונליין:
http://wave.webaim.org

חוקי (ARIA (Accessible Rich Internet Applications

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

 

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

 

כיצד משתמשים בשפת ARIA?

הלכה למעשה השימוש בARIA מכיל שלושה פרטים עיקריים הנכתבים בתוך תגית האלמנט:
 

  תיאור התפקיד (ROLE שיש לאלמנט) - למשל על תגית כפתור נכתוב role=”button". לאלמנט דקורטיבי שאין בו שימוש בהיבט התכני נוסיף role="presentation"

  מצב האלמנט - למשל אם זוהי תיבת סימון (צ'קבוקס) בטופס, איך ידע משתמש עיוור האם מסומן בה כבר וי או לא? לכן נוסיף Aria-checked=”true".

  מאפיין נוסף של האלמנט, למשל האם זהו שדה חובה למילוי בטופס? לכן נוסיף aria-required="true".

למידע נוסף על חוקי ARIA ומתי להשתמש בהם:
http://rawgit.com/w3c/aria-in-html/master/index.html