RTL זה לא direction: rtl
מה נשבר באתרים בעברית, למה זה כמעט תמיד אותם דברים, ואיפה דווקא צריך להשאיר משמאל לימין.
פורסם ב-2026-09-17
להפוך אתר לעברית לוקח שורה אחת. מה שלוקח זמן הוא כל מה שאחרי: הריווח שנשאר בצד הלא נכון, החץ שמצביע הפוך, הקרוסלה שנוסעת לכיוון ההפוך, ומספר הטלפון שהתהפך לגמרי.
אף אחד מהדברים האלה הוא לא באג נדיר. הם אותם ארבעה או חמישה כשלים, בכל אתר בעברית, וכולם צפויים.
תכונות לוגיות במקום פיזיות
זה הכלל היחיד שאם מקפידים עליו, רוב הבעיות לא קורות. "שמאל" ו"ימין" הם מיקומים פיזיים; מה שצריך זה "התחלה" ו"סוף", שמתהפכים יחד עם השפה.
מרווח שמוגדר בצד ההתחלה יהיה בימין בעברית ובשמאל באנגלית, בלי שאף אחד יכתוב תנאי. מרווח שמוגדר "משמאל" יישאר משמאל תמיד, וייראה שבור באחת מהשפות. אותו דבר לגבי יישור טקסט, ריפוד, ומיקום מוחלט.
החץ הוא המקרה שצריך טיפול מיוחד: אייקון שמצביע "קדימה" צריך להתהפך בעברית, וזה הפיכה של האייקון עצמו, לא של המיקום שלו.
ספריות חיצוניות לא מתהפכות לבד
כאן זה נשבר באמת. באתר הזה יש קרוסלת לוגואים שהבאנו מבחוץ, והיא מחשבת את התנועה שלה ממרווח בצד אחד ומהזזה בפיקסלים. בעברית החשבון הזה נותן תוצאה לא נכונה — הקרוסלה מקרטעת או נוסעת לכיוון ההפוך.
הפתרון לא היה לתקן את החשבון. הפתרון היה לקבע את הרכיב הזה לכיוון משמאל לימין, בתוך עמוד שכולו מימין לשמאל, ולכתוב למה. רכיב שמחשב מיקום בעצמו הוא לא רכיב שמתהפך עם הגדרה.
יש כאן מלכודת נוספת, שקטה יותר: כלי שמייצר רכיבים אוטומטית לא בהכרח מייצר אותם לוגיים. בפרויקט הזה ההגדרה של הכלי הזה אומרת במפורש שהוא לא במצב RTL, ולכן כל רכיב שמגיע ממנו מגיע עם תכונות פיזיות וצריך בדיקה ידנית. זה לא באג — זה משהו שצריך לדעת.
מה דווקא צריך להישאר משמאל לימין
הטעות הנגדית נפוצה לא פחות: להפוך הכול. יש דברים שהכיוון שלהם הוא לא תכונה של השפה אלא של התוכן עצמו, והם צריכים להישאר משמאל לימין גם בעמוד בעברית:
- מספרי טלפון וכתובות מייל: הפיכה שלהם משנה את מה שכתוב.
- שמות של טכנולוגיות וקוד.
- דמה של חלון דפדפן, שבו שורת הכתובת תמיד משמאל.
- כל שורה בבורר השפות, כדי שכל שפה תיראה כמו שהיא נכתבת.
בכל אחד מהמקומות האלה הכיוון מוגדר במפורש על האלמנט, ולא בירושה מהעמוד. זה מכוון ומתועד, אחרת מישהו "יתקן" את זה בהמשך.
דגלים הם לא שפות
בורר השפות הוא המקום שבו שני דברים נפגשים. הראשון: אמוג'י של דגלים לא עובד. ב-Windows דגל באמוג'י מוצג כשתי אותיות, "IL" או "GB", ולא כדגל. לכן הדגלים באתר הזה הם קבצי SVG מקומיים ולא אמוג'י.
השני: דגל הוא בכלל לא סימן לשפה. הוא סימן למדינה, והקשר בין השניים לא חד-חד-ערכי. לכן הדגל באתר מסומן כדקורטיבי בלבד, והמשמעות מועברת בקוד השפה ובשם שלה בשפה עצמה.
איך בודקים שזה באמת עובד
לא על ידי מבט. עוברים על העמוד בשתי השפות ומשווים: מה זז לצד הלא נכון, איזה אייקון מצביע הפוך, איזה מספר התהפך. אחר כך עוברים עליו במקלדת בשתי השפות — סדר המיקוד הוא המקום שבו RTL שבור מתגלה אפילו כשהעמוד נראה תקין.
הנגישות היא הצד השני של אותה עבודה — מה בנינו כדי לעמוד בת"י 5568.
