Skip to content

R064: Latin punctuation, or wrong-script letterforms, inside Arabic text

Latin commas, semicolons and question marks in Arabic copy read as half-translated, while Persian letters, pasted presentation forms and decorative kashida look right but break search.

The check

Id
R064
Default severity
low

When it fires

  1. low

    Text that is mostly Arabic, at least 10 Arabic letters, has a Latin comma between two Arabic words, or a Latin semicolon or question mark after one, where Arabic has its own marks: ، ؛ ؟. Reported at medium confidence when a comma is among them, since the comma has the most legitimate mixed uses, and high otherwise.

    Fix: Replace with the Arabic forms: ، for a comma, ؛ for a semicolon, ؟ for a question mark.

  2. medium

    Text with at least 10 Arabic letters holds characters that look Arabic and are not: Farsi yeh or keheh from a Persian keyboard, presentation forms pasted from a PDF, or three or more tatweels stretching a word by hand. Search, sorting and screen readers treat them as different characters. Reported at medium confidence when tatweel is among them, and high otherwise.

    Fix: The fix for each kind found: normalise Farsi yeh and keheh to Arabic yeh and kaf at the content source, normalise presentation forms with NFKC, and remove decorative tatweel.

What it leaves alone

A comma between digits, like ١٢٣,٤٥٦, or beside Latin text, like Ritla, Inc.; one or two tatweels, which can be legitimate typography; mostly-Latin text, which is R010's; and code blocks, translate="no" and non-Arabic lang contexts. Up to four punctuation findings and eight in all per page.

Broken, then fixed

before.html
<p>هل أنت مستعد? ابدأ الآن, مجاناً</p>
after.html
<p>هل أنت مستعد؟ ابدأ الآن، مجاناً</p>

Check it by hand

Run [...document.body.innerText].filter((c) => /[\u06CC\u06A9\uFB50-\uFDFF\uFE70-\uFEFF\u0640]/u.test(c)).length in the DevTools console. Anything above zero is a character that looks Arabic and is not, or a tatweel worth a look. For punctuation, look for , ; and ? touching Arabic words.

What the report shows you

Each R064 finding carries the fields below that apply to it, so you can see why it fired without rerunning the scan.

marks
Punctuation: each Latin mark found, with the Arabic mark it stands in for.
kinds
Letterforms: which kinds were found: persian, presentation-forms or tatweel.
sample
The element's text, cut to 120 characters.

Does your page trip R064?

Paste a URL. Ritla renders the page on desktop, tablet and mobile, runs every check, and shows the top issues with screenshot evidence.

Scan a page freeBrowse the checks