RTL Testing Tool

raqeebرقيب

bidi-guard protects your code. raqeeb protects your UI. Scan HTML/CSS for Arabic RTL layout bugs before your users find them.

24 checks · 8 categories · RTL Score
Automatic Arabic layout quality testing
$ pip install raqeeb
The Problem
Your Arabic UI is broken.
Every Arabic web developer fights the same RTL bugs. Manually. Every time. These are the issues hiding in your codebase right now.
←→

Wrong Direction

Missing dir="rtl" on the html tag. The entire page renders left-to-right. Arabic text looks scrambled.

📈

Broken CSS

margin-left, padding-right, text-align: left. Physical properties that assume LTR. They all break in RTL.

🔨

Overflow Issues

Fixed pixel widths that work for English but overflow with Arabic. Characters are wider, words are longer.

A

Missing Fonts

font-family stacks without Arabic fallbacks. Your beautiful typography falls back to system defaults.

Inaccessible Forms

Input fields without dir attributes. Users type Arabic and the cursor jumps to the wrong side.

👁

Mixed Content

English text inside Arabic paragraphs without bidi isolation. Numbers, links, and brands display backwards.

24 Checks
Eight categories. Every RTL bug covered.
raqeeb checks your HTML and CSS for the most common Arabic layout issues, from missing direction attributes to tight line-heights that clip diacritics.

Direction

3 checks
  • missing_dir_rtl — no dir="rtl" on page
  • hardcoded_ltr — dir="ltr" on Arabic content
  • missing_lang_ar — no lang="ar" attribute

CSS Layout

4 checks
  • physical_css_properties — margin-left, padding-right
  • fixed_width_overflow — fixed px widths
  • text_align_left — text-align: left
  • float_left_right — float: left/right

Text Rendering

3 checks
  • bidi_isolation — LTR in RTL without isolation
  • number_rendering — numbers without LTR wrap
  • missing_unicode_bidi — no unicode-bidi property

Typography

3 checks
  • missing_arabic_font — no Arabic font fallback
  • small_font_for_arabic — font-size below 14px
  • line_height_too_tight — line-height below 1.4

Content

3 checks
  • placeholder_latin — Latin placeholder in Arabic form
  • alt_text_missing_arabic — English alt text
  • meta_description_not_arabic — English meta desc

Accessibility

2 checks
  • input_direction — input without dir attribute
  • table_direction — table without dir attribute

WCAG / A11y

2 checks
  • aria_labels_not_arabic — English aria-labels on Arabic page
  • button_text_not_arabic — English button text on Arabic page

Layout Edge Cases

4 checks
  • scrollbar_direction — scroll on wrong side in RTL
  • flexbox_rtl — flex-direction: row reverses in RTL
  • absolute_positioning — left/right instead of inset-inline
  • text_overflow_ellipsis — ellipsis on wrong side in RTL
RTL Score
A score for your Arabic readiness.
raqeeb report gives you a 0-100 score based on how many checks pass. Category breakdowns show exactly where to focus.
80
Direction — 3/3 passed
CSS Layout — 3/4 passed
Text Rendering — 1/3 passed
Typography — 3/3 passed
Content — 3/3 passed
Accessibility — 1/2 passed
In Action
Scan. Score. Fix.
raqeeb demo
Commands
6 commands. Zero config.

scan

Find RTL issues in HTML/CSS files. Rich table output with severity, line numbers, and code snippets.

url

Fetch a live URL and run all checks against it. Works with any public page.

report

Full RTL quality report with score (0-100), category breakdown, and top issues to fix first.

fix

Auto-fix common issues. Adds dir="rtl", lang="ar", replaces physical CSS with logical. Use --yes to skip prompt.

explain

List all 24 checks grouped by category with descriptions and severity levels.

init

Generate a GitHub Actions workflow for CI integration. Use --write to create the file directly.

Get Started
Four lines to protect your Arabic UI.
# Install $ pip install raqeeb # Scan your project $ raqeeb scan . # Scan a live URL $ raqeeb url https://example.com # Get your RTL score $ raqeeb report . # Auto-fix common issues $ raqeeb fix . --yes # Explain all checks $ raqeeb explain # Set up CI $ raqeeb init --write
CI Integration
Catch RTL bugs in every pull request.
Add raqeeb to your GitHub Actions workflow. Fail the build when RTL issues are found.
name: RTL Check on: [push, pull_request] jobs: raqeeb: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.11' - run: pip install raqeeb - run: raqeeb scan . --ci