Accessibility
· 24 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.F404 Error PageActionSoft 404 detectedFIX
The server returned HTTP 200 for a non-existent path. Search engines will index this page as real content. Configure your server to return HTTP 404 for missing pages.
FFavicon & BrandingActionNo icons detectedFIX
FWeb ManifestActionInvalid JSONFIX
Manifest contains invalid JSON.
DPrint StylesheetActionNo print stylesFIX
BLandmark Structure2 landmarksREVIEW
Add a skip link as the first focusable element so keyboard users can bypass repeated navigation.
Without a skip-nav link, keyboard users tab through every nav item before reaching content — every page, every visit.
Learn more ▾ ▴
WCAG 2.4.1 (Bypass Blocks) requires a mechanism to skip past repeated content. The standard implementation is a 'Skip to main content' link that's the first focusable element, visually hidden until focused. Three lines of HTML + four of CSS.
Source: WCAG 2.1 SC 2.4.1
BDark Mode SupportDark mode detectedREVIEW
Detection limited to meta tags and inline styles.
A+Heading Hierarchy3 headingsPASS
- H1 froga.io
- H2 Performing security verification
- H2 Verification successful. Waiting for froga.io to respond
A+Heading Text QualityAll 3 heading(s) have substantive, well-formed textPASS
A+Alt Text QualityAll 1 images OKPASS
A+Form AccessibilityNo form controlsPASS
ALink & Button Quality2 links, 0 buttons — all OKPASS
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://www.cloudflare.com?utm_source=ch… | Cloudflare, opens in a new tab | new tab | Add '(opens in new tab)' to text |
| https://www.cloudflare.com/privacypolicy… | Privacy, opens in a new tab | new tab | Add '(opens in new tab)' to text |
Add '(opens in new tab)' to link text or aria-label.
https://www.cloudflare.com?utm_source=challenge&utm_campaign=m; https://www.cloudflare.com/privacypolicy/
Links with target="_blank" without rel="noopener" leak the originating page's window context — security and UX issue.
Learn more ▾ ▴
Without rel="noopener", the new tab can navigate the original tab via window.opener (tab-nabbing attack). Modern browsers default to noopener for target=_blank but only since recent versions. Always set rel="noopener noreferrer" explicitly.
Source: MDN target / OWASP
A+Form Input TypesNo form controls on this pagePASS
A+Form Input QualityNo form controls on this pagePASS
A+Mobile Keyboard & AutofillNo form controls -- mobile keyboard check is N/APASS
A+Document LanguageLang attribute set to "en-us"PASS
A+Tabindex Anti-PatternsNo explicit tabindex attributes foundPASS
A+Iframe AccessibilityNo iframes on this pagePASS
A+Tap Target AdequacyAll tap targets meet WCAG 2.5.5/2.5.8 sizingPASS
A+Mobile-Readable Font SizesAll 8 visible text node(s) render at >= 12 CSS pixelsPASS
A+PWA DepthNo PWA depth issues detectedPASS
A+Mobile UX Depth1 mobile-depth signal(s) detectedPASS
A+Color Contrast (Screenshot)10 text elements analyzed, 0 fail WCAG AAPASS
Analyzes text contrast against the actual rendered page, including background images, gradients, and overlays that CSS-based tools cannot detect.
Show all checked elements (10)
| Element | Ratio | Required | FG | BG | Result |
|---|---|---|---|---|---|
| h1 froga.io | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Performing security … | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Verification success… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| title Just a moment... | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| p This website uses a … | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| div Ray ID: | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| code a4ae1f210b807cb6 | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span Performance and Secu… | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Cloudflare | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Privacy | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
Methodology: The top 20 text elements by font size were checked. Background color was sampled from the desktop screenshot using a 5-point pattern. WCAG 2.1 AA requires 4.5:1 for normal text and 3:1 for large text.
ALighthouse Accessibility AuditsScore 94/100 — 2 failing, 23 passedPASS
Accessibility
These checks highlight opportunities to improve the accessibility of your web app. Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so manual testing is also encouraged.
Contrast
Low-contrast text is difficult or impossible for many users to read. Learn how to provide sufficient color contrast.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Rooms of questions you can finish on a bus, labs where you build things that ac… div.flex > section.mx-auto > div.pt-2 > p.mt-4 |
No account needed to build div.flex > div.min-w-0 > div.mt-6 > span.text-sm |
Create your account and start now section.mx-auto > div.mb-7 > div > p.mt-1 |
#machine-learning div.key-static > div.flex > div.flex > a.rounded-full |
#embeddings div.key-static > div.flex > div.flex > a.rounded-full |
#labs div.key-static > div.flex > div.flex > a.rounded-full |
#databases div.key-static > div.flex > div.flex > a.rounded-full |
#transactions div.key-static > div.flex > div.flex > a.rounded-full |
#concurrency div.key-static > div.flex > div.flex > a.rounded-full |
#nobelpriset div.key-static > div.flex > div.flex > a.rounded-full |
#fysik div.key-static > div.flex > div.flex > a.rounded-full |
#neutriner div.key-static > div.flex > div.flex > a.rounded-full |
#security div.key-static > div.flex > div.flex > a.rounded-full |
#web-security div.key-static > div.flex > div.flex > a.rounded-full |
#cve div.key-static > div.flex > div.flex > a.rounded-full |
#security div.key-static > div.flex > div.flex > a.rounded-full |
#web-security div.key-static > div.flex > div.flex > a.rounded-full |
#cve div.key-static > div.flex > div.flex > a.rounded-full |
#maths div.key-static > div.flex > div.flex > a.rounded-full |
#compound-interest div.key-static > div.flex > div.flex > a.rounded-full |
#finance div.key-static > div.flex > div.flex > a.rounded-full |
#russian div.key-static > div.flex > div.flex > a.rounded-full |
#alphabet div.key-static > div.flex > div.flex > a.rounded-full |
#beginner-russian div.key-static > div.flex > div.flex > a.rounded-full |
#probability div.key-static > div.flex > div.flex > a.rounded-full |
#markov-chains div.key-static > div.flex > div.flex > a.rounded-full |
#labs div.key-static > div.flex > div.flex > a.rounded-full |
Interactive learning rooms you can build, share and play — solo or live with a … div.mx-auto > div.grid > div.col-span-2 > p.mt-3 |
Free to join · No credit card div.mx-auto > div.grid > div.col-span-2 > p.mt-4 |
Explore rooms div > ul.mt-3 > li > a.text-muted-foreground |
Live mode div > ul.mt-3 > li > a.text-muted-foreground |
For teachers div > ul.mt-3 > li > a.text-muted-foreground |
Help & FAQ div > ul.mt-3 > li > a.text-muted-foreground |
Contact us div > ul.mt-3 > li > a.text-muted-foreground |
Privacy policy div > ul.mt-3 > li > a.text-muted-foreground |
Terms of service div > ul.mt-3 > li > a.text-muted-foreground |
© 2026 Froga. All rights reserved.
footer.mt-auto > div.mx-auto > div.mt-10 > p |
These are opportunities to improve the legibility of your content.
Best practices
One main landmark helps screen reader users navigate a web page. Learn more about landmarks.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
html.light html.light |
These items highlight common accessibility best practices.