Diferencia entre revisiones de «Principio 2/2.2 Tiempo Suficiente/2.2.2-A»

De WCAG Wiki
Sin resumen de edición
Sin resumen de edición
 
(No se muestra una edición intermedia del mismo usuario)
Línea 7: Línea 7:
|wcag_principio=2_Operable
|wcag_principio=2_Operable
|wcag_principio_url=Principio_2
|wcag_principio_url=Principio_2
|wcag_pauta=2.2_Tiempo_suficiente
|wcag_pauta=2.2_Tiempo_Suficiente
|wcag_pauta_url=Principio_2/2.2_Tiempo_suficiente
|wcag_pauta_url=Principio_2/2.2_Tiempo_Suficiente
|wcag_grupo=Interacción
|wcag_grupo=Interacción
|wcag_subgrupo=Movimiento_visual
|wcag_subgrupo=Movimiento_visual
Línea 18: Línea 18:
   <span class="discapacidad-texto">[[:Categoría:Discapacidad cognitiva|Cognitiva]]</span> –  
   <span class="discapacidad-texto">[[:Categoría:Discapacidad cognitiva|Cognitiva]]</span> –  
   <span class="gravedad gravedad-grave">Barrera grave</span>
   <span class="gravedad gravedad-grave">Barrera grave</span>
</li>
<li class="discapacidad-item">
  [[Archivo:Bajavision.png|20px|class=icon-discapacidad|alt=Baja visión]]
  <span class="discapacidad-texto">[[:Categoría:Discapacidad baja visión|Baja visión]]</span> –
  <span class="gravedad gravedad-moderada">Barrera moderada</span>
</li>
<li class="discapacidad-item">
  [[Archivo:Sinvision.png|20px|class=icon-discapacidad|alt=Discapacidad visual total]]
  <span class="discapacidad-texto">[[:Categoría:Discapacidad visual total|Visual total]]</span> –
  <span class="gravedad gravedad-moderada">Barrera moderada</span>
</li>
<li class="discapacidad-item">
  [[Archivo:Motriz.png|20px|class=icon-discapacidad|alt=Discapacidad motriz]]
  <span class="discapacidad-texto">[[:Categoría:Discapacidad motriz|Motriz]]</span> –
  <span class="gravedad gravedad-leve">Barrera leve</span>
</li>
<li class="discapacidad-item">
  [[Archivo:Auditiva.png|20px|class=icon-discapacidad|alt=Discapacidad auditiva]]
  <span class="discapacidad-texto">[[:Categoría:Discapacidad auditiva|Auditiva]]</span> –
  <span class="gravedad gravedad-leve">Barrera leve</span>
</li>
</li>


|wcag_lista_discapacidades=
|wcag_lista_discapacidades=
[[Categoría:Discapacidad cognitiva]]
[[Categoría:Discapacidad cognitiva]]
[[Categoría:Discapacidad baja visión]]
 
[[Categoría:Discapacidad visual total]]
[[Categoría:Discapacidad motriz]]
[[Categoría:Discapacidad auditiva]]


