מדריך

כיוון טקסט בעברית ואנגלית מעורבות

שימו 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+2066U+2069מבודדים LRI RLI FSI PDIעוטפים רצף כך שלא ישפיע על הטקסט סביבו. FSI קובע את הרצף לפי התו החזק הראשון — הבחירה הנכונה לטקסט שלא אתם כתבתם, כמו שם קובץ או שם משתמש.
  • העדיפו מבודד על פני סימן כשאתם משתילים בתוך משפט טקסט שכיוונו אינו ידוע. בשביל זה המבודדים נוספו.
  • תווי ההטמעה הישנים U+202AU+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.

PureOpen — עורך Markdown עם כיוון לכל פסקה

המקור, ומתי נבדק

  • האלגוריתם הוא Unicode Standard Annex #9, האלגוריתם הדו־כיווני של יוניקוד. כלל התו החזק הראשון הוא סעיפים P2 ו־P3; סוגי התווים הם המאפיין Bidi_Class במסד התווים של יוניקוד.
  • dir="auto" מוגדר בתקן HTML החי, שמפנה לאותו כלל עצמו.
  • בלוקי הכתבים נבדקו מול מסד התווים של יוניקוד ב־31 באוגוסט 2026.

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