Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Free automated accessibility check for EU online shops — scanner, reports in the shop's own language, EAA national-laws dataset
翻訳待ち
Loading the full README. The saved excerpt is shown below.
A free, automated accessibility check for online shops under the European Accessibility Act
(Directive (EU) 2019/882). This is the scanner and report generator behind
shopoffen.peculiar.systems — use the hosted version,
or run it yourself.
It opens a shop's home, category, product and cart pages in headless Chromium, runs
axe-core against WCAG 2.1 AA / EN 301 549, and adds a few
checks axe does not do:Read the full README ↗A free, automated accessibility check for online shops under the European Accessibility Act (Directive (EU) 2019/882). This is the scanner and report generator behind shopoffen.peculiar.systems — use the hosted version, or run it yourself.
It opens a shop's home, category, product and cart pages in headless Chromium, runs axe-core against WCAG 2.1 AA / EN 301 549, and adds a few checks axe does not do:
The report is written for the shop owner, not the developer: what already works first, then what to fix, each finding with the page, the element and how to fix it — plus a template for the accessibility information the EAA asks for (Annex V).
Reports come in the shop's own language. Each names the country's own transposition act, supervisory authority and penalties, checked in the national gazettes:
en de (+ at) fr (+ be) it es nl (+ be) pl pt cs sv da fi ro hu el (+ cy)
The legal data is also published as a dataset with sources — act, authority, penalties, where to
publish the accessibility information, microenterprise exemption — for all 27 EU member states in
data/eaa-national-laws/ (JSON and CSV).
Needs Node.js 18+ and Python 3.9+ (standard library only).
cd scanner && npm install && cd ..
node scanner/scan.js --lang de https://shop.example.de # → scanner/out/scan-<host>-<date>.json
python3 report.py scanner/out/scan-shop.example.de-2026-09-25.json --lang de # → out/Bericht-<host>-<date>.html
--lang picks the report language (default de for report.py, en for the scanner).--country at|be|cy picks another country's law inside a language; by default it follows the shop's top-level domain.node scanner/scan.js https://shop.example /collections/all /products/x /cartThe scanner only follows public addresses: every request the browser makes is checked, and anything that resolves to a private, loopback or link-local address is aborted.
An automated check finds only part of what a manual audit would. A clean report is a good first pass, not a certificate of conformity and not legal advice. The report says so, and it recommends against accessibility overlays (see the European Disability Forum's statement).
A language is data, not code: i18n/<lang>.json (same keys as en.json, with a legal block
per country) and templates/statement-<lang>.md. For languages axe-core has no locale for,
add rule_titles to the JSON so finding titles are translated too. Please cite the primary
source for every legal statement.
Code (scanner/, report.py, build.py): MIT. Report texts, templates and data (i18n/,
templates/, data/): CC BY 4.0. See LICENSE and LICENSE-CONTENT.
Made by Peculiar Systems, an independent software studio.