טכניקה 12: סקריפטים
פרק זה דן בנגישות הסקריפטים שנכללים במסמך בעזרת אלמנט SCRIPT.
12.1 טרנספורמציה של סקריפטים
-
6.5 הבטיחו שהתוכן הדינמי יהיה נגיש או ספקו הצגה חלופית לדף. [עדיפות 2]
מפתחי תוכן חייבים להבטיח שדפים נשארים נגישים גם כאשר הסקריפטים מכובים או לחילופין בדפדפנים שאינם תומכים בסקריפטים.
-
הימנע מיצירת תוכן תוך כדי שימוש בלקוח. אם דפדפן המשתמש אינו יכול לטפל בסקריפטים, שום תוכן לא יועבר או יוצג. נכון, פה זה שונה מאשר הצגה או הסתרה של תוכן קיים ע"י שימוש בשילוב לש דפי סגנון וסקריפטים. אם אין סקריפט, אזי התוכן תמיד מוצג. זה אינו שולל תפעול דפים ע"י צד-השרת ושליחתם ללקוח.
-
הימנע מיצירת קישורים המשתמשים ב"javascript" כמו ה-URI. אם המשתמש אינו משתמש בסקריפטים, אזי הקישורים לא יוכלו לקשר מאחר והדפדפן לא יוכל ליצור תוכן קישור.
דוגמה שגויה : קישור זה יהיה מבוי סתום לסוכן משתמש שבו שסקריפטים אינם נתמכים או אינם נטענים.
<A href="javascript:">...</A>
12.2 סקריפטים הגורמים לריצוד
- 7.1 עד שסוכני המשתמש יאפשרו למשתמשים לשלוט בריצוד, המנעו מלגרום למסך לרצד. [עדיפות 1].
12.3 סקריפטים הגורמים תזוזה והבהוב
- 7.2 עד שסוכני המשתמש יאפשרו למשתמשים לשלוט בהבהוב, המנעו מלגרום לתכנים להבהוב (כלומר שינוי התצוגה בקצב קבוע, כגון הדלקה וכיבוי של תוכן כלשהו). [עדיפות 2]
-
7.3 עד שסוכני המשתמש יאפשרו למשתמשים להקפיא תוכן שזז, המנעו מתכנים נעים בדפי האתר. [עדיפות 2]
12.4 סקריפטים הנגישים באופן ישיר
-
6.4 עבור סקריפטים ויישומונים, הבטיחו שהקלט ל- event handlers לא יהיה תלוי בהתקן. [עדיפות 2]
9.3 עבור סקריפטים, הצהירו על event-handlers לוגיים שאינם תלויים בהתקן. [עדיפות 2]
מנהל אירוע (event handler) הוא סקריפט המופיע כאשר אירוע מסוים קורה ( למשל העכבר זז, מפתח נלחץ, מסמך נטען וכדומה). ב-HTML 4.01, מנהל אירועים נקשר לאלמנט דרך תכונות מנהלי האירועים (התכונות המתחילה ב- "on" כמו ב-"onkeyup").
ישנם מנהלי אירועים שמייצרים אפקט דקורטיבי טהור כמו הבלטה של תמונה או שינוי הצבע של אלמנט טקסט. מנהלי אירועים אחרים מייצרים אפקטים בולטים יותר, כמו ביצוע חישוב, נתינת מידע חשוב למשתמש, או טעינת טופס. למנהלי אירועים שעושים יותר מאשר הצגה של אלמנט, מפתחי תוכן צריכים לעשות את הדברים הבאים:
-
השתמש ב-application-level event trigger במקום user interaction-level triggers. ב-HTML 4.01, התכונות application-level event הם "onfocus","onblur" (ההיפך של "onfocus"), ו-"onselect". הערה: תכונות אלו מתוכננות להיות בלתי תלויות-התקן, אבל הן מיושמות כמקרים ספציפים של מקלדת בדפדפנים עכשויים.
-
אחרת, אם יש צורך להישתמש בתכונות תלויות-התקן, ספק מכניזם קלט נוסף (כלומר: ייחד שני מנהלים לאותו אלמנט): השתמש ב-"onmousedown" עם "onkeydown" השתמש ב-"onmouseup" עם "onkeyup" השתמש ב-"onclick" עם "onkeypress"
-
אל תכתוב event handler המשתמך על הקואורדינטות של העכבר, מאחר וזה מונע קלט שאינו תלוי-התקן.
12.5 הצגה אלטרנטיבית של סקריפטים
- 1.1 לספק מקבילת טקסט לכל אלמנט שאינו טקסט (כלומר ע"י "alt" או "longdesc" או בתוכן האלמנט). האלמנטים כוללים: תמונות, הצגות גרפיות של טקסט (כולל סמלים), מפות-תמונות, אנימציה (כלומר קבצי GIF מונפשים) יישומונים ואלמנטים תכנותיים, אומנות ascii, מסגרות, סקריפטים, תמונות המשמשות כסימון לרשימה (תבליטים), אלמנטים להפרדה (כגון קוים מפרידים), כפתורים גרפיים, צלילים (כאלה שהמשתמש יוצר וגם כאלה שאינם דורשים אינטראקציה), קבצי אודיו, פסי קול של סרטי וידאו, ווידאו. [עדיפות 1].
-
6.2 הבטיחו שהמקבילות של תוכן דינמי מעודכנות גם הן בצורה דינמית בהתאם לשינויי התוכן. [עדיפות 1]
דרך אחת להשיג זאת היא עם האלמנט NOSCRIPT. התוכן של האלמנט הזה מפוענח כאשר הסקריפט אינו זמין.
דוגמא:
<SCRIPT type="text/tcl">
...some Tcl script to show a billboard of sports scores...
</SCRIPT>
<NOSCRIPT>
<P>Results from yesterday's games:</P>
<DL>
<DT>Bulls 91, Sonics 80.
<DD><A href="bullsonic.html">Bulls vs. Sonics game highlights</A>
...more scores...
</DL>
</NOSCRIPT>
12.6 עידכון דפים וחלונות חדשים
-
7.4 עד שסוכני המשתמש יאפשרו למשתמשים לעצור את העדכון (refresh), אין ליצור דפים שמעדכנים את עצמם בפרקי זמן קבועים. [עדיפות 2]
-
7.5 עד שסוכני המשתמש יאפשרו לעצור הפניה אוטומטית, אל תשתמשו בסימונים על מנת להפנות דפים אוטומטית, אלא בקשו מהשרת לבצע את ההפניות. [עדיפות 2]
-
10.1 כל עוד סוכני המשתמש אינם מאפשרים למשתמשים לכבות חלונות ש"נולדים" מתוך חלונות קיימים, אין לגרום להופעתו של חלוןpop-up או כל חלון אחר, ואין לשנות את החלון הנוכחי מבלי להודיע למשתמש. [עדיפות 2]