Text painted in reversed order

html.bidi-override

Markup that forces a writing direction against the text's own, so a reader sees one string and every extractor reads its reverse.

How the text is hidden

Two spellings. The <bdo> element, whose only purpose is to override the bidirectional algorithm — dir is required on it, and an absent one is read as right-to-left because that is the direction that reorders Latin text. And the CSS form, unicode-bidi: bidi-override or isolate-override, taking its direction from direction and defaulting to left-to-right as CSS does. Plain dir="rtl" is deliberately excluded: it sets a base direction and lets the algorithm run, which is how every multilingual page works.

Why a model still reads it

Nothing is hidden. Every character is painted, full size, full contrast — only the ORDER differs, and order is applied at layout. This is the markup-level twin of the Trojan-Source control codepoints.

What we do about it

The flag is set only when the forced direction actually opposes the run's own strong characters: right-to-left over Latin, Greek or Cyrillic, or left-to-right over Arabic, Hebrew, Syriac or Thaana. Right-to-left over Arabic changes nothing a reader can see and stays silent, so the rule cannot fire on a language. It reports informational with action disclose and family B, and this is the rule that made the rule pack grow a third treatment: flagging it would have put fully painted text into summary.concealedRetained. Nothing is stripped and nothing is re-ordered — the reordering lives in the markup, not in the text, so there is nothing in text.canonical to remove, and undoing it would mean re-writing a caller's text on our reading of a style rule.

How often it fires

0% of a broad crawl of 399 real web pages — pages, not documents, measured 2026-08-21.

This is an alert-volume number and nothing else. It says how often the alarm sounds on documents as found — not how often it is right, and not whether what it found was harmless. Documents as found may themselves carry concealment. Read it against the population named above rather than as a property of documents in general.

next

Check your own file

Three commands: a key, credit, a verdict.

Start with the API