Last updated:
We open the URL you give us in a real Chromium browser, not a simple HTML download. Scripts run and widgets load, at a desktop screen size (1366 × 768). Then we wait up to 5 seconds for chat widgets that load late, and stop sooner once a known chat widget has appeared on screen. To keep scans quick, the browser doesn't download images, fonts or media; images are read separately in Step 6. No scan runs in the browser for longer than 45 seconds.
We scan the page at the address you give us; we don't crawl the rest of the site.
We recognise widgets from known vendors by their scripts, the requests the page makes to their loader servers, page globals, element IDs and, for voice and avatar widgets, the embed markup. Vendors we currently recognise:
Chat: Intercom, Drift, Zendesk, Crisp, Tidio, LiveChat, HubSpot chat, Freshchat, tawk.to.
Voice: ElevenLabs voice agent, Vapi voice agent, Telnyx AI agent.
Avatar: D-ID avatar, Tavus avatar, Synthesia presenter video.
A custom-built chatbot that doesn't match a known vendor may not be recognised. It is only picked up if its markup uses common names such as "chatbot", "ai-chat" or "chat-widget", and is then reported as a custom chat widget. Voice and avatar widgets are recognised from the vendors above only.
We read the visible text of the page. For chat, voice and avatar widgets we also read text inside chat-like frames (up to 25) and chat-like shadow roots, which ordinary page text doesn't include. Frames that don't look like chat widgets aren't read, and the reading is best effort and time-boxed.
We read only what a widget shows as it first loads. Nothing is clicked or opened, so a disclosure that appears only once a conversation starts isn't seen. How a disclosure inside a frame from another site is presented can't be measured, and the report says so.
We recognise wording that tells visitors they are talking to AI in English, German, French, Spanish, Italian, Dutch and Portuguese. On the page, only sentences addressed to the visitor count, such as "You're chatting with an AI assistant". Marketing lines like "Powered by AI", bare labels like "virtual assistant", and negated phrases ("you are not talking to an AI") don't count as a disclosure there.
Inside a chat widget, where the text is the bot speaking, more wording counts: first-person statements such as "I'm an AI assistant" and labels that name the bot as an AI. Negated phrases still don't count, and in the six languages other than English a label has to say AI.
When we find a disclosure, we compare its language with the page's language setting where both are clear, and say "couldn't determine" otherwise. Labels on AI-generated content and on images are recognised in English only. Avatar labels are recognised in all seven languages. Read more in AI disclosure and language.
Our non-English phrase lists are still being reviewed by native speakers. If we miss a correct disclosure in your language, tell us at [email protected] and we'll fix it.
Where we find a disclosure, we measure how it is presented as the page first loads. We report measurements and flag only clear problems:
Anything we couldn't inspect, such as gradient or image backgrounds, text in a frame from another site, or text we couldn't locate, is reported as "couldn't determine" and never produces a finding.
After the browser is closed, we read the start of up to 8 images on the page (the first 256 KB of each, within a shared 5-second limit). We pick the social-share image first, then images by size, and skip icons, logos, SVG, video and tiny images. We look for provenance data that says an image was made by a trained model: an IPTC digital source type in the image's XMP metadata, or in a C2PA (Content Credentials) manifest.
If an image says it is AI-generated and no label, caption or alt text near it, or text elsewhere on the page, says so (English wording only), we report it. A missing marker is never a finding, because many AI images carry none, and markers are easy to strip.
Separately, if the page's own markup says content is AI-generated (a generator tag naming a known AI tool, or an explicit AI-generated attribute) and no visible text discloses it, we report that too.
If the page redirects to a different site, shows a bot check or security challenge, answers with an HTTP error (400 or above), loads with almost no visible text (under 50 characters), or fails to load or times out, we say we couldn't scan it. We never show that as a clean result. A redirect within the same site, including to or from a "www" or subdomain address, isn't treated as another site. For a redirect to a different site, we show where it went and let you scan that address.
See a sample report, or run a free scan.
A clean result is not a compliance clearance, and this page is not legal advice. For the rules themselves, see the Article 50 guide.
Yes. Your page is loaded in a real Chromium browser so scripts and widgets run as they would for a visitor.
AI disclosures addressed to visitors in English, German, French, Spanish, Italian, Dutch and Portuguese. Content and image labels in English only.
No. It means the scan found no obvious issue in what it could check. The full report lists what it could not check.
We tell you we couldn't scan it. We never show a blocked or empty page as clean.
It reads provenance markers some AI tools embed in images. It does not guess from how an image looks, and a missing marker is never reported as a problem.
Article50.io is an automated scanner for the Article 50 transparency rules of the EU AI Act. It scans a website for potential Article 50 transparency gaps and generates a report of what the scan found and what it could not check, with remediation guidance, implementation instructions and disclosure wording you can paste in.
The free scan shows your single most severe finding in about 30 seconds — no signup, public pages only.
Automated technical guidance, not legal advice. Citations refer to Regulation (EU) 2024/1689.