Accueil / Cybersécurité / Justice / Disney sanctionné pour collecte illégale de données d’enfants

Disney sanctionné pour collecte illégale de données d’enfants

Le règlement impose à Disney de revoir sa gestion de contenus en ligne. L’affaire révèle un problème plus large : les limites du système actuel de protection de la vie privée des mineurs, alors que la publicité ciblée et l’IA façonnent déjà l’écosystème numérique des plus jeunes.

Disney face aux accusations de la FTC

La FTC reproche à Disney d’avoir utilisé des paramètres par défaut au niveau des chaînes plutôt qu’une classification vidéo par vidéo. Résultat : des contenus pour enfants issus de franchises comme Frozen, Toy Story ou Les Indestructibles ont été étiquetés « non destinés aux enfants ». Cette erreur a ouvert la voie à la collecte de données et à la publicité personnalisée, pratiques interdites par la COPPA.

En 2020, YouTube avait pourtant corrigé plus de 300 vidéos mal classées, les passant en « contenu enfant ». Malgré ce signalement, Disney a maintenu son système de réglage global, y compris sur des chaînes explicitement dédiées aux plus jeunes comme Disney Junior, Mickey Mouse ou Pixar Cars. L’absence de contrôle individuel a ainsi prolongé les violations de la loi.

Selon la FTC, ces erreurs ont exposé les enfants à des fonctionnalités interdites, telles que l’autoplay ou les annonces ciblées. Disney, qui tire profit des revenus publicitaires générés sur YouTube, est accusé d’avoir négligé sa responsabilité en matière de protection des mineurs.

Les obligations du règlement

L’amende de 10 M$ (≈ 9,3 M€) n’est qu’un aspect de la sanction. Disney devra désormais informer clairement les parents avant toute collecte de données personnelles concernant des enfants de moins de 13 ans et obtenir leur accord préalable.

L’entreprise est également contrainte de mettre en place un programme complet de vérification de l’ensemble de ses vidéos YouTube. Cette obligation pourrait être levée uniquement si YouTube déploie une « technologie d’assurance d’âge » : un système capable de vérifier automatiquement l’âge réel des spectateurs.

Cette perspective ouvre un débat plus large. Jusqu’ici, les plateformes reposaient sur l’autodéclaration et le bon vouloir des entreprises pour étiqueter correctement leurs contenus. L’exigence de solutions automatisées marque un tournant vers une identification systématique et centralisée des spectateurs mineurs, avec tout ce que cela implique en termes de surveillance numérique.

Une première pour les créateurs de contenus YouTube

Le président de la FTC, Andrew Ferguson, a résumé l’enjeu : « Notre décision sanctionne l’abus de confiance des parents par Disney. » Au-delà du cas particulier, ce règlement illustre une évolution : les autorités ne se contentent plus de cibler les plateformes, elles sanctionnent désormais aussi les producteurs de contenus.

C’est la première fois qu’une procédure COPPA vise directement un fournisseur de vidéos sur YouTube, et non la plateforme elle-même. En 2019, Google et YouTube avaient conclu un accord record de 170 M$ (≈ 157,7 M€) pour des violations similaires. L’affaire Disney s’inscrit donc dans la continuité d’un durcissement de la régulation, où les grandes marques ne sont pas à l’abri.

Si Disney se conforme aux nouvelles règles, les contenus destinés aux enfants devraient être correctement classés à l’avenir, limitant l’exposition aux publicités ciblées et améliorant la protection des données. Mais l’affaire rappelle surtout que la protection des mineurs ne peut être laissée au seul bon sens des entreprises, même celles qui incarnent une image familiale.

L’affaire révèle un basculement : le contrôle des contenus pour enfants se déplace vers des mécanismes de vérification technique. La question reste ouverte : jusqu’où l’« assurance d’âge » automatisée peut-elle protéger les enfants sans instaurer une surveillance généralisée des internautes ?

Étiquetté :

Nos partenaires




Actualités du mois

mars 2026
L M M J V S D
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Articles en UNE

Actus zataz



Réseaux sociaux


Liste des sujets


<!-- Cyber'Émission ZATAZ — badge volant (déplaçable) + réduire/fermer -->
<div class="zataz-yt-float" id="zatazYtFloat" role="region" aria-label="Cyber'Émission ZATAZ">
  <div class="zataz-yt-float__bar" id="zatazYtBar">
    <span class="zataz-yt-float__title">Cyber'Émission ZATAZ</span>

    <div class="zataz-yt-float__actions">
      <button type="button" class="zataz-yt-float__btn" id="zatazYtMin" aria-label="Réduire">—</button>
      <button type="button" class="zataz-yt-float__btn zataz-yt-float__btn--close" id="zatazYtClose" aria-label="Fermer">×</button>
    </div>
  </div>

  <a class="zataz-yt-badge" href="https://www.youtube.com/@ZATAZCOM" target="_blank" rel="noopener noreferrer"
     aria-label="Regarder Cyber'Émission ZATAZ sur YouTube (nouvel onglet)">
    <span class="zataz-yt-badge__thumb" aria-hidden="true">
      <span class="zataz-yt-badge__play" aria-hidden="true"></span>
    </span>
  </a>
</div>

