Volver al blog

Desincronización de interfaz: El peligro de que el código mienta sobre el botón visual

Infografía detallada: Desincronización de interfaz: El peligro de que el código mienta sobre el botón visual

TL;DR (Too Long; Didn’t Read... o básicamente: mucho texto, dame el resumen rápido)
Si un botón dice "Enviar" visualmente, pero internamente tiene un aria-label="Botón 1", el software de dictado por voz fallará cuando la persona usuaria diga "Haz clic en Enviar". El nombre programático debe coincidir (o al menos comenzar) con el texto visual.

La desconexión entre lo visual y el DOM

El Criterio 2.5.3 Etiqueta en el Nombre protege a las personas usuarias de control por voz (como Dragon NaturallySpeaking o Voice Control). Si sobreescribimos el texto interno de un botón con un atributo ARIA que no contiene la palabra visual, rompemos la sincronización.

El patrón erróneo: Código Accesible Deficiente

La persona usuaria de comandos de voz intentará activar el botón diciendo "Clic Confirmar Pago", pero el sistema no encontrará ningún botón con ese nombre programático.

<!-- MAL: aria-label sobreescribe y contradice el texto visual -->
<button aria-label="Procesar transacción de tarjeta">
  Confirmar Pago
</button>

La Solución Accesible: Código Recomendado

El texto visible debe ser parte íntegra del nombre programático, preferiblemente al inicio de la cadena de texto.

<!-- BIEN: El texto visual está incluido en el aria-label -->
<button aria-label="Confirmar Pago de transacción con tarjeta">
  Confirmar Pago
</button>

<!-- BIEN: Simplemente confiar en el texto interno nativo -->
<button>
  Confirmar Pago
</button>

Metodología de Verificación y Testing

Pruebas Manuales con Lectores de Pantalla

Con NVDA, presionar B para saltar entre botones. Verificar que cada botón anuncie un nombre descriptivo (no solo "Botón"). En TalkBack (Android), navegar mediante swipe y confirmar que el anuncio incluya el propósito del control.

Inspección del Árbol de Accesibilidad

En Chrome DevTools, seleccionar el elemento afectado en el panel Elements, luego abrir la pestaña Accessibility. Verificar que las propiedades Role, Name y State reflejen correctamente la intención del componente según el criterio WCAG 2.5.3.

Herramientas Automatizadas

Ejecutar Axe DevTools o WAVE sobre la vista afectada. Buscar violaciones relacionadas con el criterio WCAG 2.5.3. Complementar con una auditoría manual para los aspectos que las herramientas automatizadas no pueden verificar (interacción dinámica, calidad del contenido).

Compartir artículo:

Artículos relacionados

¿Necesitas ayuda con la accesibilidad de tus proyectos?

Descubre cómo nuestro ecosistema detecta y corrige las barreras de forma automática.

Hablar con un experto (Abre en una nueva ventana)