For teams who want one kind of problem looked for on purpose: accessibility, speed, layouts, themes, time zones, uploads or translations.
Your setup
- A web app on staging, with a test account.
- The pages or flows to check, for example sign-in, checkout and settings.
How it works
- Say what to check and where (examples below). Certyn says the run length, then starts a run with your pages and the check in its goal. Most of these settings work only in runs, not on the chat's own Machine, so Certyn starts a run even for one page.
- In the run, Certyn changes the browser setting the check needs, walks each page or flow, and resets the setting when done.
- It files one finding per real bug, with a screenshot and the setting named in the title, for example "Totals invisible in dark mode on Dashboard". Many elements failing the same rule make one finding with a count and examples.
- The run report lists each page and setting checked, and what was not checked.
If you ask, Certyn saves test cases for the check (for example tagged a11y), so a suite repeats it on a schedule or after each deploy.
The checks
| Check | Say this | What Certyn checks | Main limits |
|---|---|---|---|
| Accessibility | Check accessibility of sign-in, checkout and account settings on staging and file what blocks keyboard or screen reader users. Or type /a11y. | An automatic audit (axe-core, WCAG rules up to 2.2 AA) with failing elements and measured contrast; the names and roles a screen reader announces; by hand: Tab, Shift+Tab, Enter, Space, Escape and arrow keys, visible focus, focus in and out of dialogs, 200% zoom and a narrow screen. | No real screen reader (NVDA, JAWS, VoiceOver). Not a formal audit or a conformance report (such as a VPAT). Web pages only. |
| Performance | Users say /reports is slow, and the Apply filter button freezes the page. Measure it on staging and tell me why. | Web Vitals: LCP, CLS, FCP, TTFB, Total Blocking Time with long tasks, rated by Google's thresholds (LCP good up to 2.5 s, poor from 4 s). It clicks the slow button and reports what blocked the page, and INP when the browser reports it. Slow or repeated requests and large responses. Again on a slow network (3G). It measures at least twice. | Lab numbers from one Chromium on a Machine, not your users' devices. One user, not a load test: for load, see your runner. Timing varies; trust repeated results. |
| Phone and tablet sizes | Check sign-in, search and checkout on staging at iPhone 14, Pixel 7 and iPad Air sizes. File anything cut off, overlapping or hard to tap. | Each flow at each size: menus, tables and dialogs fit or scroll, forms work, buttons are big enough to tap. Presets: iPhone 14, iPhone 14 Pro Max, Pixel 7, Galaxy S23, iPad Air, desktop 1080p (screen size, user agent and touch). | Chromium with a phone's size, not real Safari or a real phone: bugs from Safari, the on-screen keyboard or the notch are not found. Only these presets. A new tab starts without the preset. |
| Dark mode, reduced motion, print | Check the dashboard and settings in dark mode, the home page with reduced motion on, and that an invoice prints cleanly. | Dark or light color scheme: text that disappears, dark icons on dark, leftover white boxes, with measured contrast. Your app's own theme switch if it has one. Reduced motion: carousels stop, big transitions calm down (also read from the CSS). Print CSS: menus and buttons hidden, nothing cut off. | Certyn cannot watch an animation play; it judges from the CSS and screenshots. No print dialog or PDF, so page breaks and margins are not checked. No high contrast (forced colors) mode. Chromium only. |
| Time zones and location | Check order dates in Australia/Sydney and America/Los_Angeles, around midnight and around the daylight saving switch. Also check the store finder from Berlin and from Chicago. | The browser's time zone (an IANA name): a record's time on the list, detail page and export; a zone where it is just before or after midnight; a half hour zone such as Asia/Kolkata; dates around the switch (for example 29 March and 25 October 2026 in Europe/Berlin) and a time that does not exist (02:30 on 29 March). The browser's location (latitude and longitude). | The zone changes, the clock and the server's zone do not. For a fixed local time, schedule a run with a time zone. Content chosen by IP address does not change: use a country selector, a region URL, a test account per country, or a runner in that region. |
| File uploads | Test the avatar, contract and contact import uploads on staging. Try good files, the wrong type and a file over our 10 MB limit. | Good files (name, preview, imported rows); the wrong type (a clear message, and the server refuses it too); a too-large file (a clear message, not a spinner or a server error). Samples: PNG and JPG (1×1 pixel), a one-page PDF, a CSV (name,email,role and two rows), a text file, a 12 MB file. Other files are made in the run's shell: an empty file, a CSV with a bad row, a bigger file. | Files you attach in the chat do not reach runs: give a URL, keep them in your repo, or put them in /workspace on a self-hosted runner. A 1×1 image can fail a minimum size check. A file input inside an iframe or a shadow DOM component is not reached. |
| Languages | Check checkout and account settings on staging in German and Japanese. Our language switch is in the footer. File missing translations, cut-off text and wrong date or price formats. | Text left in English, raw keys such as checkout.title, placeholders such as {name} or undefined, broken characters; cut-off text in buttons, menus and tables, also at a phone size; local formats such as 20.10.2026 and 1.234,56 € in German; right-to-left layout for Arabic or Hebrew. | Runs cannot set the browser's language (Accept-Language). Certyn switches the language your app's way: a switch, the URL, or a test account set to that language. Formats that follow the browser's language show the default. Not a native speaker review of tone. |
Good to know
- Accessibility: automatic rules find only part of the problems. The audit marks some items for manual review, such as text over an image. Ask Certyn to list them, and check key flows with a real screen reader and real users before you claim compliance. Findings are ranked by harm: a main task a keyboard user cannot finish is Major; one low-contrast label is Minor.
- Languages: if you do not say how your app picks the language, Certyn asks, and can keep the answer in Knowledge. If your app takes the language only from the browser, add a URL parameter or a setting for testers. Or Certyn runs a short Playwright script with a locale such as
de-DEand checks the text; it then checks layout only by element sizes. - Drag and drop uploads work when there is a file input behind the area, as most have.
- Native mobile apps are not covered here. See Mobile App on a Device Cloud.