ניקלאו » ארכיון הבלוג » זיהוי סוגי קישורים
ניקלאו זיהוי סוגי קישורים 3 בספטמבר 2006, מאת Rumoroso שיטה טובה שמשפיעה לחיוב על הנגישות והשימושיות של הדפים שלנו היא לזהות את סוג הקישורים באתר שלנו בהתאם ליעדם. לשם כך, בנוסף לאמצעים המתאימים שיש לנקוט בנושאי נגישות, נוכל ליצור הבדלי עיצוב באמצעות ה-CSS (תוך הקפדה תמיד לשמור על עקביות שתאפשר לזהות את הקישורים ככאלה). באמצעות שיטה זו, משתמשים עם גישה לדפדפנים גרפיים יוכלו לזהות אם המסמך שאליו הם עומדים להיכנס הוא, למשל, PDF או אם היעד נמצא מחוץ לפורטל שלנו. בעיות נצטרך לזהות כל סוג קישור באמצעות מחלקה שתאפשר להחיל עליו את העיצוב. במקרים רבים האנשים שמכניסים את הקישורים הם אחראי התוכן ואין להם גישה לסימון הקוד. פתרון באמצעות פונקציה פשוטה שנכתבה ב-JavaScript, ומוכנסת באופן לא פולשני, נוכל לזהות את סוג המסמך בהתאם לתוכן של מאפיין ה-”title” (אם הוא קיים) ו/או לפי סיומת הקובץ ביעד. להערה: זו שיטה טובה שעורכים/אחראי תוכן יאמצו את הפרוטוקול המשותף של זיהוי סוג היעד של הקישור במאפיין ה-”title” שלו, שכן רוב כלי העריכה מאפשרים את הכנסתו. בנוסף, נוספה לסקריפט היכולת לכלול טקסט במאפיין ה-”title” של אותם קישורים שאין להם אותו ושהופנים למסמך שזוהה על ידי הסקריפט עצמו. קישורים לדוגמה Google מסמך בפורמט PDF לקישור זה אין מאפיין “title” ובאמצעות הפונקציה מתווסף לו: קובץ Word הסקריפט הסקריפט מפורט להלן ותוכלו להוריד אותו ישירות ראשית יש להצהיר על מערך עם קטע הטקסט שיש להכניס על ידי העורך/אחראי התוכן ושתיאור סוג היעד של הקישור: var tFormat = [“enlace externo”, “formato pdf”, “formato word”]; אנו מצהירים על טיפולוגיה של קישורים (מוצהרת באותו סדר כמו הקודם): var Format = [“externo”, “pdf”, “doc”]; אנו מצהירים על המחלקות לעיצוב כל סוג קישור (מוצהרות באותו סדר כמו הקודמים). לאלה יהיה עיצוב מתאים ב-CSS: var classFormat = [“externo”, “pdf”, “doc”]; function enlaces() { // אנו בוחרים את כל הקישורים במסמך var links = document.getElementsByTagName(“a”); for (var i = 0; i < links.length; i++) { // אנו בודקים שהם לא עוגנים if(links[i].href.indexOf(”.”) > -1) { // אנו בודקים אם יש להם מאפיין “title” if(links[i].getAttribute(“title”)) { // אנו מקבלים את מאפיין ה-”title” באותיות קטנות var title = links[i].getAttribute(“title”).toLowerCase(); // אנו עושים לולאה שבודקת אם ב-”title” נמצא // אחד מהטקסטים המצוינים במערך // tFormat. אם הוא מוצא, הוא מוסיף לו את המחלקה // המוצהרת באותו מיקום כמו הטקסט // במערך classFormat for(var f = 0; f < tFormat.length; f++) if(title.indexOf(tFormat[f]) > -1) links[i].className += ” ” + classFormat[f]; } // מכיוון שלא תמיד לכל הקישורים יש מאפיין “title” // נבדוק, ליתר ביטחון, את מאפיין ה-”href” ונקבל // את סיומת המסמך ביעד ונשווה אותה // לאלה המוצהרות במערך Format. var ini = links[i].href.length-4; var fin = links[i].href.length; var wFormat = links[i].href.substring(ini,fin).toLowerCase(); for(var f = 0; f < Format.length; f++) if(wFormat.indexOf(Format[f]) > -1) { links[i].className += ” ” + classFormat[f]; // אם אין לו מאפיין “title” הוא מוסיף לו אותו if(!links[i].getAttribute(“title”)) links[i].setAttribute(“title”, tFormat[f]) } } } } לבסוף אנו טוענים את הסקריפט: window.onload = enlaces; זיהוי סוגי קישורים קטגוריה: CSS, Javascript —> 2 תגובות Jorge del Casar 14 במאי 2007 אני קורא כבר זמן מה באתר שלך וזה די הרשים אותי. יש לך דברים מאוד מעניינים, כל הכבוד. מכיוון שראיתי שאתה חוזר על זה כמה פעמים עד שהכול יוצא מושלם, רציתי לתרום את חלקי. לא לקחת בחשבון שאם הקישור כבר מסומן במחלקה המתאימה בעת הרצת הסקריפט, המחלקה הזו מוכפלת. זה לא נורא, אבל אפשר לבדוק אם יש לו מחלקה מהמערך Format בהתחלה ואם כן לעבור לאלמנט הבא ואם לא להמשיך עם הסקריפט. נראה שהבאג הזה קרה בקישור לדוגמה “מסמך בפורמט PDF”. שוב כל הכבוד על העבודה הטובה שלך. אני מקווה לראות עוד כאן בקרוב. נ.ב.: תבדוק את אימות האימייל, הוא לא מקבל אותו, יכול להיות שהלוגין מכיל נקודה (או כוכבית חוזרת). Rumoroso 14 במאי 2007 תודה על התרומה. באופן עקרוני מה שצריך לעשות זה לשנות את השורה: if(title.indexOf(classFormat[f]) > -1) לזו האחרת: if(title.indexOf(tFormat[f]) > -1 && links[i].className.indexOf(classFormat[f])) לא ניסיתי את זה, אבל אני מניח שכן יעבוד. בנוגע לאימות האימייל, אני מניח שזו תהיה בעיה של המאמת עצמו. אבדוק את זה. תודה על התרומה שלך. אני מקווה שזו לא היחידה. תוכל לעקוב אחר התגובות הודות לפיד ה-RSS 2.0 . תוכל גם לשלוח trackback מהאתר שלך. מאמר קודם: סקריפט להחלפת CSS מאמר הבא: עריכת טפסים (פרק I) —> —> —> יצירה זו נמצאת תחת רישיון Creative Commons .
P.S. A few readers have asked which superposición de accesibilidad (overlay) we actually reach for — it's accessiBe; if you want the current details.
¿Cumplir WCAG sin tocar el código?
Superposición de IA que promete cumplimiento WCAG en 48 horas