PWA d'aide à la lecture pour personnes dyslexiques — OCR local, synthèse vocale, polices adaptées, zéro collecte de données
  • JavaScript 97.1%
  • HTML 1.9%
  • CSS 1%
Find a file
Rémi Vincent 6a6f6ccf1d fix(cache): force purge SW côté utilisateurs existants + raccourcit max-age sw.js
Le bump v17 → v18 ne prenait pas effet chez les utilisateurs déjà équipés
du SW v17 : celui-ci servait app.js v17 en cache-first, masquant les
nouveautés du commit précédent (pipeline étape par étape + poignées
draggables). Le flag one-shot dysplay_sw_reset est passé de v6 à v7 pour
relancer la purge + unregister + reload côté navigateur.

Prévention : .htaccess limite désormais le cache HTTP de sw.js à 5 min
(au lieu de 1 mois), garantissant que les prochains updates seront pris
en compte rapidement.

Cache-busting bumpé v18 → v19 (SW CACHE_VERSION + tous les ?v= sur
scripts/CSS d'index.html).
2026-04-21 12:33:42 +02:00
.github feat(ux): bandeau bêta + modale feedback (CUD-safe, mailto + GitHub) 2026-04-18 14:00:56 +02:00
fonts feat(a11y,i18n,fonts): audit Dys-Play du 17 avril 2026 appliqué 2026-04-18 13:14:48 +02:00
img fix(deploy): contourne le blocage Infomaniak en renommant icons/ → img/ 2026-04-17 14:43:24 +02:00
libs feat(ocr): migration Tesseract v5 UMD → v7 ESM + pipeline Sauvola/deskew + panneau tuning 2026-04-20 19:05:46 +02:00
modules feat(ocr): migration Tesseract v5 UMD → v7 ESM + pipeline Sauvola/deskew + panneau tuning 2026-04-20 19:05:46 +02:00
.gitignore feat(a11y,i18n,fonts): audit Dys-Play du 17 avril 2026 appliqué 2026-04-18 13:14:48 +02:00
.htaccess fix(cache): force purge SW côté utilisateurs existants + raccourcit max-age sw.js 2026-04-21 12:33:42 +02:00
accessibilite.html feat(feedback): pièce jointe capture d'écran dans la modale bêta 2026-04-18 19:22:12 +02:00
app.js feat(ocr,ux): pipeline loader étape par étape + poignées draggables sur ZoneSelector 2026-04-20 19:27:58 +02:00
index.html fix(cache): force purge SW côté utilisateurs existants + raccourcit max-age sw.js 2026-04-21 12:33:42 +02:00
llms.txt seo(geo): canonical, schema enrichi, llms.txt corrigé, robots et sitemap 2026-04-17 10:03:42 +02:00
manifest.json fix(deploy): contourne le blocage Infomaniak en renommant icons/ → img/ 2026-04-17 14:43:24 +02:00
ocr-config.js Dys-Play v1.0 — PWA aide à la lecture pour personnes dyslexiques 2026-04-05 16:49:34 +02:00
ocr-validator.js Fix : corrections critiques sécurité, crashes et nettoyage 2026-04-07 15:28:00 +02:00
ocr-zone-selector.js feat(ocr,ux): pipeline loader étape par étape + poignées draggables sur ZoneSelector 2026-04-20 19:27:58 +02:00
README.md feat(a11y,i18n,fonts): audit Dys-Play du 17 avril 2026 appliqué 2026-04-18 13:14:48 +02:00
robots.txt seo(geo): canonical, schema enrichi, llms.txt corrigé, robots et sitemap 2026-04-17 10:03:42 +02:00
sitemap.xml seo(geo): canonical, schema enrichi, llms.txt corrigé, robots et sitemap 2026-04-17 10:03:42 +02:00
styles.css feat(ocr,ux): pipeline loader étape par étape + poignées draggables sur ZoneSelector 2026-04-20 19:27:58 +02:00
sw.js fix(cache): force purge SW côté utilisateurs existants + raccourcit max-age sw.js 2026-04-21 12:33:42 +02:00

Dys-Play

Application web progressive d'aide a la lecture pour les personnes dyslexiques, dysorthographiques et TDA/H.

Dys-Play transforme n'importe quel texte pour faciliter la lecture : police adaptee, espacement personnalisable, syllabation coloree, regle de lecture, synthese vocale.

Fonctionnalites

  • OCR local : photographiez un texte imprime, Dys-Play le convertit (Tesseract.js)
  • Import PDF : extraction de texte depuis des documents PDF (PDF.js)
  • Saisie libre : collez ou tapez directement votre texte
  • Polices adaptees : OpenDyslexic, Comic Neue
  • Syllabation coloree : chaque syllabe coloree differemment pour faciliter le decodage
  • Mode zebre : lignes alternees en couleur
  • Regle de lecture (Focus Mask) : masque de focus qui suit la ligne lue
  • Synthese vocale : lecture a voix haute avec suivi mot par mot
  • 4 themes : clair, creme, sepia, sombre
  • i18n : francais, anglais, arabe (RTL)
  • Bibliotheque locale : sauvegarde des textes dans IndexedDB
  • PWA : fonctionne hors-ligne, installable sur mobile

Vie privee

  • Zero collecte de donnees
  • Zero cookie, zero tracker, zero CDN externe
  • Tout le traitement se fait localement dans le navigateur
  • Conforme RGPD

Installation locale

cd dys-play
python3 -m http.server 8080
# Ouvrir http://localhost:8080

Stack technique

  • HTML / CSS / JavaScript vanilla (zero framework)
  • Tesseract.js v5.1.1 (OCR local)
  • PDF.js v3.11 (extraction texte PDF)
  • Service Worker pour le mode hors-ligne
  • IndexedDB + localStorage pour la persistance

Accessibilite

  • Cible RGAA 4.1.2 / WCAG 2.1 AA (conformite partielle en cours, audit externe planifie)
  • Navigation clavier complete
  • Support lecteurs d'ecran (ARIA)
  • Contrastes verifies sur les 4 themes
  • Cibles tactiles minimum 44x44px
  • Support RTL (arabe)
  • prefers-reduced-motion, prefers-contrast, forced-colors

Licence

Projet open-source par PostHack.