|wcag_texto_criterioOAW=
|wcag_texto_criterioOAW=
Línea 61: Línea 38:
|wcag_referencias=
|wcag_referencias=
<ul>
<ul>
<li><span lang="en">[https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html Understanding Success Criterion 2.2.2]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/general/G4 G4: Allowing the content to be paused and restarted from where it was paused]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG22/quickref/#pause-stop-hide WCAG Quick Reference – 2.2.2]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/client-side-script/SCR33 SCR33: Using script to scroll content, and providing a mechanism to pause it]</span></li>
<li>[https://www.w3.org/TR/WCAG22/#dfn-three-flashes-or-below-threshold Tres destellos o menos]</li>
<li><span lang="en">[https://www.w3.org/WAI/WAI/WCAG21/Techniques/general/G11 G11: Creating content that blinks for less than 5 seconds]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/general/G187 G187: Using a technology to include blinking content that can be turned off via the user agent]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/general/G152 G152: Setting animated GIF images to stop blinking after n cycles (within 5 seconds)]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/client-side-script/SCR22 SCR22: Using scripts to control blinking and stop it in five seconds or less]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/general/G186 G186: Using a control in the Web page that stops moving, blinking, or auto-updating content]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/general/G191 G191: Providing a link, button, or other mechanism that reloads the page without any blinking content]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/failures/F16 F16: Failure due to including scrolling content where movement is not essential to the activity]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/failures/F47 F47: Failure due to using the <blink> element]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/failures/F4 F4: Failure due to using text-decoration: blink without a mechanism to stop it in less than five seconds]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/failures/F50 F50: Failure due to a script that causes a blink effect without a mechanism to stop the blinking at 5 seconds or less]</span></li>
<li><span lang="en">[https://www.w3.org/WAI/WCAG21/Techniques/failures/F7 F7: Failure due to an object or applet that blinks for more than five seconds]</span></li>
</ul>
</ul>


|wcag_recursos=
|wcag_recursos= No hay
<ul>
<li>[https://www.w3.org/WAI/design-develop/animations/ W3C – Animaciones accesibles]</li>
<li>[https://web.dev/prefers-reduced-motion/ Google Web.Dev – prefers-reduced-motion]</li>
<li>[https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion MDN – prefers-reduced-motion]</li>
</ul>


|wcag_tipo_evaluacion=Semiautomática
|wcag_tipo_evaluacion=Manual


|wcag_pasos_evaluacion=
|wcag_pasos_evaluacion=
<ol class="paso-list">
<ol class="paso-list">
<li><span class="paso-badge">Paso 1.</span> Identificar contenido que se mueve, desplaza o parpadea automáticamente.</li>
<li><span class="paso-badge">Paso 1.</span>
<li><span class="paso-badge">Paso 2.</span> Comprobar si dura más de cinco segundos y no es esencial.</li>
Localizar si existe en la página contenido en movimiento que se desplace o parpadee, que comience de forma automática, dure más de cinco segundos y se muestre junto a otro contenido.
<li><span class="paso-badge">Paso 3.</span> Verificar existencia de controles para pausar, detener o esconder la animación.</li>
</li>
<li><span class="paso-badge">Paso 4.</span> Asegurar que los controles son accesibles con teclado y lectores de pantalla.</li>
 
<li><span class="paso-badge">Paso 5.</span> Revisar compatibilidad con <code>prefers-reduced-motion</code>.</li>
<li><span class="paso-badge">Paso 2.</span>
Verificar que para este contenido se ofrece alguna de las siguientes opciones:
<ul>
<li>a. Se permite detener el movimiento, parpadeo o desplazamiento.</li>
<li>b. Se permite pausar y reiniciar el movimiento, parpadeo o desplazamiento.</li>
<li>c. Se permite ocultar el contenido en movimiento, parpadeo o desplazamiento.</li>
</ul>
</li>
</ol>
</ol>


|wcag_resultado_evaluacion=
|wcag_resultado_evaluacion=
Línea 89: Línea 79:
|wcag_ejemplo_evaluacion=
|wcag_ejemplo_evaluacion=
<div class="accessibility-card">
<div class="accessibility-card">
<strong>✅ Accesible</strong>
HTML
<pre class="wcag-codigo-html">
<pre class="wcag-codigo-html">
<button id="pause">Pausar animación</button>
<button id="pauseButton">Pausar animación</button>
<div id="banner" style="animation: slide 3s infinite linear;">Oferta especial</div>
<div id="banner" class="banner">Oferta especial</div>
<script>
let paused=false;
pause.onclick=()=>{paused=!paused;banner.style.animationPlayState=paused?'paused':'running'}
</script>
</pre>
</pre>
CSS:
<pre class="wcag-codigo-html">
.banner {
  animation: slide 3s infinite linear;
  background: #ffe08a;
  padding: 10px;
  font-weight: bold;
}
@keyframes slide {
  from { transform: translateX(0); }
  to  { transform: translateX(100px); }
}</pre>
</div>
</div>


<div class="accessibility-card-error">
Javascript:
<strong>❌ No accesible</strong>
<pre class="wcag-codigo-html">
<pre class="wcag-codigo-html">
<div style="animation: slide 8s infinite linear;">Noticias</div>
const pauseButton = document.getElementById("pauseButton");
const banner = document.getElementById("banner");
 
let paused = false;
 
pauseButton.addEventListener("click", () => {
  paused = !paused;
  banner.style.animationPlayState = paused ? "paused" : "running";
  pauseButton.textContent = paused ? "Reanudar animación" : "Pausar animación";
});
</pre>
</pre>
</div>
 


|wcag_otras_herramientas_evaluacion=
|wcag_otras_herramientas_evaluacion=
<ul>
<ul>
<li>Chrome DevTools → Animación / Performance</li>
<li>'''Revisión visual''': identificar contenido que se mueve, desplaza, parpadea o da vueltas automáticamente (carruseles, sliders, banners animados, tickers, animaciones).</li>
<li>AXE / Accessibility Insights</li>
<li>'''Prueba funcional''': comprobar que, si la animación dura más de 5 segundos, el usuario puede pausar, detener u ocultar el movimiento mediante controles visibles y accesibles.</li>
<li>Pruebas con JAWS, NVDA y VoiceOver</li>
<li>'''Inspección del navegador''': revisar el código para detectar animaciones automáticas (CSS, JavaScript, librerías como Swiper, Slick, GSAP).</li>
<li>Configuración del sistema: prefers-reduced-motion</li>
<li>'''Pruebas con teclado y lectores de pantalla''': (NVDA, JAWS, VoiceOver) asegurar que los controles de pausa/detener/ocultar son operables con teclado, tienen foco visible y se anuncian correctamente.</li>
</ul>
</ul>
}}
}}

Revisión actual - 12:41 6 nov 2025

2.2.2-A. Contenido en movimiento, parpadeo o desplazamiento

Discapacidades afectadas

Este criterio puede afectar a distintas personas con discapacidad. A continuación se indican las más relevantes.

Enunciado del criterio (Observatorio de Accesibilidad Web)

  • El contenido en movimiento, que se desplace o parpadee, que comience de forma automática, dure más de cinco segundos y se muestre junto a otro contenido, debe disponer de un mecanismo que permita a los usuarios pausarlo, detenerlo u ocultarlo.

Comprensión del criterio

Descripción resumida

Los elementos que se mueven o parpadean automáticamente durante más de cinco segundos deben ofrecer un control visible para pausarlos, detenerlos o esconderlos.

Objetivo

Evitar distracciones y sobrecarga cognitiva provocada por movimiento continuo en pantalla, permitiendo que las personas mantengan la atención y la capacidad de lectura o interacción.

Importancia de cumplir el criterio

El movimiento automático y prolongado puede impedir leer, generar confusión, provocar mareo o pérdida de foco, afectando especialmente a personas con discapacidad cognitiva o visual.

Referencias WCAG

Recursos de apoyo

No hay

Evaluación del criterio

Tipo de evaluación

Evaluación Manual

Procedimiento de evaluación

  1. Paso 1. Localizar si existe en la página contenido en movimiento que se desplace o parpadee, que comience de forma automática, dure más de cinco segundos y se muestre junto a otro contenido.
  2. Paso 2. Verificar que para este contenido se ofrece alguna de las siguientes opciones:
    • a. Se permite detener el movimiento, parpadeo o desplazamiento.
    • b. Se permite pausar y reiniciar el movimiento, parpadeo o desplazamiento.
    • c. Se permite ocultar el contenido en movimiento, parpadeo o desplazamiento.

Resultado esperado

El usuario puede pausar, detener u ocultar el movimiento sin perder acceso al contenido principal.

Ejemplo

HTML

<button id="pauseButton">Pausar animación</button>
<div id="banner" class="banner">Oferta especial</div>

CSS:

.banner {
  animation: slide 3s infinite linear;
  background: #ffe08a;
  padding: 10px;
  font-weight: bold;
}

@keyframes slide {
  from { transform: translateX(0); }
  to   { transform: translateX(100px); }
}

Javascript:

const pauseButton = document.getElementById("pauseButton");
const banner = document.getElementById("banner");

let paused = false;

pauseButton.addEventListener("click", () => {
  paused = !paused;
  banner.style.animationPlayState = paused ? "paused" : "running";
  pauseButton.textContent = paused ? "Reanudar animación" : "Pausar animación";
});

Otras herramientas de evaluación

  • Revisión visual: identificar contenido que se mueve, desplaza, parpadea o da vueltas automáticamente (carruseles, sliders, banners animados, tickers, animaciones).
  • Prueba funcional: comprobar que, si la animación dura más de 5 segundos, el usuario puede pausar, detener u ocultar el movimiento mediante controles visibles y accesibles.
  • Inspección del navegador: revisar el código para detectar animaciones automáticas (CSS, JavaScript, librerías como Swiper, Slick, GSAP).
  • Pruebas con teclado y lectores de pantalla: (NVDA, JAWS, VoiceOver) asegurar que los controles de pausa/detener/ocultar son operables con teclado, tienen foco visible y se anuncian correctamente.










Ejemplos accesibles y no accesibles creados por alumnos

Comentarios

A continuación se muestran comentarios sobre el criterio 2.2.2-A. Contenido en movimiento, parpadeo o desplazamiento

Loading comments...