Arabic and RTL release QA for web interfaces.
Faseeh is a small local CLI that scans HTML pages for Arabic UI problems before launch: missing RTL direction, weak Saudi form hints, mixed Arabic/English text, SAR formatting issues, and rendered overflow bugs.
No API. No cloud upload. No database. No LLM.
python3 -m pip install -e .For browser-rendered checks:
python3 -m pip install -e ".[render]"
python3 -m playwright install chromiumfaseeh examples/broken-checkout.html
faseeh examples
faseeh ./dist --fail-on highRun without installing:
PYTHONPATH=src python3 -m faseeh.cli examples/broken-checkout.htmlStatic checks parse HTML quickly. Rendered checks open Chromium locally and catch layout problems that only appear after CSS and browser layout.
faseeh examples/broken-checkout.html --rendered --viewport mobile
faseeh examples/clean-checkout.html --rendered --viewport bothRendered mode can save screenshot evidence with:
faseeh page.html --rendered --artifacts faseeh-artifactsfaseeh page.html --format text
faseeh page.html --format json
faseeh page.html --format csv
faseeh ./dist --format json --output faseeh-report.jsonExit codes:
0: pass1: findings found2: blocked by--fail-on
Faseeh looks for common Arabic release risks:
- Arabic content without Arabic language or RTL direction.
- Mixed Arabic and Latin text without direction isolation.
- Long Arabic action labels that may overflow on mobile.
- Buttons and links that block wrapping.
- Saudi phone, city, district, neighborhood, and address fields with weak hints.
- Money labels without SAR or riyal markers.
- Rendered direction mismatches, text overflow, and viewport overflow.
PYTHONPATH=src python3 -m unittest discover -s tests
python3 -m compileall src tests
python3 -m pip wheel . -w /tmp/faseeh-wheelFaseeh is heuristic. It does not replace manual QA, accessibility audits, visual regression suites, or Arabic-speaking testers. It is a local release check for the boring Arabic and RTL mistakes that should not reach production.
