ScreenshotNeo

BlogHow-to

Applitools Eyes Screenshot Comparison for Hindi Websites

Use Applitools Eyes with Playwright to catch visual regressions on Hindi websites, with a workflow for Devanagari rendering, baselines, and review.

By the ScreenshotNeo team4 October 20268 min read

Applitools Eyes can compare rendered Hindi pages against approved visual baselines, and its documented Playwright integration lets you add those checks to an existing browser test. Treat the result as a visual regression signal, not proof that a translation is correct or that every device renders it identically. Devanagari glyphs can change shape with their character context, font, and rendering environment, so use the fonts and page conditions your users actually encounter.

Applitools describes localization checks as a way to compare locales and identify problems such as overflow, truncation, and broken layouts. That is a vendor description of general capability; the sources available here do not establish Hindi-specific detection accuracy or an independent benchmark. Applitools localization guidance

1. What to check on a Hindi page

Hindi is a language; Devanagari is its script. Inspect script rendering as well as the surrounding layout. Unicode explains that Devanagari characters can combine or change shape according to context, and that character ordering, font, and the application or system environment affect their appearance. Unicode Standard, Chapter 12

  • Glyph formation and font fallback: check conjuncts, combining marks, and the intended font after web fonts load. Look for unexpected fallback or inconsistent weight.
  • Line wrapping and clipping: inspect headings, navigation, buttons, cards, and narrow columns for cut-off text, overlap, or unintended wrapping.
  • Spacing and alignment: check baselines, line height, icon-to-label spacing, and alignment of controls beside Devanagari text.
  • Mixed-script content: include realistic Hindi text containing numerals, Latin product names, punctuation, and links where the page uses them.
  • Usability of controls: ensure translated labels still fit and interactive targets remain visible and usable.

W3C’s Devanagari resources cover fonts, contextual shaping and positioning, and layout for developers implementing web technologies. These are useful inspection areas, not a claim that a screenshot check covers all script requirements. W3C Devanagari Script Resources

2. Set up a stable comparison workflow

  1. Choose representative journeys. Select a small set of important Hindi pages and states: for example, a landing page, a form with validation, and a menu or dialog. Use real approved Hindi content, including longer labels and mixed-script examples.
  2. Make capture conditions repeatable. Pin the browser and viewport used by the test, wait for the page and fonts, and control animations or changing content if they make captures unstable. Include other browser engines and viewport sizes when they are part of your supported experience.
  3. Create an approved Hindi baseline. Capture the intended Hindi UI and review it before accepting it. Do not use an English baseline as the reference for Hindi; compare like locale and state with like.
  4. Run after relevant changes. Run the same journey after UI, CSS, content, or font changes. Review diffs before updating baselines so an accidental regression does not become the new expectation.
  5. Investigate visual diffs in context. Determine whether the difference comes from a real layout or font change, a delayed font or image, dynamic content, or rendering noise. Applitools describes filtering rendering noise such as anti-aliasing and font-rendering differences in its Playwright offering; confirm the behavior and configuration appropriate to your account and SDK. Applitools Playwright integration
  6. Pair visual checks with language review. Have a qualified reviewer validate Hindi wording, spelling, and meaning separately. A pixel comparison cannot determine whether a translation is linguistically correct.

When deciding which configurations to cover, prioritize browser and device support, repeatability and noise handling, integration with your existing test framework, baseline review workflow, and whether the test uses the Hindi fonts and content users encounter. The cited sources do not provide a Hindi-specific vendor comparison.

3. Playwright example with Applitools Eyes

The following JavaScript example shows the shape of a Playwright test using the documented Eyes integration. Install the Applitools Playwright SDK and configure its required API key and project settings according to the official integration documentation; SDK package names and APIs can change, so use the current setup instructions for your installed version.

import { test } from '@playwright/test';
import { Eyes, VisualGridRunner, Configuration, BrowserType } from '@applitools/eyes-playwright';

const runner = new VisualGridRunner({ testConcurrency: 1 });
const config = new Configuration();
config.setApiKey(process.env.APPLITOOLS_API_KEY);
config.setBatchName('Hindi website visual checks');

const eyes = new Eyes(runner);
eyes.setConfiguration(config);

test('Hindi landing page matches its approved baseline', async ({ page }) => {
  await page.setViewportSize({ width: 1280, height: 900 });
  await page.goto('https://example.com/hi/', { waitUntil: 'networkidle' });

  // Wait for the site's Hindi web font when one is used.
  await page.evaluate(() => document.fonts.ready);
  await page.locator('main').waitFor({ state: 'visible' });

  await eyes.open(page, 'Example site', 'Hindi landing page', {
    width: 1280,
    height: 900
  });
  await eyes.check('Hindi landing page', { fully: true });
  await eyes.closeAsync();
});

test.afterEach(async () => {
  await eyes.abortIfNotClosed();
});

