מדריך
כיוון טקסט בעברית ואנגלית מעורבות
שימו dir="auto" על כל פסקה, ולעולם לא על המסמך. השורה הזאת פותרת כמעט כל מסמך שמערבב עברית או ערבית עם אנגלית, וכל השאר בדף הזה הוא קומץ המקרים שבהם היא לא מספיקה.
כיוון הוא תכונה של פסקה, לא של קובץ. כל מה שלמטה נובע מזה.
הטעות האחת
לקבוע כיוון על המסמך
קובץ מקבל dir="rtl" כי הוא "מסמך בעברית", וכל פסקה אנגלית בתוכו יורשת את זה. סדר המילים נשמר — האלגוריתם מטפל בו — אבל הפסקה נצמדת לימין והנקודה שבסופה קופצת לשמאל המשפט.
dir="rtl"The migration turned out simpler than expected.
The migration turned out simpler than expected.
בכיוון ההפוך זה קורה בדיוק אותו דבר: שורה אחת בעברית בתוך מסמך אנגלי נצמדת לשמאל, והנקודה שלה נתקעת מימין. אף אחד מהשניים אינו תקלת תצוגה. אמרו לדפדפן מה הכיוון, והוא האמין.
איך זה נקבע
התו החזק הראשון מכריע
dir="auto" קורא קדימה בתוך הפסקה עד שהוא פוגש תו שיש לו כיוון משלו, ולוקח את הכיוון שלו. לרוב התווים אין כיוון, וזה החלק שמפתיע: פסקה יכולה להיפתח במספר, במירכאות וברווח ועדיין להיקבע לפי אות שנמצאת הרבה אחריהם.
| סוג התו | דוגמאות | ההשפעה על הכיוון |
|---|---|---|
| חזק משמאל לימין | אותיות לטיניות, יווניות, קיריליות, סיניות־יפניות | קובע את הפסקה משמאל לימין |
| חזק מימין לשמאל | אותיות עבריות, ערביות, סורִיות, תאנא | קובע את הפסקה מימין לשמאל |
| חלש | 0-9, ספרות הודיות־ערביות, + - % $ € | שום השפעה — מדולגים, בכל כמות |
| ניטרלי | רווח, . , ! ? ; : " ' ( ), אימוג'י | שום השפעה — מדולגים, ומקבלים את כיוון הפסקה לאחר שנקבע |
- ספרות לא מכריעות לעולם.
2026 was a good yearנקבע לפיw, ו־2026 היה שנה טובהנקבע לפיה. שניהם נכונים, והשנה שבפתיחה לא משנה אף אחד מהם. - גם לא סימני פיסוק. מירכאות פותחות, תבליט או סוגריים הם ניטרליים. הפסקה נקבעת לפי האות הראשונה שאחריהם.
- אימוג'י ניטרליים גם הם. לשורה שכולה אימוג'י אין ממה להיקבע בכלל — ראו בהמשך.
הפער
הפסקה שאין בה אף אות
פסקה שמורכבת רק מספרות, פיסוק או אימוג'י חסרה תו חזק, ולכלל התו הראשון אין מה לקרוא. הפסקה הריקה שנוצרת בלחיצת Enter היא אותו מקרה בדיוק.
למפרט יש תשובה, והיא בדרך כלל הלא נכונה עבור מסמך: dir="auto" נסוג לכיוון של אלמנט האב. במסמך מעורב אלמנט האב הוא מה שהקובץ נפתח בו, ולכן שורה ריקה באמצע קטע בעברית קופצת לשמאל־לימין, הסמן נוחת בצד הלא נכון, והכותב נאבק להחזיר אותו. שום דבר לא שבור — פשוט אין לכלל מידע טוב יותר.
- הנסיגה שמתנהגת כפי שכותב מצפה היא הכיוון של הפסקה שמעל, ולא הכיוון של הקובץ. שורה חדשה ממשיכה את הקטע שבתוכו נוצרה.
- HTML לא יודע לבטא את זה.
dir="auto"פועל על אלמנט בודד ואינו יודע דבר על האלמנט שלפניו, ולכן עורך שרוצה את ההתנהגות הזאת חייב לחשב את הכיוון בעצמו. - בראש המסמך גם פסקה שמעל אין. הנסיגה ההגיונית היחידה שנשארת היא כיוון שפת הממשק.
התווים
כשפסקה אינה מספיקה
הכיוון נקבע לכל פסקה, אבל בתוך פסקה עדיין יכול לשבת רצף בכיוון ההפוך, והתווים הניטרליים שבין שני הרצפים חייבים להיצמד לאחד מהם. כמעט תמיד הם נצמדים נכון. כשלא, תו בלתי נראה כופה את זה.
| נקודת קוד | שם | למה הוא משמש |
|---|---|---|
U+200E | סימן שמאל־לימין LRM | תו חזק בלתי נראה. מצמיד את הניטרליים שלידו לשמאל־לימין. |
U+200F | סימן ימין־לשמאל RLM | תמונת הראי. הפתרון הרגיל לנקודה שנוחתת בצד הלא נכון. |
U+061C | סימן אות ערבית ALM | כמו RLM, אך מסוג אות ערבית, כדי שספרות הודיות־ערביות לידו יתנהגו. |
U+2066 … U+2069 | מבודדים LRI RLI FSI PDI | עוטפים רצף כך שלא ישפיע על הטקסט סביבו. FSI קובע את הרצף לפי התו החזק הראשון — הבחירה הנכונה לטקסט שלא אתם כתבתם, כמו שם קובץ או שם משתמש. |
- העדיפו מבודד על פני סימן כשאתם משתילים בתוך משפט טקסט שכיוונו אינו ידוע. בשביל זה המבודדים נוספו.
- תווי ההטמעה הישנים
U+202A–U+202Eעדיין עובדים ועדיף להימנע מהם: אין להם תחום, ולכן תו סיום חסר משבש את שארית הפסקה. - התווים האלה בלתי נראים והם אמיתיים. הם שורדים העתקה והדבקה, נספרים במגבלת אורך, ולא יתאימו בהשוואת מחרוזות תמימה.
טבלה
הכתבים מימין לשמאל
ימין־לשמאל אינו רק עברית וערבית. מימוש של כלל התו הראשון חייב לזהות את כולם, אחרת מסמך באחד מהם נקבע הפוך בלי סיבה נראית לעין.
| כתב | הבלוק העיקרי | משמש ל |
|---|---|---|
| עברי | U+0590–U+05FF | עברית, יידיש, לדינו |
| ערבי | U+0600–U+06FF | ערבית, פרסית, אורדו, פשטו |
| סורי | U+0700–U+074F | סורית, ארמית חדשה |
| תאנא | U+0780–U+07BF | דיבהי (האיים המלדיביים) |
| נְקוֹ | U+07C0–U+07FF | שפות מנדינג במערב אפריקה |
| שומרוני | U+0800–U+083F | עברית וארמית שומרונית |
| מנדעי | U+0840–U+085F | מנדעית |
| אדלם | U+1E900–U+1E95F | פולאנית |
העורך שהדף הזה יצא ממנו
PureOpen הוא עורך Markdown למק ולאייפון שעושה את כל האמור למעלה בלי הגדרה אחת. כל בלוק נקבע לפי התו החזק הראשון שלו, ובלוק שאין לו ממה להיקבע יורש מהבלוק שמעליו ולא מהקובץ — הפער שתואר קודם. הוא חינם, ואותם כללים חלים גם על מה שהוא מדפיס ומייצא ל־PDF.
המקור, ומתי נבדק
- האלגוריתם הוא Unicode Standard Annex #9, האלגוריתם הדו־כיווני של יוניקוד. כלל התו החזק הראשון הוא סעיפים P2 ו־P3; סוגי התווים הם המאפיין Bidi_Class במסד התווים של יוניקוד.
dir="auto"מוגדר בתקן HTML החי, שמפנה לאותו כלל עצמו.- בלוקי הכתבים נבדקו מול מסד התווים של יוניקוד ב־31 באוגוסט 2026.
מצאתם משהו לא מעודכן או שגוי? כתבו לנו וזה יתוקן — מדריך שאף אחד לא מתקן מפסיק להיות מדריך.