You've localized your strings into Arabic. The translation is accurate, the glossary was reviewed, the files are merged. Then someone opens the app and the layout is broken — text overflows, icons point the wrong way, and the navigation feels backwards. Welcome to RTL layout bugs.

Why RTL isn't just "flip the layout"

Right-to-left languages like Arabic, Hebrew, and Urdu don't just reverse text direction — they reverse the entire spatial logic of your UI. What was on the left is now on the right. Progress bars fill from right to left. Back arrows point right.

The bugs that only show up in RTL

How to catch these before QA

1. Use CSS logical properties everywhere

Replace every instance of left/right in your CSS with inline-start/inline-end. This single change eliminates 60% of RTL layout bugs.

2. Pseudo-localization with RTL

Run your pseudo-localization pass with the dir="rtl" attribute set on <html>. This surfaces layout breaks before any real translation begins — you'll see mirroring issues, overflow, and alignment problems immediately.

3. Screenshot-based review

Generate screenshots of every screen in both LTR and RTL modes. Have a native RTL speaker review not just the text, but the visual hierarchy — does the layout feel natural, or does it feel like a flipped English UI?

The QA checklist we use

  1. All CSS directional properties use logical equivalents
  2. Icons reviewed for mirror/no-mirror classification
  3. Text expansion tested at 130% of English string length
  4. Bidi markers inserted for mixed-direction content
  5. Native RTL speaker reviews visual hierarchy and flow

Shipping to RTL markets? Start a project — we handle the translation, the layout QA, and the Bidi edge cases so your Arabic and Hebrew builds ship without a second sprint.