This is an integration sketch rather than a version-pinned install recipe. Follow the current Applitools documentation for the SDK version you use, test-runner lifecycle, runner cleanup, and supported configuration. In a real test, make sure Eyes is closed or aborted even when navigation or an assertion fails; use your test framework’s fixture pattern if it creates one Eyes instance per test.

Adapt the example to your site

  • Replace the example URL with a stable Hindi route and use a test environment whose content does not change unexpectedly.
  • Use the actual supported viewport or device dimensions. Add separate cases for materially different responsive layouts.
  • Wait for the site’s font readiness and any route-specific content before capture. If the app signals readiness explicitly, wait for that signal rather than relying only on a fixed sleep.
  • Capture meaningful states, such as an open navigation menu or form error, as separate named checks.
  • Review and approve baselines intentionally. Keep the baseline tied to the correct locale, browser configuration, and UI state.

4. What the screenshot can and cannot establish

A visual comparison can help reveal layout changes, clipping, overlap, font fallback, and changed line breaks. A passing comparison says the captured page is sufficiently similar under that test’s configuration and comparison rules. It does not prove the Hindi copy is accurate, that screen-reader output is correct, or that all end-user devices shape text the same way.

Devanagari is not a right-to-left script. Do not apply right-to-left assumptions merely because a page is localized. Check the page’s actual direction and mixed-script behavior where relevant.

5. Common problems and fixes

Symptom Likely cause What to do
Text differs between runs Font loading, animation, dynamic content, or timing varies. Wait for the intended font and app-ready state; stabilize changing regions and remove arbitrary timing where possible.
Large diff after a font or browser update Glyph metrics or rasterization changed, affecting wrapping and appearance. Check the rendered font and layout first. Review the changed baseline deliberately; do not approve a broad diff without inspection.
Hindi labels are cut off Fixed dimensions, insufficient line height, or assumptions based on shorter text. Inspect the component at the failing viewport. Adjust sizing and wrapping, then retain a regression check for the affected state.
Baseline appears to use the wrong language Locale routing, test data, or baseline identity is wrong. Verify the final URL and visible locale before capture; use a distinct, clearly named Hindi check and approve its Hindi baseline.
Visual test passes but wording is wrong Visual comparison does not validate meaning or translation quality. Add content assertions or a human language review alongside the visual test.
Test fails before a comparison is produced Navigation, selector, SDK setup, API key, or runner lifecycle is misconfigured. Inspect the Playwright error and current Applitools setup instructions; confirm credentials are available to the test process and close/abort Eyes in all paths.

6. Performance, reliability, and maintenance

  • Keep the suite focused. Start with critical Hindi journeys and representative responsive breakpoints. Add cases when they cover a distinct layout or failure mode.
  • Reduce avoidable noise. Pin capture conditions, wait for fonts and app readiness, and handle genuinely dynamic regions deliberately. Noise filtering can help with rendering variation, but broad tolerance can hide real defects.
  • Make baseline updates reviewable. Tie changes to the UI or content change that prompted them, and inspect the affected Hindi text and layout before accepting.
  • Plan for font changes. A new font file, fallback stack, or browser environment can change line breaks even when CSS is unchanged. Treat this as a possible user-visible change.
  • Separate visual and semantic checks. Use assertions and language review for correctness that pixels alone cannot establish.

The reviewed sources do not provide Hindi-specific performance, pricing, or reliability statistics for Eyes. Consult Applitools’ current product documentation and account terms for those details rather than inferring them from a visual-testing example.

7. ScreenshotNeo as an alternative capture path

If your immediate need is to capture a page for inspection or a visual workflow, ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. It is not a replacement for Eyes baseline comparison; it provides the screenshot capture that you can use in your own workflow. Its API supports PNG, JPEG, WebP, or PDF, and its request parameters include options used by other screenshot APIs to make switching easier.

Or skip the browser setup

One GET request captures a URL. See the ScreenshotNeo API documentation.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/hi/ -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://example.com/hi/"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://example.com/hi/'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', new Uint8Array(await res.arrayBuffer()));
  • Cookie and consent banners are accepted before capture, and 60+ known consent platforms, newsletter popups, and chat widgets are removed; each step can be turned off.
  • Bot checks, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed. Response headers report the page verdict and billing status.
  • An MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf.
  • The free plan includes 1,000 screenshots a month with no card. Paid plans start at $5 for 3,000 screenshots.

Create a free ScreenshotNeo account for 1,000 screenshots a month with no card.

8. FAQ

Does a passing screenshot prove the Hindi translation is correct?

No. It checks visual similarity under the configured capture conditions. Validate language and meaning separately.

Should Hindi screenshots be tested as right-to-left?

No. Devanagari is not right-to-left. Follow the page’s real direction and test mixed-script content as it appears.

Can I use one baseline for every browser and screen size?

Use baselines that represent the configurations your product supports. A layout can differ across viewport sizes or rendering environments, so avoid assuming one capture represents all of them.

Is there an independent Hindi-specific Applitools benchmark in these sources?

No. The cited material documents general localization and Playwright capabilities and explains Devanagari rendering considerations; it does not report a controlled Hindi-specific evaluation.