<style>
  .zataz-yt-float{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:99999;
    width:320px;
    max-width:calc(100vw - 36px);
    border-radius:14px;
    overflow:hidden;
    background:linear-gradient(135deg,#111827,#0b1220 55%,#111827);
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 14px 40px rgba(0,0,0,.35);
    transform:translateZ(0);
    user-select:none;
    touch-action:none; /* drag mobile */
  }

  /* Barre de drag + boutons */
  .zataz-yt-float__bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 10px 10px 12px;
    font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    color:#fff;
    background:rgba(0,0,0,.18);
    border-bottom:1px solid rgba(255,255,255,.10);
    cursor:grab;
  }
  .zataz-yt-float__bar:active{ cursor:grabbing; }
  .zataz-yt-float__title{
    font-weight:800;
    letter-spacing:.2px;
    font-size:15px;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .zataz-yt-float__actions{ display:flex; gap:8px; }
  .zataz-yt-float__btn{
    appearance:none;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(0,0,0,.28);
    color:#fff;
    width:32px;
    height:28px;
    border-radius:10px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    display:grid;
    place-items:center;
  }
  .zataz-yt-float__btn:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.28); }
  .zataz-yt-float__btn--close:hover{ background:rgba(239,68,68,.22); border-color:rgba(239,68,68,.45); }

  /* Contenu (votre vignette) */
  .zataz-yt-badge{
    display:block;
    text-decoration:none;
    color:#fff;
  }
  .zataz-yt-badge__thumb{
    display:block;
    height:180px;
    background:#0f172a url("https://i.ytimg.com/vi/HUo8dnD6Swk/hqdefault.jpg") center/cover no-repeat;
    position:relative;
  }
  .zataz-yt-badge__play{
    position:absolute;
    left:50%;
    top:50%;
    width:54px;
    height:54px;
    margin:-27px 0 0 -27px;
    border-radius:999px;
    background:rgba(0,0,0,.55);
    border:1px solid rgba(255,255,255,.25);
    box-shadow:0 10px 22px rgba(0,0,0,.35);
  }
  .zataz-yt-badge__play:before{
    content:"";
    position:absolute;
    left:22px;
    top:16px;
    width:0;height:0;
    border-top:11px solid transparent;
    border-bottom:11px solid transparent;
    border-left:16px solid #fff;
  }

  .zataz-yt-float:hover{
    box-shadow:0 18px 55px rgba(0,0,0,.45);
    border-color:rgba(255,255,255,.18);
  }
  .zataz-yt-badge:active{ transform:scale(.99); }

  /* Etat réduit */
  .zataz-yt-float.is-min .zataz-yt-badge{ display:none; }
  .zataz-yt-float.is-min{ width:260px; }

  /* Mobile : plus compact */
  @media (max-width:480px){
    .zataz-yt-float{ width:280px; right:12px; bottom:12px; }
    .zataz-yt-badge__thumb{ height:158px; }
    .zataz-yt-float.is-min{ width:220px; }
  }
</style>

<script>
(() => {
  const box = document.getElementById('zatazYtFloat');
  const bar = document.getElementById('zatazYtBar');
  const btnMin = document.getElementById('zatazYtMin');
  const btnClose = document.getElementById('zatazYtClose');

  if (!box || !bar || !btnMin || !btnClose) return;

  // Réduire / restaurer
  btnMin.addEventListener('click', (e) => {
    e.stopPropagation();
    box.classList.toggle('is-min');
    btnMin.textContent = box.classList.contains('is-min') ? '▢' : '—';
    btnMin.setAttribute('aria-label', box.classList.contains('is-min') ? 'Restaurer' : 'Réduire');
  });

  // Fermer
  btnClose.addEventListener('click', (e) => {
    e.stopPropagation();
    box.remove();
  });

  // Drag (souris + tactile) via Pointer Events
  let dragging = false;
  let startX = 0, startY = 0;
  let startLeft = 0, startTop = 0;

  // Position initiale: on convertit right/bottom en left/top pour le drag
  const init = () => {
    const r = box.getBoundingClientRect();
    box.style.left = r.left + 'px';
    box.style.top  = r.top  + 'px';
    box.style.right = 'auto';
    box.style.bottom = 'auto';
  };
  init();

  const clamp = (v, min, max) => Math.min(Math.max(v, min), max);

  bar.addEventListener('pointerdown', (e) => {
    // pas de drag quand on clique sur les boutons
    if (e.target === btnMin || e.target === btnClose) return;

    dragging = true;
    bar.setPointerCapture(e.pointerId);

    const r = box.getBoundingClientRect();
    startX = e.clientX;
    startY = e.clientY;
    startLeft = r.left;
    startTop = r.top;

    e.preventDefault();
  });

  bar.addEventListener('pointermove', (e) => {
    if (!dragging) return;

    const dx = e.clientX - startX;
    const dy = e.clientY - startY;

    const r = box.getBoundingClientRect();
    const w = r.width;
    const h = r.height;

    const maxLeft = window.innerWidth - w - 8;
    const maxTop  = window.innerHeight - h - 8;

    box.style.left = clamp(startLeft + dx, 8, maxLeft) + 'px';
    box.style.top  = clamp(startTop + dy, 8, maxTop) + 'px';
  });

  const endDrag = () => { dragging = false; };
  bar.addEventListener('pointerup', endDrag);
  bar.addEventListener('pointercancel', endDrag);

  // Re-clamp au resize
  window.addEventListener('resize', () => {
    const r = box.getBoundingClientRect();
    const maxLeft = window.innerWidth - r.width - 8;
    const maxTop  = window.innerHeight - r.height - 8;
    box.style.left = clamp(r.left, 8, maxLeft) + 'px';
    box.style.top  = clamp(r.top, 8, maxTop) + 'px';
  });
})();
</script>